一键导入
boltz2-binding-affinity
Predict protein-ligand binding affinity using Boltz-2 model to assess molecular interactions and binding probability for drug discovery.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Predict protein-ligand binding affinity using Boltz-2 model to assess molecular interactions and binding probability for drug discovery.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use the local InnoClaw CLI to run app workflows and Deep Research sessions from the terminal. Trigger when the user wants command-line control over this repository instead of only using the web UI.
Use when the user wants the full multi-stage paper discussion workflow, a comprehensive structured discussion of one paper, or an equivalent full-discussion request in another language.
Use when the user wants question-driven help on one paper, including paper understanding, follow-up questions, method or experiment clarification, limitation analysis, or comparison against related work in any language.
Use when the user wants the full research ideation workflow grounded in one seed paper, including complete ideation, feasibility review, experiment planning, and final synthesis, or makes an equivalent ideation request in another language.
ADMET & Drug-Likeness Report - Generate comprehensive ADMET and drug-likeness report: molecular properties, H-bond analysis, hydrophobicity, topology, and ADMET prediction. Use this skill for medicinal chemistry tasks involving calculate mol basic info calculate mol hbond calculate mol hydrophobicity calculate mol topology pred molecule admet. Combines 5 tools from 2 SCP server(s).
Affinity Maturation Pipeline - Affinity maturation: compute binding affinity, predict mutations, compute hydrophilicity, and predict drug-target interaction. Use this skill for antibody engineering tasks involving ComputeAffinityCalculator zero shot sequence prediction ComputeHydrophilicity PredictDrugTargetInteraction. Combines 4 tools from 3 SCP server(s).
| name | boltz2-binding-affinity |
| description | Predict protein-ligand binding affinity using Boltz-2 model to assess molecular interactions and binding probability for drug discovery. |
| license | MIT license |
| metadata | {"skill-author":"PJLab"} |
import asyncio
import json
from contextlib import AsyncExitStack
from mcp.client.streamable_http import streamablehttp_client
from mcp import ClientSession
class DrugSDAClient:
"""DrugSDA-Model MCP Client"""
def __init__(self, server_url: str, api_key: str):
self.server_url = server_url
self.api_key = api_key
self.session = None
async def connect(self):
"""Establish connection and initialize session"""
print(f"server url: {self.server_url}")
try:
self.transport = streamablehttp_client(
url=self.server_url,
headers={"SCP-HUB-API-KEY": self.api_key}
)
self._stack = AsyncExitStack()
await self._stack.__aenter__()
self.read, self.write, self.get_session_id = await self._stack.enter_async_context(self.transport)
self.session_ctx = ClientSession(self.read, self.write)
self.session = await self._stack.enter_async_context(self.session_ctx)
await self.session.initialize()
session_id = self.get_session_id()
print(f"✓ connect success")
return True
except Exception as e:
print(f"✗ connect failure: {e}")
import traceback
traceback.print_exc()
return False
async def disconnect(self):
"""Disconnect from server"""
try:
if hasattr(self, '_stack'):
await self._stack.aclose()
print("✓ already disconnect")
except Exception as e:
print(f"✗ disconnect error: {e}")
def parse_result(self, result):
"""Parse MCP tool call result"""
try:
if hasattr(result, 'content') and result.content:
content = result.content[0]
if hasattr(content, 'text'):
return json.loads(content.text)
return str(result)
except Exception as e:
return {"error": f"parse error: {e}", "raw": str(result)}
This workflow predicts protein-ligand binding affinity using the Boltz-2 deep learning model, providing affinity probabilities and 3D complex structures.
Workflow Steps:
Implementation:
## Initialize client
client = DrugSDAClient(
"https://scp.intern-ai.org.cn/api/v1/mcp/3/DrugSDA-Model",
"<your-api-key>"
)
if not await client.connect():
print("connection failed")
exit()
## Input: Protein sequence and ligand SMILES
sequence = 'PIVQNLQGQMVHQCISPRTLNAWVKVVEEKAFSPEVIPMFSALSCGATPQDLNTMLNTVGGHQAAMQMLKETINEEAAEWDRLHPVHAGPIAPGQMREPRGSDIAGTTSTLQEQIGWMTHNPPIPVGEIYKRWIILGLNKIVRMYSPTSILDIRQGPKEPFRDYVDRFYKTLRAEQASQEVKNAATETLLVQNANPDCKTILKALGPGATLEEMMTACQG'
protein = [{'chain': 'A', 'sequence': sequence}]
smiles_list = ['N[C@@H](Cc1ccc(O)cc1)C(=O)O', "CC(C)C1=CC=CC=C1"]
## Execute Boltz-2 binding affinity prediction
result = await client.session.call_tool(
"boltz_binding_affinity",
arguments={
"protein": protein,
"smiles_list": smiles_list
}
)
result_data = client.parse_result(result)
boltz_res = result_data["boltz_res"]
## Display results
for i, item in enumerate(boltz_res, 1):
print(f"{i}. SMILES: {item['smiles']}")
print(f" Affinity Probability: {item['affinity_probability']:.4f}")
print(f" Structure File: {item['cif_file']}\n")
await client.disconnect()
DrugSDA-Model Server:
boltz_binding_affinity: Predict protein-ligand binding affinity using Boltz-2
protein (list): List of protein chains with sequence information
{'chain': str, 'sequence': str}smiles_list (list): List of ligand SMILES stringsboltz_res (list): List of binding predictions
smiles (str): Ligand SMILES stringaffinity_probability (float): Binding affinity probability (0-1)cif_file (str): Path to predicted complex structureInput:
protein: List of protein chains
chain: Chain identifier (e.g., 'A', 'B')sequence: Amino acid sequence in single-letter codesmiles_list: List of SMILES strings for ligand moleculesOutput:
smiles: Ligand SMILES stringaffinity_probability: Binding probability (0-1, higher is better)cif_file: Path to predicted protein-ligand complex structure in CIF format