<< All versions
Skill v1.0.0
currentAutomated scan100/100internscience/scp/protein-quality-assessment
──Details
PublishedJune 17, 2026 at 10:42 AM
Content Hashsha256:05a72b663f0ecd9c...
Git SHAcea539856403
──Files
Files (1 file, 4.3 KB)
SKILL.md4.3 KBactive
SKILL.md · 117 lines · 4.3 KB
version: "1.0.0" name: protein_quality_assessment description: "Protein Structure Quality Assessment - Assess structure quality: basic info, geometry analysis, quality metrics, composition, and visualization. Use this skill for structural biology tasks involving calculate pdb basic info calculate pdb structural geometry calculate pdb quality metrics calculate pdb composition info visualize protein. Combines 5 tools from 1 SCP server(s)."
Protein Structure Quality Assessment
Discipline: Structural Biology | Tools Used: 5 | Servers: 1
Description
Assess structure quality: basic info, geometry analysis, quality metrics, composition, and visualization.
Tools Used
- `calculate_pdb_basic_info` from
server-2(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/2/DrugSDA-Tool - `calculate_pdb_structural_geometry` from
server-2(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/2/DrugSDA-Tool - `calculate_pdb_quality_metrics` from
server-2(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/2/DrugSDA-Tool - `calculate_pdb_composition_info` from
server-2(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/2/DrugSDA-Tool - `visualize_protein` from
server-2(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/2/DrugSDA-Tool
Workflow
- Calculate basic structure info
- Analyze structural geometry
- Compute quality metrics
- Analyze composition
- Visualize structure
Test Case
Input
json
{"pdb_code": "1AKE"}
Expected Steps
- Calculate basic structure info
- Analyze structural geometry
- Compute quality metrics
- Analyze composition
- Visualize 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 = {"server-2": "https://scp.intern-ai.org.cn/api/v1/mcp/2/DrugSDA-Tool"}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["server-2"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/2/DrugSDA-Tool", "streamable-http")# Execute workflow steps# Step 1: Calculate basic structure inforesult_1 = await sessions["server-2"].call_tool("calculate_pdb_basic_info", arguments={})data_1 = parse(result_1)print(f"Step 1 result: {json.dumps(data_1, indent=2, ensure_ascii=False)[:500]}")# Step 2: Analyze structural geometryresult_2 = await sessions["server-2"].call_tool("calculate_pdb_structural_geometry", arguments={})data_2 = parse(result_2)print(f"Step 2 result: {json.dumps(data_2, indent=2, ensure_ascii=False)[:500]}")# Step 3: Compute quality metricsresult_3 = await sessions["server-2"].call_tool("calculate_pdb_quality_metrics", arguments={})data_3 = parse(result_3)print(f"Step 3 result: {json.dumps(data_3, indent=2, ensure_ascii=False)[:500]}")# Step 4: Analyze compositionresult_4 = await sessions["server-2"].call_tool("calculate_pdb_composition_info", arguments={})data_4 = parse(result_4)print(f"Step 4 result: {json.dumps(data_4, indent=2, ensure_ascii=False)[:500]}")# Step 5: Visualize structureresult_5 = await sessions["server-2"].call_tool("visualize_protein", arguments={})data_5 = parse(result_5)print(f"Step 5 result: {json.dumps(data_5, indent=2, ensure_ascii=False)[:500]}")# Cleanupprint("Workflow complete!")if __name__ == "__main__":asyncio.run(main())