| name | protein_structure_analysis |
| description | Protein Structure Comprehensive Analysis - Comprehensive structure analysis: download PDB, extract chains, calculate geometry, quality metrics, and composition. Use this skill for structural biology tasks involving retrieve protein data by pdbcode extract pdb chains calculate pdb structural geometry calculate pdb quality metrics calculate pdb composition info. Combines 5 tools from 1 SCP server(s). |
Protein Structure Comprehensive Analysis
Discipline: Structural Biology | Tools Used: 5 | Servers: 1
Description
Comprehensive structure analysis: download PDB, extract chains, calculate geometry, quality metrics, and composition.
Tools Used
retrieve_protein_data_by_pdbcode from server-2 (streamable-http) - https://scp.intern-ai.org.cn/api/v1/mcp/2/DrugSDA-Tool
extract_pdb_chains 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
Workflow
- Download PDB structure
- Extract chain sequences
- Calculate structural geometry
- Assess quality metrics
- Analyze composition
Test Case
Input
{
"pdb_code": "1AKE"
}
Expected Steps
- Download PDB structure
- Extract chain sequences
- Calculate structural geometry
- Assess quality metrics
- Analyze composition
Usage Example
Note: Replace sk-b04409a1-b32b-4511-9aeb-22980abdc05c with your own SCP Hub API Key. You can obtain one from the SCP Platform.
import asyncio
import json
from contextlib import AsyncExitStack
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
from mcp.client.sse import sse_client
SERVERS = {
"server-2": "https://scp.intern-ai.org.cn/api/v1/mcp/2/DrugSDA-Tool"
}
async def connect(url, stack):
transport = streamablehttp_client(url=url, headers={"SCP-HUB-API-KEY": "sk-b04409a1-b32b-4511-9aeb-22980abdc05c"})
read, write, _ = await stack.enter_async_context(transport)
ctx = ClientSession(read, write)
session = await stack.enter_async_context(ctx)
await session.initialize()
return session
def 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.text
return str(result)
except: return str(result)
async def main():
AsyncExitStack() stack:
sessions = {}
sessions[] = connect(, stack)
result_1 = sessions[].call_tool(, arguments={})
data_1 = parse(result_1)
()
result_2 = sessions[].call_tool(, arguments={})
data_2 = parse(result_2)
()
result_3 = sessions[].call_tool(, arguments={})
data_3 = parse(result_3)
()
result_4 = sessions[].call_tool(, arguments={})
data_4 = parse(result_4)
()
result_5 = sessions[].call_tool(, arguments={})
data_5 = parse(result_5)
()
()
__name__ == :
asyncio.run(main())