mcpField
T
tooluniverse-binder-discovery

tooluniverse-binder-discovery

github.com/mims-harvard其他1.8k391 次安装2 天前更新
代码仓库

关于 tooluniverse-binder-discovery

tooluniverse-binder-discovery 是用于发现小分子结合剂的 ToolUniverse 技能,面向靶点研究与先导化合物筛选。它按靶点可成药性、已知配体、结构分析、化合物扩展和 ADMET 过滤组织流程,并对候选物排序。

主要功能

  1. 01评估靶点可成药性与结合位点
  2. 02挖掘已知配体并分析构效关系
  3. 03基于结构和相似性扩展化合物
  4. 04生成并筛选候选分子
  5. 05结合对接、ADMET 与证据分级排序

适用场景

  1. 01为目标蛋白寻找小分子候选物
  2. 02评估靶点口袋是否适合小分子结合
  3. 03扩展已知活性化合物的类似物
  4. 04按 ADMET 与对接证据优先筛选候选物

MCP 相关

该技能使用 ToolUniverse 工具完成靶点、配体、结构、化合物和 ADMET 查询及分析。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-binder-discovery

安装后在 Claude Code 中输入/tooluniverse-binder-discovery确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

CHECKLIST.md
EXAMPLES.md
REPORT_TEMPLATE.md
TOOLS_REFERENCE.md
WORKFLOW_DETAILS.md

详细介绍

小分子结合剂发现策略

借助 60 多种 ToolUniverse 工具,系统地发现新型小分子结合剂,涵盖成药性评估、已知配体挖掘、相似性扩展、ADMET 筛选和合成可行性分析。

查证,不要猜测——得出结论前,务必先从工具中检索实际数据。不要仅凭靶点类别就推断其成药性、结合位点或化合物性质。

核心原则:

  1. 报告优先——先创建报告文件,再逐步填充内容
  2. 优先验证靶点——搜索化合物前,先确认其成药性
  3. 多策略并行——结合基于结构和基于配体的方法
  4. 考虑 ADMET 的筛选——尽早剔除不理想的化合物
  5. 证据分级——根据支持性证据为候选物评级
  6. 输出可执行——提供经过优先级排序的候选物及其依据
  7. 优先使用英语查询——调用工具时始终使用英语术语。使用用户的语言回复

结合位点推理(从此处开始)

调用任何工具前,先推理靶点的结构生物学特征:

结合位点是明确的口袋(可供小分子结合),还是平坦的蛋白质-蛋白质界面(需要肽或大环分子)? 这将决定筛选策略。

  • 具有活性位点的酶(蛋白酶、激酶、ATP 酶):具有深且明确的口袋,是经典的小分子靶点。优先搜索共结晶结构,并分析已知抑制剂的骨架。
  • GPCR 和离子通道:具有跨膜口袋。通常可找到其结构;可从 GPCRdb 和 GtoPdb 中已知的药理学信息入手。
  • 核受体:具有深疏水口袋。非常适合开发小分子;基于配体的方法效果显著。
  • 蛋白质-蛋白质界面:接触面平坦且广阔。除非存在“热点”空腔,否则小分子很少能有效竞争结合。采用小分子策略前,先确认是否存在变构口袋。若未发现口袋,应提醒用户。如果靶点是已知的分子胶降解剂新底物(或目标是诱导新的 PPI,而非阻断现有口袋),则在判定该靶点无法通过小分子成药前,先使用 MolGlueDB_search_compounds/MolGlueDB_get_compound 检索已知的分子胶化学类型。
  • 内在无序区:基本不存在直接的小分子策略。应转向肽类策略,或检查 MolGlueDB_search_compounds,确认该靶点是否为有文献记载的分子胶新底物。
  • 支架蛋白/衔接蛋白:在判定无法成药前,应评估共结晶结构中是否存在意料之外的口袋。

根据上述推理选择研究阶段,并在执行完整工作流前提醒用户相关挑战。


关键工作流要求

1. 报告优先(强制要求)

