[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DMK6H1Y44VNWK9H5RBD2HA":3,"skill-same:01M6DMK6H1Y44VNWK9H5RBD2HA":63},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":6,"ownerDescription":47,"updatedAt":48,"install":49,"resources":62},"01M6DMK6H1Y44VNWK9H5RBD2HA","protein-blast-search",null,"Search for similar protein sequences in UniProt Swiss-Prot database using BLAST to identify homologous proteins and functional relationships.","InternScience\u002FDrClaw","InternScience","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F154449623?v=4","01M6DHY1ZF02QASNAVMNPT7NP6","Intern Science","01M6DHY2523FY56Q5572NKAAD0",172,"MIT","https:\u002F\u002Fgithub.com\u002FInternScience\u002FDrClaw\u002Fblob\u002Fmain\u002Fdrclaw\u002Flocal_skill_hub\u002Fscience\u002Fprotein\u002Fprotein-blast-search\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29],"search","protein blast search","database","relationships","搜索","proteins","2026-11-10 10:12:30",false,"---\nname: protein-blast-search\ndescription: Search for similar protein sequences in UniProt Swiss-Prot database using\n  BLAST to identify homologous proteins and functional relationships.\nlicense: MIT license\nmetadata:\n  skill-author: PJLab\ni18n:\n  zh:\n    description: 在UniProt中搜索相似蛋白。\n---\n\n# Protein BLAST Sequence Similarity Search\n\n## Usage\n\n### 1. MCP Server Definition\n\n```python\nimport asyncio\nimport json\nfrom mcp.client.streamable_http import streamablehttp_client\nfrom mcp import ClientSession\n\nclass BioInfoToolsClient:\n    \"\"\"BioInfo-Tools MCP Client\"\"\"\n\n    def __init__(self, server_url: str, api_key: str):\n        self.server_url = server_url\n        self.api_key = api_key\n        self.session = None\n\n    async def connect(self):\n        \"\"\"Establish connection and initialize session\"\"\"\n        print(f\"server url: {self.server_url}\")\n        try:\n            self.transport = streamablehttp_client(\n                url=self.server_url,\n                headers={\"SCP-HUB-API-KEY\": self.api_key}\n            )\n            self.read, self.write, self.get_session_id = await self.transport.__aenter__()\n\n            self.session_ctx = ClientSession(self.read, self.write)\n            self.session = await self.session_ctx.__aenter__()\n\n            await self.session.initialize()\n            session_id = self.get_session_id()\n\n            print(f\"✓ connect success\")\n            return True\n\n        except Exception as e:\n            print(f\"✗ connect failure: {e}\")\n            import traceback\n            traceback.print_exc()\n            return False\n\n    async def disconnect(self):\n        \"\"\"Disconnect from server\"\"\"\n        try:\n            if self.session:\n                await self.session_ctx.__aexit__(None, None, None)\n            if hasattr(self, 'transport'):\n                await self.transport.__aexit__(None, None, None)\n            print(\"✓ already disconnect\")\n        except Exception as e:\n            print(f\"✗ disconnect error: {e}\")\n\n    def parse_result(self, result):\n        \"\"\"Parse MCP tool call result\"\"\"\n        try:\n            if hasattr(result, 'content') and result.content:\n                content = result.content[0]\n                if hasattr(content, 'text'):\n                    return json.loads(content.text)\n            return str(result)\n        except Exception as e:\n            return {\"error\": f\"parse error: {e}\", \"raw\": str(result)}\n```\n\n### 2. Protein BLAST Search Workflow\n\nThis workflow searches for similar protein sequences in the UniProt Swiss-Prot database using BLAST, identifying homologous proteins and their functional relationships.\n\n**Workflow Steps:**\n\n1. **Validate Input** - Ensure protein sequence is in valid amino acid format\n2. **Execute BLAST Search** - Query UniProt Swiss-Prot database for similar sequences\n3. **Parse Results** - Extract matching proteins with identity, E-value, and organism information\n\n**Implementation:**\n\n```python\nfrom datetime import timedelta\n\n## Initialize client\nclient = BioInfoToolsClient(\n    \"https:\u002F\u002Fscp.intern-ai.org.cn\u002Fapi\u002Fv1\u002Fmcp\u002F17\u002FBioInfo-Tools\",\n    \"\u003Cyour-api-key>\"\n)\n\nif not await client.connect():\n    print(\"connection failed\")\n    exit()\n\n## Input: Protein sequence to search\nprotein_sequence = \"\"\"\nMVHLTPEEKSAVTALWGKVNVDEVGGEALGRLLVVYPWTQRFFESFGDLSTPDAVMGNPKVKAHGKKVLGAFSDGLAHLDNLKGTFATLSELHCDKLHVDPENFRLLGNVLVCVLAHHFGKEFTPPVQAAYQKVVAGVANALAHKYH\n\"\"\"\n\n## Step 1 & 2: Execute BLAST search against UniProt Swiss-Prot\nresult = await client.session.call_tool(\n    \"blast_search\",\n    arguments={\n        \"sequence\": protein_sequence.strip(),\n        \"sequence_id\": \"HBB_HUMAN\",  # Optional identifier\n        \"evalue\": 0.01,              # E-value threshold (default: 0.01)\n        \"max_hits\": 50               # Maximum number of hits to return\n    },\n    read_timeout_seconds=timedelta(seconds=300)  # Allow up to 5 minutes\n)\n\n## Step 3: Parse and display results\nresult_data = client.parse_result(result)\n\nif result_data.get(\"success\"):\n    print(f\"✅ BLAST search completed successfully\")\n    print(f\"Execution time: {result_data.get('time_seconds', '?')} seconds\")\n    print(f\"Total hits found: {result_data.get('total_hits', 0)}\\n\")\n\n    hits = result_data.get(\"hits\", [])\n\n    # Display top matches\n    for i, hit in enumerate(hits[:10], 1):\n        print(f\"{i}. {hit['uniprot_id']} - {hit.get('organism', 'N\u002FA')}\")\n        print(f\"   Description: {hit['description']}\")\n        print(f\"   Identity: {hit['identity_percent']:.1f}%\")\n        print(f\"   E-value: {hit['evalue']:.2e}\")\n        print(f\"   Alignment length: {hit['alignment_length']} aa\\n\")\nelse:\n    print(f\"❌ BLAST search failed: {result_data.get('error', 'Unknown error')}\")\n\nawait client.disconnect()\n```\n\n### Tool Descriptions\n\n**BioInfo-Tools Server:**\n- `blast_search`: Search for similar protein sequences in UniProt Swiss-Prot database\n  - Args:\n    - `sequence` (str): Protein sequence in amino acid single-letter code\n    - `sequence_id` (str, optional): Identifier for the query sequence\n    - `evalue` (float, optional): E-value threshold (default: 0.01)\n    - `max_hits` (int, optional): Maximum number of hits to return (default: 50)\n  - Returns:\n    - `success` (bool): Whether search completed successfully\n    - `total_hits` (int): Number of matching sequences found\n    - `hits` (list): List of matching proteins with details\n    - `time_seconds` (float): Execution time\n\n### Input\u002FOutput\n\n**Input:**\n- `sequence`: Protein sequence (amino acid single-letter code)\n- `sequence_id`: Optional identifier for the query\n- `evalue`: E-value threshold (lower = more stringent, default: 0.01)\n- `max_hits`: Maximum number of results to return (default: 50)\n\n**Output:**\n- List of similar proteins, each containing:\n  - `uniprot_id`: UniProt accession number\n  - `description`: Protein description and name\n  - `organism`: Species\u002Forganism name\n  - `identity_percent`: Sequence identity percentage (0-100)\n  - `evalue`: E-value (statistical significance, lower is better)\n  - `alignment_length`: Length of sequence alignment\n  - `query_coverage`: Percentage of query sequence covered\n\n### E-value Interpretation\n\n- **E-value \u003C 1e-10**: Highly significant match, very likely homologous\n- **E-value \u003C 1e-5**: Significant match, likely homologous\n- **E-value \u003C 0.01**: Potentially homologous (default threshold)\n- **E-value > 0.01**: May be spurious matches\n\n### Use Cases\n\n- Identify protein function by homology\n- Find evolutionarily related proteins\n- Discover orthologs and paralogs across species\n- Annotate unknown protein sequences\n- Study protein evolution and phylogeny\n\n### Performance Notes\n\n- **Typical execution time**: 10-90 seconds depending on sequence length and max_hits\n- **Shorter sequences** (\u003C50 aa): May return more non-specific matches\n- **Longer sequences** (>500 aa): May take longer but provide more specific matches\n- **Timeout recommendation**: Set to at least 300 seconds (5 minutes) for reliability\n","# Protein BLAST Sequence Similarity Search\n\n## Usage\n\n### 1. MCP Server Definition\n\n```python\nimport asyncio\nimport json\nfrom mcp.client.streamable_http import streamablehttp_client\nfrom mcp import ClientSession\n\nclass BioInfoToolsClient:\n    \"\"\"BioInfo-Tools MCP Client\"\"\"\n\n    def __init__(self, server_url: str, api_key: str):\n        self.server_url = server_url\n        self.api_key = api_key\n        self.session = None\n\n    async def connect(self):\n        \"\"\"Establish connection and initialize session\"\"\"\n        print(f\"server url: {self.server_url}\")\n        try:\n            self.transport = streamablehttp_client(\n                url=self.server_url,\n                headers={\"SCP-HUB-API-KEY\": self.api_key}\n            )\n            self.read, self.write, self.get_session_id = await self.transport.__aenter__()\n\n            self.session_ctx = ClientSession(self.read, self.write)\n            self.session = await self.session_ctx.__aenter__()\n\n            await self.session.initialize()\n            session_id = self.get_session_id()\n\n            print(f\"✓ connect success\")\n            return True\n\n        except Exception as e:\n            print(f\"✗ connect failure: {e}\")\n            import traceback\n            traceback.print_exc()\n            return False\n\n    async def disconnect(self):\n        \"\"\"Disconnect from server\"\"\"\n        try:\n            if self.session:\n                await self.session_ctx.__aexit__(None, None, None)\n            if hasattr(self, 'transport'):\n                await self.transport.__aexit__(None, None, None)\n            print(\"✓ already disconnect\")\n        except Exception as e:\n            print(f\"✗ disconnect error: {e}\")\n\n    def parse_result(self, result):\n        \"\"\"Parse MCP tool call result\"\"\"\n        try:\n            if hasattr(result, 'content') and result.content:\n                content = result.content[0]\n                if hasattr(content, 'text'):\n                    return json.loads(content.text)\n            return str(result)\n        except Exception as e:\n            return {\"error\": f\"parse error: {e}\", \"raw\": str(result)}\n```\n\n### 2. Protein BLAST Search Workflow\n\nThis workflow searches for similar protein sequences in the UniProt Swiss-Prot database using BLAST, identifying homologous proteins and their functional relationships.\n\n**Workflow Steps:**\n\n1. **Validate Input** - Ensure protein sequence is in valid amino acid format\n2. **Execute BLAST Search** - Query UniProt Swiss-Prot database for similar sequences\n3. **Parse Results** - Extract matching proteins with identity, E-value, and organism information\n\n**Implementation:**\n\n```python\nfrom datetime import timedelta\n\n## Initialize client\nclient = BioInfoToolsClient(\n    \"https:\u002F\u002Fscp.intern-ai.org.cn\u002Fapi\u002Fv1\u002Fmcp\u002F17\u002FBioInfo-Tools\",\n    \"\u003Cyour-api-key>\"\n)\n\nif not await client.connect():\n    print(\"connection failed\")\n    exit()\n\n## Input: Protein sequence to search\nprotein_sequence = \"\"\"\nMVHLTPEEKSAVTALWGKVNVDEVGGEALGRLLVVYPWTQRFFESFGDLSTPDAVMGNPKVKAHGKKVLGAFSDGLAHLDNLKGTFATLSELHCDKLHVDPENFRLLGNVLVCVLAHHFGKEFTPPVQAAYQKVVAGVANALAHKYH\n\"\"\"\n\n## Step 1 & 2: Execute BLAST search against UniProt Swiss-Prot\nresult = await client.session.call_tool(\n    \"blast_search\",\n    arguments={\n        \"sequence\": protein_sequence.strip(),\n        \"sequence_id\": \"HBB_HUMAN\",  # Optional identifier\n        \"evalue\": 0.01,              # E-value threshold (default: 0.01)\n        \"max_hits\": 50               # Maximum number of hits to return\n    },\n    read_timeout_seconds=timedelta(seconds=300)  # Allow up to 5 minutes\n)\n\n## Step 3: Parse and display results\nresult_data = client.parse_result(result)\n\nif result_data.get(\"success\"):\n    print(f\"✅ BLAST search completed successfully\")\n    print(f\"Execution time: {result_data.get('time_seconds', '?')} seconds\")\n    print(f\"Total hits found: {result_data.get('total_hits', 0)}\\n\")\n\n    hits = result_data.get(\"hits\", [])\n\n    # Display top matches\n    for i, hit in enumerate(hits[:10], 1):\n        print(f\"{i}. {hit['uniprot_id']} - {hit.get('organism', 'N\u002FA')}\")\n        print(f\"   Description: {hit['description']}\")\n        print(f\"   Identity: {hit['identity_percent']:.1f}%\")\n        print(f\"   E-value: {hit['evalue']:.2e}\")\n        print(f\"   Alignment length: {hit['alignment_length']} aa\\n\")\nelse:\n    print(f\"❌ BLAST search failed: {result_data.get('error', 'Unknown error')}\")\n\nawait client.disconnect()\n```\n\n### Tool Descriptions\n\n**BioInfo-Tools Server:**\n- `blast_search`: Search for similar protein sequences in UniProt Swiss-Prot database\n  - Args:\n    - `sequence` (str): Protein sequence in amino acid single-letter code\n    - `sequence_id` (str, optional): Identifier for the query sequence\n    - `evalue` (float, optional): E-value threshold (default: 0.01)\n    - `max_hits` (int, optional): Maximum number of hits to return (default: 50)\n  - Returns:\n    - `success` (bool): Whether search completed successfully\n    - `total_hits` (int): Number of matching sequences found\n    - `hits` (list): List of matching proteins with details\n    - `time_seconds` (float): Execution time\n\n### Input\u002FOutput\n\n**Input:**\n- `sequence`: Protein sequence (amino acid single-letter code)\n- `sequence_id`: Optional identifier for the query\n- `evalue`: E-value threshold (lower = more stringent, default: 0.01)\n- `max_hits`: Maximum number of results to return (default: 50)\n\n**Output:**\n- List of similar proteins, each containing:\n  - `uniprot_id`: UniProt accession number\n  - `description`: Protein description and name\n  - `organism`: Species\u002Forganism name\n  - `identity_percent`: Sequence identity percentage (0-100)\n  - `evalue`: E-value (statistical significance, lower is better)\n  - `alignment_length`: Length of sequence alignment\n  - `query_coverage`: Percentage of query sequence covered\n\n### E-value Interpretation\n\n- **E-value \u003C 1e-10**: Highly significant match, very likely homologous\n- **E-value \u003C 1e-5**: Significant match, likely homologous\n- **E-value \u003C 0.01**: Potentially homologous (default threshold)\n- **E-value > 0.01**: May be spurious matches\n\n### Use Cases\n\n- Identify protein function by homology\n- Find evolutionarily related proteins\n- Discover orthologs and paralogs across species\n- Annotate unknown protein sequences\n- Study protein evolution and phylogeny\n\n### Performance Notes\n\n- **Typical execution time**: 10-90 seconds depending on sequence length and max_hits\n- **Shorter sequences** (\u003C50 aa): May return more non-specific matches\n- **Longer sequences** (>500 aa): May take longer but provide more specific matches\n- **Timeout recommendation**: Set to at least 300 seconds (5 minutes) for reliability\n",{"i18n":35,"name":5,"license":38,"metadata":39,"description":7},{"zh":36},{"description":37},"在UniProt中搜索相似蛋白。","MIT license",{"skill-author":40},"PJLab","main","4f96df0d9df0eae24a992afabe08edec5fc575f0","drclaw\u002Flocal_skill_hub\u002Fscience\u002Fprotein\u002Fprotein-blast-search",10,"https:\u002F\u002Fgithub.com\u002FInternScience\u002FDrClaw","https:\u002F\u002Fgithub.com\u002FInternScience","Shanghai Artificial Intelligence Laboratory","2026-03-20 17:06:10",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add InternScience\u002FDrClaw --skill protein-blast-search",{"tool":55,"command":56},"bunx","bunx skills add InternScience\u002FDrClaw --skill protein-blast-search",{"tool":58,"command":59},"pnpm","pnpm dlx skills add InternScience\u002FDrClaw --skill protein-blast-search","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FInternScience\u002FDrClaw\u002Fblob\u002Fmain\u002Fdrclaw\u002Flocal_skill_hub\u002Fscience\u002Fprotein\u002Fprotein-blast-search\u002FSKILL.md",true,[],[64,99,122,136,153,168],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":78,"publishedAt":30},"01M6DMQESTSBW8VJW03QWHMT85","scientific-critical-thinking","Evaluate scientific claims and evidence quality. Use for assessing experimental design validity, identifying biases and confounders, applying evidence grading frameworks (GRADE, Cochrane Risk of Bias), or teaching critical analysis. Best for understanding evidence quality, identifying flaws. For formal peer review writing use peer-review.","https:\u002F\u002Fgithub.com\u002FInternScience\u002FDrClaw\u002Fblob\u002Fmain\u002Fdrclaw\u002Flocal_skill_hub\u002Fthinking\u002Fscientific-critical-thinking\u002FSKILL.md",[70,73],{"categoryNo":71,"categoryName":72,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":74,"categoryName":75,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98],"critical","scientific critical thinking","thinking","design","writing","review","risk","analysis","peer review","Bash","quality","read","write","edit","use","evidence","peer","frameworks","teaching","bias",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":30},"01M6DMQ77Z121463E049G2DG8K","scientific-brainstorming","Creative research ideation and exploration. Use for open-ended brainstorming sessions, exploring interdisciplinary connections, challenging assumptions, or identifying research gaps. Best for early-stage research planning when you do not have specific observations yet. For formulating testable hypotheses from data use hypothesis-generation.","https:\u002F\u002Fgithub.com\u002FInternScience\u002FDrClaw\u002Fblob\u002Fmain\u002Fdrclaw\u002Flocal_skill_hub\u002Fthinking\u002Fscientific-brainstorming\u002FSKILL.md",[],[106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,93],"brainstorming","scientific brainstorming","research ideation","stage","connections","generation","exploration","do","planning","creative","ideation","research","sessions","data","hypothesis","open",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":132,"publishedAt":30},"01M6DMPV4AMCCTWARGPSFHDWJB","scientific-literature-search","Search scientific literature and research papers using FlowSearch to find relevant academic articles and publications.","https:\u002F\u002Fgithub.com\u002FInternScience\u002FDrClaw\u002Fblob\u002Fmain\u002Fdrclaw\u002Flocal_skill_hub\u002Fsearch\u002Fscientific-literature-search\u002FSKILL.md",[128,131],{"categoryNo":129,"categoryName":130,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[24,133,117,134,135,28],"scientific literature search","find","Academic",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":148,"publishedAt":30},"01M6DMPQJP8HVFV54V05D6K9HA","pubmed-article-search","Search PubMed database for scientific articles and publications to retrieve biomedical literature.","https:\u002F\u002Fgithub.com\u002FInternScience\u002FDrClaw\u002Fblob\u002Fmain\u002Fdrclaw\u002Flocal_skill_hub\u002Fsearch\u002Fpubmed-article-search\u002FSKILL.md",[142,145],{"categoryNo":143,"categoryName":144,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":146,"categoryName":147,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000036","内容创作者",[149,150,24,28,26,151,152],"pubmed article search","article","pubmed database","biomedical",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":160,"publishedAt":30},"01M6DMPK4H3JQ185M97BRB9KQJ","biomedical-web-search","Search biomedical literature and web content using Tavily search engine for research and clinical information.","https:\u002F\u002Fgithub.com\u002FInternScience\u002FDrClaw\u002Fblob\u002Fmain\u002Fdrclaw\u002Flocal_skill_hub\u002Fsearch\u002Fbiomedical-web-search\u002FSKILL.md",[159],{"categoryNo":129,"categoryName":130,"taxonomyType":21,"taxonomyTypeDesc":22},[161,152,162,24,163,164,117,165,166,28,167],"biomedical web search","web search","web","tavily","content","engine","clinical",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":175,"publishedAt":30},"01M6DMNNJH9V1S5PQHZRX0N934","uniprot-protein-retrieval","Retrieve protein sequences and functional information from UniProt database by protein name, enabling protein analysis and bioinformatics workflows.","https:\u002F\u002Fgithub.com\u002FInternScience\u002FDrClaw\u002Fblob\u002Fmain\u002Fdrclaw\u002Flocal_skill_hub\u002Fscience\u002Fprotein\u002Funiprot-protein-retrieval\u002FSKILL.md",[174],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[176,26,86,177,178,179,180],"uniprot protein retrieval","uniprot database","bioinformatics","name","workflows"]