<< All versions
Skill v1.0.1
currentLLM-judged scan90/100internscience/scp/synthetic-biology-design
1 files
──Details
PublishedJune 14, 2026 at 01:03 AM
Content Hashsha256:b5ef7c4b7df14d7d...
Git SHAcea539856403
Bump Typepatch
──Files
Files (1 file, 4.5 KB)
SKILL.md4.5 KBactive
SKILL.md · 116 lines · 4.5 KB
version: "1.0.1" name: synthetic_biology_design description: "Synthetic Biology Design - Design synthetic biology construct: gene lookup, codon optimization, protein property prediction, and structure prediction. Use this skill for synthetic biology tasks involving get sequence id DegenerateCodonCalculatorbyAminoAcid calculate protein sequence properties pred protein structure esmfold. Combines 4 tools from 4 SCP server(s)."
Synthetic Biology Design
Discipline: Synthetic Biology | Tools Used: 4 | Servers: 4
Description
Design synthetic biology construct: gene lookup, codon optimization, protein property prediction, and structure prediction.
Tools Used
- `get_sequence_id` from
ensembl-server(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/12/Origene-Ensembl - `DegenerateCodonCalculatorbyAminoAcid` from
server-29(sse) -https://scp.intern-ai.org.cn/api/v1/mcp/29/SciToolAgent-Bio - `calculate_protein_sequence_properties` from
server-2(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/2/DrugSDA-Tool - `pred_protein_structure_esmfold` from
server-3(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/3/DrugSDA-Model
Workflow
- Get gene sequence
- Design degenerate codons
- Predict protein properties
- Predict structure
Test Case
Input
json
{"gene_id": "ENSG00000141510","amino_acids": "AVILM"}
Expected Steps
- Get gene sequence
- Design degenerate codons
- Predict protein properties
- Predict structure
Usage Example
Note: Replace<YOUR_SCP_HUB_API_KEY>with your own SCP Hub API Key. You can obtain one from the SCP Platform.
python
import asyncioimport jsonfrom mcp import ClientSessionfrom mcp.client.streamable_http import streamablehttp_clientfrom mcp.client.sse import sse_clientSERVERS = {"ensembl-server": "https://scp.intern-ai.org.cn/api/v1/mcp/12/Origene-Ensembl","server-29": "https://scp.intern-ai.org.cn/api/v1/mcp/29/SciToolAgent-Bio","server-2": "https://scp.intern-ai.org.cn/api/v1/mcp/2/DrugSDA-Tool","server-3": "https://scp.intern-ai.org.cn/api/v1/mcp/3/DrugSDA-Model"}async def connect(url, transport_type):transport = streamablehttp_client(url=url, headers={"SCP-HUB-API-KEY": "<YOUR_SCP_HUB_API_KEY>"})read, write, _ = await transport.__aenter__()ctx = ClientSession(read, write)session = await ctx.__aenter__()await session.initialize()return session, ctx, transportdef parse(result):try:if hasattr(result, 'content') and result.content:c = result.content[0]if hasattr(c, 'text'):try: return json.loads(c.text)except: return c.textreturn str(result)except: return str(result)async def main():# Connect to required serverssessions = {}sessions["ensembl-server"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/12/Origene-Ensembl", "streamable-http")sessions["server-29"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/29/SciToolAgent-Bio", "sse")sessions["server-2"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/2/DrugSDA-Tool", "streamable-http")sessions["server-3"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/3/DrugSDA-Model", "streamable-http")# Execute workflow steps# Step 1: Get gene sequenceresult_1 = await sessions["ensembl-server"].call_tool("get_sequence_id", arguments={})data_1 = parse(result_1)print(f"Step 1 result: {json.dumps(data_1, indent=2, ensure_ascii=False)[:500]}")# Step 2: Design degenerate codonsresult_2 = await sessions["server-29"].call_tool("DegenerateCodonCalculatorbyAminoAcid", arguments={})data_2 = parse(result_2)print(f"Step 2 result: {json.dumps(data_2, indent=2, ensure_ascii=False)[:500]}")# Step 3: Predict protein propertiesresult_3 = await sessions["server-2"].call_tool("calculate_protein_sequence_properties", arguments={})data_3 = parse(result_3)print(f"Step 3 result: {json.dumps(data_3, indent=2, ensure_ascii=False)[:500]}")# Step 4: Predict structureresult_4 = await sessions["server-3"].call_tool("pred_protein_structure_esmfold", arguments={})data_4 = parse(result_4)print(f"Step 4 result: {json.dumps(data_4, indent=2, ensure_ascii=False)[:500]}")# Cleanupprint("Workflow complete!")if __name__ == "__main__":asyncio.run(main())