Skip to main content

drug-target-structure

Drug-Target Structural Biology - Integrate drug and target structure: get drug from ChEMBL, target structure from PDB, dock them, and predict ADMET. Use this skill for structural pharmacology tasks involving get drug by name retrieve protein data by pdbcode quick molecule docking pred molecule admet. Combines 4 tools from 3 SCP server(s).

Source facts

Repository
InternScience/scp
Last source activity
March 3, 2026 at 09:51
Detected SKILL.md language
English
Stars
173
Forks
11

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
drug_target_structure
description
Drug-Target Structural Biology - Integrate drug and target structure: get drug from ChEMBL, target structure from PDB, dock them, and predict ADMET. Use this skill for structural pharmacology tasks involving get drug by name retrieve protein data by pdbcode quick molecule docking pred molecule admet. Combines 4 tools from 3 SCP server(s).
# Drug-Target Structural Biology **Discipline**: Structural Pharmacology | **Tools Used**: 4 | **Servers**: 3 ## Description Integrate drug and target structure: get drug from ChEMBL, target structure from PDB, dock them, and predict ADMET. ## Tools Used - **`get_drug_by_name`** from `chembl-server` (streamable-http) - `https://scp.intern-ai.org.cn/api/v1/mcp/4/Origene-ChEMBL` - **`retrieve_protein_data_by_pdbcode`** from `server-2` (streamable-http) - `https://scp.intern-ai.org.cn/api/v1/mcp/2/DrugSDA-Tool` - **`quick_molecule_docking`** from `server-3` (streamable-http) - `https://scp.intern-ai.org.cn/api/v1/mcp/3/DrugSDA-Model` - **`pred_molecule_admet`** from `server-3` (streamable-http) - `https://scp.intern-ai.org.cn/api/v1/mcp/3/DrugSDA-Model` ## Workflow 1. Get drug data from ChEMBL 2. Download target structure 3. Perform molecular docking 4. Predict ADMET for drug ## Test Case ### Input ```json { "drug": "imatinib", "pdb_code": "1IEP" } ``` ### Expected Steps 1. Get drug data from ChEMBL 2. Download target structure 3. Perform molecular docking 4. Predict ADMET for drug ## Usage Example > **Note:** Replace `<YOUR_SCP_HUB_API_KEY>` with your own SCP Hub API Key. You can obtain one from the [SCP Platform](https://scphub.intern-ai.org.cn). ```python import asyncio import json from mcp import ClientSession from mcp.client.streamable_http import streamablehttp_client from mcp.client.sse import sse_client SERVERS = { "chembl-server": "https://scp.intern-ai.org.cn/api/v1/mcp/4/Origene-ChEMBL", "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, transport 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(): # Connect to required servers sessions = {} sessions["chembl-server"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/4/Origene-ChEMBL", "streamable-http") 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 drug data from ChEMBL result_1 = await sessions["chembl-server"].call_tool("get_drug_by_name", arguments={}) data_1 = parse(result_1) print(f"Step 1 result: {json.dumps(data_1, indent=2, ensure_ascii=False)[:500]}") # Step 2: Download target structure result_2 = await sessions["server-2"].call_tool("retrieve_protein_data_by_pdbcode", arguments={}) data_2 = parse(result_2) print(f"Step 2 result: {json.dumps(data_2, indent=2, ensure_ascii=False)[:500]}") # Step 3: Perform molecular docking result_3 = await sessions["server-3"].call_tool("quick_molecule_docking", arguments={}) data_3 = parse(result_3) print(f"Step 3 result: {json.dumps(data_3, indent=2, ensure_ascii=False)[:500]}") # Step 4: Predict ADMET for drug result_4 = await sessions["server-3"].call_tool("pred_molecule_admet", arguments={}) data_4 = parse(result_4) print(f"Step 4 result: {json.dumps(data_4, indent=2, ensure_ascii=False)[:500]}") # Cleanup print("Workflow complete!") if __name__ == "__main__": asyncio.run(main()) ```
View on GitHub