不要向用户展示搜索过程或工具输出。应当:

  1. 先创建报告文件——收集任何数据之前:

    • 文件名:[TARGET]_binder_discovery_report.md
    • 使用模板中的所有章节标题初始化文件(参见 REPORT_TEMPLATE.md)
    • 在每个章节中添加占位文本:[Researching...]
  2. 逐步更新报告——收集到数据后,立即更新相应章节。

  3. 输出单独的数据文件:

    • [TARGET]_candidate_compounds.csv——按优先级排序的化合物,附带 SMILES 和评分
    • [TARGET]_bibliography.json——文献参考(可选)
2. 引用要求(强制要求)

每条信息都必须包含来源:

示例:*Source: ChEMBL via ChEMBL_get_target_activities (CHEMBL203)*

工作流概览

各阶段按顺序排列:

  • 阶段 0:工具验证(使用 get_tool_info 检查参数名称)
  • 阶段 1:靶点验证——解析 ID、评估成药性、识别结合位点,必要时预测结构
  • 阶段 2:已知配体挖掘——ChEMBL、BindingDB、GtoPdb、PubChem BioAssay、化学探针;SAR 分析
  • 阶段 3:结构分析——PDB 共晶结构、EMDB(膜靶点)、结合口袋表征
  • 阶段 3.5:对接验证——对参考抑制剂进行对接,以验证口袋几何结构
  • 阶段 4:化合物扩展——相似性/子结构搜索(种子:3-5 个多样化活性化合物)+ 从头生成
  • 阶段 5:ADMET 筛选——理化性质、生物利用度、毒性、CYP、结构警示
  • 阶段 6:候选化合物对接与优先级排序——对前 20 个进行评分和排名
  • 阶段 6.5:文献证据——PubMed、EuropePMC、OpenAlex
  • 阶段 7:报告汇总与交付

阶段 0:工具验证

重要:调用不熟悉的工具前,请先验证工具参数。

tool_info = tu.tools.get_tool_info(tool_names="ChEMBL_get_target_activities")

常见参数修正(如不确定,请使用 get_tool_info 验证):

  • OpenTargets_*:使用 ensemblId(驼峰命名);ADMETAI_*:smiles 必须为列表
  • NvidiaNIM_alphafold2 (需要 NVIDIA_API_KEY 环境变量;可在 build.nvidia.com 免费获取密钥):使用 sequence,而非 seq;NvidiaNIM_genmol (需要 NVIDIA_API_KEY 环境变量;可在 build.nvidia.com 免费获取密钥):SMILES 必须包含 [*{min-max}]
  • NvidiaNIM_boltz2 (需要 NVIDIA_API_KEY 环境变量;可在 build.nvidia.com 免费获取密钥):polymers=[{"molecule_type": "protein", "sequence": "..."}]

阶段 1:靶点验证

1.1 标识符解析

预先解析所有 ID,并保存以供后续查询使用:

1. UniProt_search(query=target_name, organism="human") -> UniProt accession
2. MyGene_query_genes(query=gene_symbol, species="human") -> Ensembl gene ID
3. ChEMBL_search_targets(pref_name__contains=target_name, organism="Homo sapiens") -> ChEMBL target ID
4. GtoPdb_search_targets(query=target_name) -> GtoPdb ID (if GPCR/channel/enzyme)
1.2 成药性评估

使用多来源交叉验证:

  • OpenTargets_get_target_tractability_by_ensemblID(ensemblId) - 成药性类别
  • DGIdb_get_gene_druggability(genes=[gene_symbol]) - 成药性类别
  • OpenTargets_get_target_classes_by_ensemblID(ensemblId) - 靶点类别
  • 对于 GPCR:GPCRdb_get_protein + GPCRdb_get_ligands + GPCRdb_get_structures
  • 对于抗体格局:TheraSAbDab_search_by_target(target=target_name)

决策点:如果没有成药性数据,且结合位点分析表明靶点可能涉及 PPI 或无序区域,请在继续之前明确提醒用户。

1.3 结合位点分析
  • ChEMBL_search_binding_sites(site_name__contains=...)(仅按位点名称筛选;无法按靶点筛选)
  • 使用 get_binding_affinity_by_pdb_id(pdb_id) 查询共晶配体
  • 使用 InterPro_get_protein_domains(protein_id=uniprot_accession) 查询结构域架构
1.4 结构预测(NVIDIA NIM)

需要 NVIDIA_API_KEY。有两种选择:

  • AlphaFold2:NvidiaNIM_alphafold2(sequence, algorithm="mmseqs2") - 精度高,耗时 5-15 分钟
  • ESMFold:ESMFold_predict_structure(sequence) - 速度快(约 30 秒),最多支持 1024 个 AA

pLDDT 指南:>=90 表示置信度极高,70-90 表示置信度较高,<70 表示使用时需谨慎。如果推定结合区域的 pLDDT 较低,对接结果的可靠性会受到影响。


阶段 2:已知配体挖掘

生物活性数据的优先级顺序:

  1. ChEMBL_get_target_activities - 经过整理,可用于 SAR 分析
  2. BindingDB_get_ligands_by_uniprot - 直接提供 Ki/Kd 和文献链接
  3. GtoPdb_search_ligands - 专注于药理学(GPCR、通道);需要 GTOPDB_API_KEY(未设置时返回 HTTP 401),因此未设置时跳过
  4. PubChem_search_assays_by_target_gene - HTS 筛选、新颖骨架
  5. OpenTargets_get_chemical_probes_by_target_ensemblID - 已验证的探针
  6. MolGlueDB_search_compounds - 专门针对分子胶降解剂(能诱导新的蛋白质-蛋白质相互作用,而非占据传统结合口袋的小分子);如果靶点没有可成药口袋,但已知或疑似为新底物,请检查此项

关键步骤:

  1. 筛选 IC50/Ki/Kd < 10 uM 的分子;获取活性最高分子的详细信息
  2. 识别化学探针和已获批药物
  3. 分析 SAR:常见骨架、关键修饰
  4. 检查脱靶选择性:BindingDB_get_targets_by_compound

阶段 3:结构分析

工具:

  • PDB_search_similar_structures(query=uniprot, type="sequence") - 查找 PDB 条目
  • get_protein_metadata_by_pdb_id(pdb_id) - 分辨率、方法
  • get_binding_affinity_by_pdb_id(pdb_id) - 共晶配体亲和力
  • get_ligand_smiles_by_chem_comp_id(chem_comp_id) - 获取 PDB 中配体的 SMILES
  • EMDB_search_structures(query) - 冷冻电镜结构(GPCR 和离子通道优先使用)
  • alphafold_get_prediction(qualifier) - AlphaFold DB 备用选项
阶段 3.5:对接验证(NVIDIA NIM)

如果有 PDB 和 SDF:使用 NvidiaNIM_diffdock(参数见 TOOLS_REFERENCE.md;需要 NVIDIA_API_KEY)。get_diffdock_info(info_type="overview") 仅返回 DiffDock 文档,不会执行任何对接。 如果只有序列和 SMILES:使用 NvidiaNIM_boltz2(polymers=[...], ligands=[...])。

先对接已知参考抑制剂,以验证结合口袋的几何结构,然后再运行候选分子。


阶段 4:化合物扩展

4.1-4.3 基于搜索的扩展

使用 3-5 个具有多样性的活性分子作为种子,相似度阈值设为 70-85%:

  • ChEMBL_search_similar_molecules(query=SMILES, similarity_threshold=70)
  • PubChem_search_compounds_by_similarity(smiles, threshold=0.7)
  • ChEMBL_search_substructure(smiles=core_scaffold)
  • STITCH_get_chemical_protein_interactions(identifiers=[gene], species=9606)
4.4 从头生成(NVIDIA NIM)

GenMol - 使用掩码区域进行骨架跳跃:

NvidiaNIM_genmol(smiles="...core...[*{3-8}]...tail...[*{1-3}]...", num_molecules=100, temperature=2.0, scoring="QED")

MolMIM - 可控类似物生成:

NvidiaNIM_molmim(smi=reference_smiles, num_molecules=50, algorithm="CMA-ES")

阶段 5:ADMET 筛选

按顺序应用(所有工具均接受 smiles=[list]):

  1. 理化性质:ADMETAI_predict_physicochemical_properties - Lipinski 违规数 <= 1,QED > 0.3,MW 200-600
  2. 生物利用度:ADMETAI_predict_bioavailability - 口服生物利用度 > 0.3
  3. 毒性:ADMETAI_predict_toxicity - AMES < 0.5,hERG < 0.5,DILI < 0.5
  4. CYP:ADMETAI_predict_CYP_interactions - 标记 CYP3A4 抑制剂
  5. 警示项:ChEMBL_search_compound_structural_alerts - 不含 PAINS

在报告中加入筛选漏斗摘要,显示每个阶段的通过/失败数量。


阶段 6:候选分子对接与优先级排序

综合评分:对接置信度(40%)+ ADMET 评分(30%)+ 与已知活性分子的相似度(20%)+ 新颖性(10%,未收录于 ChEMBL + 新颖骨架加分)。

候选分子的证据等级:

  • T1(3 星):实验 IC50/Ki < 100 nM
  • T2(2 星):对接评分与参考值相差不超过 5%,或 IC50 为 100-1000 nM
  • T3(1 星):与 T1 化合物的相似度 >80%
  • T4(0 星):相似度为 70-80%,仅骨架匹配
  • T5(无星):生成的分子,已通过 ADMET 筛选,未进行对接

交付评分最高的 20 个候选分子,包含:排名、ID、SMILES、对接评分、ADMET 评分、总评分、来源、证据等级。


阶段 6.5:文献证据

  • PubMed_search_articles(query="[TARGET] inhibitor SAR") - 经同行评审
  • EuropePMC_search_articles(query="SRC:PPR AND ...") - 预印本(未经同行评审)
  • openalex_search_works(query) - 引文分析

回退链

Target ID:     ChEMBL_search_targets -> GtoPdb_search_targets -> "Not in databases"
Druggability:  OpenTargets tractability -> DGIdb druggability -> target class proxy
Bioactivity:   ChEMBL -> BindingDB -> GtoPdb -> PubChem BioAssay -> "No data"
Structure:     PDB -> EMDB (membrane) -> alphafold_get_prediction -> NvidiaNIM_esmfold -> AlphaFold DB -> "None"
Similarity:    ChEMBL similar -> PubChem similar -> "Search failed"
Docking:       get_diffdock_info -> NvidiaNIM_boltz2 -> similarity-based scoring
Generation:    NvidiaNIM_genmol -> NvidiaNIM_molmim -> similarity search only
Literature:    PubMed -> EuropePMC (preprints) -> OpenAlex
GPCR data:     GPCRdb_get_protein -> GtoPdb_search_targets

编程式访问(超越工具)

当 ToolUniverse 工具返回的化合物集有限时,请直接访问化学数据库:

import requests, pandas as pd

# PubChem batch property retrieval (up to 100 CIDs per call)
cids = "2244,5988,3672"
url = f"https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/cid/{cids}/property/MolecularWeight,XLogP,TPSA,HBondDonorCount,HBondAcceptorCount/JSON"
props = pd.DataFrame(requests.get(url).json()["PropertyTable"]["Properties"])

# ChEMBL bioactivity bulk download for a target
target_id = "CHEMBL203"  # EGFR
url = f"https://www.ebi.ac.uk/chembl/api/data/activity.json?target_chembl_id={target_id}&pchembl_value__gte=5&limit=1000"
activities = requests.get(url).json()["activities"]
df = pd.DataFrame(activities)[["molecule_chembl_id", "canonical_smiles", "pchembl_value", "standard_type"]]

# Lipinski Rule of 5 filtering (no RDKit needed)
lipinski = props[(props["MolecularWeight"] <= 500) & (props["XLogP"] <= 5) &
                 (props["HBondDonorCount"] <= 5) & (props["HBondAcceptorCount"] <= 10)]

# SDF download from PubChem (for docking input)
sdf_url = f"https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/cid/{cids}/SDF"
sdf_content = requests.get(sdf_url).text

有关格式指南和分页模式,请参阅 tooluniverse-data-wrangling 技能。


NVIDIA NIM 运行时说明

AlphaFold2:5-15 分钟(异步,最多约 2000 AA)。ESMFold:约 30 秒(最多 1024 AA)。DiffDock:每个配体约 1-2 分钟。Boltz2:约 2-5 分钟。GenMol/MolMIM:约 1-3 分钟。

始终检查:import os; nvidia_available = bool(os.environ.get("NVIDIA_API_KEY"))

对于大规模扩展(>500 个化合物):分批处理,每批 100 个,并优先对排名靠前的候选物进行对接。


参考文件

评论

支持 Markdown