mcpField
T
tooluniverse-protein-structure-prediction

tooluniverse-protein-structure-prediction

github.com/mims-harvard数据与数据库1.8k240 次安装2 天前更新
代码仓库

关于 tooluniverse-protein-structure-prediction

用于从蛋白质序列或 UniProt 登录号预测和分析结构的 ToolUniverse 技能,结合 ESMFold 预测、AlphaFold 参考模型、实验结构查询及变异和序列属性分析。

主要功能

  1. 01使用 ESMFold 从头预测
  2. 02检索 AlphaFold 模型
  3. 03解读置信度分数
  4. 04比较实验结构
  5. 05评估变异影响
  6. 06计算序列属性

适用场景

  1. 01根据序列预测结构
  2. 02将预测结构与 AlphaFold 比较
  3. 03评估突变的结构影响
  4. 04计算蛋白质序列属性

MCP 相关

该技能使用 ToolUniverse MCP 工具进行结构预测、数据库检索和分析;Boltz 操作用于复合物或配体结合预测。

安装

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

$npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-protein-structure-prediction

安装后在 Claude Code 中输入/tooluniverse-protein-structure-prediction确认已加载。

详细介绍

蛋白质结构预测与分析

从序列或 UniProt 登录号出发,完成端到端的蛋白质结构预测工作流。结合 ESMFold 从头预测、AlphaFold 数据库检索、RCSB 实验结构基准比较、ProtVar 变异影响评估和 ProtParam 序列属性计算。

关键原则:

  1. 序列优先——预测前先获取或验证蛋白质序列
  2. 快速从头预测使用 ESMFold——可直接处理序列(最长约 800 个残基);无需查询数据库
  3. 参考模型使用 AlphaFold——检索预先计算的 AlphaFold 模型以供比较;使用 qualifier 参数(UniProt 登录号)
  4. 先评估质量,再进行解读——始终报告 pLDDT 分数;不要将低置信度区域解读为已折叠
  5. 进行实验验证——如有可用的 RCSB 实验结构,请将预测结果与之比较
  6. 变异分析使用 ProtVar——问题涉及影响结构的突变或 SNV 时使用
  7. 优先使用英文查询——在所有工具调用中使用英文蛋白质名称;用用户使用的语言回复

查资料,不要猜测

不确定任何科学事实时,先搜索数据库,而不是凭记忆推理。数据库验证过的答案总是比猜测更可靠。


计算,不要只描述

分析需要计算(统计、数据处理、评分、富集分析)时,通过 Bash 编写并运行 Python 代码。不要只描述你会怎么做——实际执行并报告结果。使用 ToolUniverse 工具检索数据,然后用 Python(pandas、scipy、statsmodels、matplotlib)进行分析。

适用场景

适用于用户提出以下问题:

  • “预测这个序列的结构:[FASTA]”
  • “[蛋白质] 的 AlphaFold 模型是什么样的?”
  • “[蛋白质] 的 AlphaFold 预测有多可靠?”
  • “[蛋白质] 是否有实验结构?它与 AlphaFold 预测相比如何?”
  • “突变 [变异] 会如何影响 [蛋白质] 的结构?”
  • “[蛋白质] 序列有哪些理化性质?”
  • “预测这个新蛋白质的结构”/“我有一个新序列,你能为它建模吗?”

不适用于(请改用 tooluniverse-protein-structure-retrieval):仅检索的任务,例如用户提供 PDB ID,或希望浏览实验结构而不进行预测。


输入参数

参数必填描述示例
sequence是(用于 ESMFold)氨基酸序列(单字母 FASTA)MVLSPADKTNVK...
uniprot_id是(用于 AlphaFold)UniProt 登录号P04637、P69905
variant否用于评估结构影响的变异标注P04637 R175H、TP53 R175H
max_length否ESMFold 长度限制:建议约 800 个残基—

工作流概览

Phase 0: Input preparation (sequence retrieval if needed)
    |
Phase 1: Sequence properties (ProtParam_calculate)
    |
Phase 2: De novo prediction (ESMFold_predict_structure)
    |
Phase 3: AlphaFold reference (alphafold_get_prediction + alphafold_get_summary)
    |
Phase 4: Experimental structure comparison (RCSBAdvSearch_search_structures, RCSBData_get_entry)
    |
Phase 5: Variant structural impact (ProtVar_map_variant + ProtVar_get_function) [if variant provided]
    |
Phase 6: Quality synthesis and interpretation

阶段 0:输入准备

目标:获取或验证 ESMFold 预测所需的蛋白质序列。

如果已提供序列

直接将其用于 ESMFold_predict_structure。检查长度:

  • 1-400 个残基:完整预测,预期置信度较高
  • 400-800 个残基:支持预测,但可能较慢
  • 800 个残基:ESMFold 可能失败或产生较低质量的结果;建议改用 AlphaFold

如果只提供蛋白质名称或 UniProt ID

通过 UniProt_get_entry_by_accession 获取序列:

  • accession:UniProt 登录号
  • 从响应中提取 sequence.value 字段

注意:如果只提供名称(而非登录号),请先使用 UniProt_search 或 MyGene_query_genes 确定 UniProt 登录号,然后获取序列。


阶段 1:序列属性

目标:在预测前计算理化性质,以便结合背景信息解读结果。

工具

ProtParam_calculate:

  • sequence:氨基酸序列字符串(单字母代码)
  • 返回:分子量、等电点(pI)、消光系数、不稳定指数、GRAVY 分数、氨基酸组成
需要报告的关键属性
  • 分子量 — 提供尺寸背景
  • 等电点(pI) — 在中性 pH 下的电荷
  • 不稳定指数 — >40 表示蛋白质可能不稳定;会影响预测质量
  • GRAVY 分数 — 疏水性;>0 表示倾向于与膜结合
  • 长度 — 决定 ESMFold 是否可行

第 2 阶段:从头结构预测(ESMFold)

目标:使用 Meta 的 ESM-2 语言模型根据序列预测 3D 结构。

工具

ESMFold_predict_structure:

  • sequence:氨基酸序列字符串
  • 返回:PDB 格式的预测结构、逐残基 pLDDT 置信度分数、pTM 分数(整体折叠置信度)
工作流
  1. 使用该序列调用 ESMFold_predict_structure
  2. 解析 pLDDT 分数:
    • 逐残基置信度数组
    • 计算所有残基的平均 pLDDT
    • 找出低置信度区域(pLDDT < 50)
  3. 解析 pTM 分数(预测的模板建模分数)——整体折叠质量
  4. 记录 PDB 格式的坐标输出,以便后续可视化
质量解读
pLDDT 范围解读可靠性
>90置信度极高相当于实验质量
70-90置信度高主链可靠,侧链为近似值
50-70置信度低可能是无序或柔性区域
<50置信度极低可能是内在无序区域;不要进行解读
pTM 分数折叠置信度
>0.8整体折叠置信度高
0.5-0.8中等;部分结构域可能不确定
<0.5整体折叠置信度低
ESMFold 与 AlphaFold 的对比
  • ESMFold:速度更快,可直接处理序列,适用于新序列,无需查询数据库
  • AlphaFold:使用多序列比对(MSA);对高度保守的蛋白质通常具有更高的准确性
  • 两者在标准模式下都预测单链单体结构(而非复合物)

第 3 阶段:AlphaFold 参考模型

目标:检索预先计算的 AlphaFold2 模型,用于比较并作为高准确度参考。

工具

alphafold_get_prediction:

  • qualifier(或别名 uniprot_id / uniprot_accession):UniProt 登录号(例如,"P04637")
  • 返回:AlphaFold 模型 URL、pLDDT 分数、模型版本

alphafold_get_summary:

  • qualifier(或别名 uniprot_id / uniprot_accession):UniProt 登录号
  • 返回:预测摘要,包括置信度指标、模型质量

alphafold_get_annotations(可选):

  • qualifier:UniProt 登录号
  • 返回:叠加在结构上的功能区域注释(结合位点、活性位点)

AlphaFill_get_transplants(可选,配体/辅因子):

  • uniprot:UniProt 登录号(例如,"P00520" ABL1)
  • 返回:通过同源性移植到 AlphaFold 模型上的配体、辅因子和离子,并附有每个移植项的局部 RMSD 和来源 PDB ID
  • 适用场景:apo AlphaFold 模型未包含结合的配体/金属;运行此工具可恢复可能的辅因子/配体/离子环境(例如,ABL1 → STI/imatinib),以便基于结构解读结合位点
工作流
  1. 调用 alphafold_get_prediction 和 alphafold_get_summary
  2. 提取平均 pLDDT 和逐残基置信度
  3. 比较 ESMFold 与 AlphaFold 的 pLDDT 曲线:
    • 它们对低置信度区域的判断是否一致?
    • 较大的差异可能表明存在无序/柔性区域
  4. 记录 AlphaFold 模型版本(v1/v2/v3/v4)
决策逻辑
  • 如果没有可用的 UniProt 登录号:跳过 AlphaFold;仅使用 ESMFold
  • 如果蛋白质是复合物或包含多条链:注明这两种工具都只预测单条链;如果问题确实需要预测多聚体或蛋白质-配体复合物,而不只是单体置信度,请参阅下文的“复合物/配体结合预测(Boltz)”
  • 如果 AlphaFold 的置信度非常高(平均 pLDDT > 85):建议将 AlphaFold 作为主要参考

复合物/配体结合预测(Boltz,付费——可选)

ESMFold 和标准 AlphaFold(见上文)都只预测单条链。对于明确涉及复合物的问题——多链组装或蛋白质-配体结合——官方 Boltz API(Boltz_* 工具)可以填补这一空缺,但其运行方式与此技能中的其他所有工具都不同:它需要 BOLTZ_API_KEY,并且是一个付费异步任务(提交、轮询、获取结果),而非免费同步调用。

提交前务必估算费用:先使用相同输入调用 Boltz_estimate_structure_binding_cost,并在调用 Boltz_start_structure_binding 前向用户确认费用;未经用户确认,不要代替用户提交付费任务。Boltz_start_structure_binding 还需要调用方提供 idempotency_key,以避免重试时重复计费。

工作流:Boltz_estimate_structure_binding_cost(确认费用)-> Boltz_start_structure_binding(提交)-> Boltz_get_structure_binding(按任务 ID 轮询,直至完成)-> 按照上文针对 ESMFold/AlphaFold 的相同方式解读置信度。

对于没有复合物/结合问题的简单单体置信度评估,ESMFold 和 AlphaFold 仍是合适的默认选择——它们免费且同步。只有在问题非用 Boltz 不可回答时,才使用 Boltz。


膜拓扑与信号肽预测(DTU 工具,可选)

dtu_protein_predict 通过 BioLib 云端运行器(pip install pybiolib,匿名使用,无需账户)对原始序列运行 DTU Health Tech 的 ML 预测器——它回答的问题与 ESMFold/AlphaFold 的 3D 坐标预测不同:预测逐残基拓扑和序列特征,而非蛋白质折叠。

模型预测内容状态(已在线验证)
deeptmhmm(默认)逐残基拓扑(内部/外部/跨膜螺旋/β-链/信号肽)+ 跨膜区域表格——用于回答“这是膜蛋白吗?它跨膜几次?”可靠
signalp信号肽检测 + 切割位点可靠——已在真实的含信号肽序列上在线验证:正确返回 has_signal_peptide: true,切割位点位于第 22 个残基
deeploc亚细胞定位仅适用于原核生物(映射至 DeepLocPro——真核生物版本 DeepLoc 2.0 未在 BioLib 上发布),且其上游 BioLib 应用目前会在嵌入期间崩溃(设备不匹配);优先使用 deeptmhmm/signalp

任务在共享的 BioLib 云端基础设施上匿名运行,通常需要 2-5 分钟——对于大型或多条序列,请提高 max_wait_time;不要将响应缓慢视为任务卡住。输入可以是 FASTA 文本、裸氨基酸字符串或 fasta_path。如果缺少 pybiolib,工具会正常报错并给出安装说明,而不是输出堆栈跟踪;如果工具立即报错,请先检查这一点。

当蛋白质可能与膜相关或被分泌时(例如 GRAVY 评分 > 0,或名称听起来像“受体”/“分泌蛋白”),请将此工具与阶段 1(ProtParam)结合使用——膜拓扑或信号肽的预测结果会影响对 ESMFold/AlphaFold 置信度的解读(跨膜螺旋通常具有较高的 pLDDT,尽管它们嵌入在模型无法感知的脂质双层中)。


阶段 4:实验结构比较

目标:检查 PDB 中是否存在实验结构,以及预测结果与其有何差异。

工具

RCSBAdvSearch_search_structures(按蛋白质/基因名称搜索):

  • query:蛋白质名称或基因符号
  • limit:结果数量(默认值为 10)
  • 返回:包含分辨率、方法和标题的 PDB 条目列表

RCSBData_get_entry(获取指定 PDB ID 的详情):

  • pdb_id:4 个字符的 PDB 标识符
  • 返回:包括方法、分辨率、链、配体和发布日期的元数据
工作流
  1. 使用蛋白质名称搜索实验结构
  2. 筛选分辨率最高的 X 射线或冷冻电镜结构
  3. 获取最佳实验结构的条目详情
  4. 与预测结构比较:
    • 如果存在实验结构:注明覆盖范围、分辨率和方法
    • 标出实验结构中缺失、但预测置信度较高的区域(可能在晶体中无序)
    • 标出实验结构中 pLDDT 较低的区域(可能是晶体伪影,而非真实折叠)
后备方案
  • 如果 RCSB 搜索无结果:注明“在 PDB 中未找到实验结构”,仅使用预测结果继续分析
  • 建议将 PDBe 作为次要来源进行查询

阶段 5:变异的结构影响(提供变异时)

目标:评估特定氨基酸替换对预测结构的影响。

工具

ProtVar_map_variant:

  • variant:字符串格式,例如 "P04637 R175H" 或 HGVS 格式
  • 返回:映射后的残基位置、基因组坐标、后果类型和变异登录号

ProtVar_get_function:

  • accession:UniProt 登录号
  • position:整数形式的残基位置
  • variant_aa:突变后的氨基酸(单字母)
  • 返回:功能注释——结构域、活性位点、结合位点、保守性评分、临床意义和预测致病性
工作流
  1. 调用 ProtVar_map_variant 解析变异并确认位置
  2. 使用野生型位置调用 ProtVar_get_function,获取结构域背景信息
  3. 评估:突变残基是否位于关键结构区域?
    • 活性位点/结合位点:很可能对功能产生重大影响
    • 埋藏的疏水核心:可能导致折叠不稳定
    • 暴露于表面的无序区域:较不可能影响整体折叠
  4. 比较该位置的 pLDDT(来自 ESMFold/AlphaFold),评估该区域的预测可靠性
变异影响的证据分级
等级证据
T1此特定变异的临床/功能数据(来自 ProtVar)
T2变异位于经实验表征的活性位点或结合界面
T3计算得出的致病性预测(来自 ProtVar 的 PolyPhen、SIFT)
T4仅确认该位置处于预测的结构区域

阶段 6:质量综合评估与报告

必需的报告章节
  1. 蛋白质摘要——名称、长度、pI、稳定性指数(来自 ProtParam)

  2. 结构预测摘要表:

    方法平均 pLDDTpTM/全局评分覆盖范围备注
    ESMFoldX.XX.X100%(全序列)—
    AlphaFoldX.X—100%版本 vN
    实验结构(最佳)N/AN/AXX%PDB:XXXX,X 射线,X.X A
  3. 置信度图——标出高置信度与低置信度区域;突出显示无序区域

  4. 实验结构比较——PDB 是否覆盖该蛋白质?预测结果与实验结构的吻合情况如何?

  5. 变异影响(如适用)——结构域背景、致病性、结构后果

  6. 建议:

    • 下游应用(对接、设计等)应采用哪个模型
    • 应谨慎处理的区域
    • 建议的实验验证方法
最低质量要求
  • 报告 ESMFold 和 AlphaFold 的平均 pLDDT
  • 按残基范围列出所有低置信度区域(pLDDT < 50)
  • 检查 PDB 中是否存在实验结构(至少执行 1 次搜索查询)
  • 当 UniProt 登录号可用时,至少比较 2 个预测来源

工具参数参考

工具关键参数说明
ESMFold_predict_structuresequence原始氨基酸字符串,不含空格和 FASTA 标头
alphafold_get_predictionqualifier 或 uniprot_idUniProt 登录号(例如 "P04637")
alphafold_get_summaryqualifier 或 uniprot_id同一 UniProt 登录号
ProtParam_calculatesequence同一序列字符串
ProtVar_map_variantvariant格式:"<UniProt_ID> <AA><pos><AA>",例如 "P04637 R175H"
ProtVar_get_functionposition整数残基编号

备用策略

情况备用方案
ESMFold 失败(序列过长,> 800 aa)仅使用 AlphaFold 模型;注明长度限制
AlphaFold 中没有该 UniProt ID 的条目仅使用 ESMFold 预测
RCSB 搜索未返回结果注明没有实验结构;继续使用预测
没有可用的 UniProt 登录号使用原始序列运行 ESMFold;跳过 AlphaFold
未找到 ProtVar 变体在第 4 阶段根据结构域注释手动评估该位置

集成的数据库

数据库覆盖范围提供内容
ESMFold任意蛋白质序列(最多约 800 aa)仅根据序列进行从头结构预测
AlphaFold DBUniProt 审核过的蛋白质(超过 2 亿条)预计算预测结果,含逐残基 pLDDT
RCSB PDB约 220,000 个实验结构用于对比的真实实验坐标
ProtVar所有 UniProt 蛋白质变体影响、结构域背景、临床注释
ProtParam任意序列序列的理化性质
Boltz API(付费,BOLTZ_API_KEY)多链复合物、蛋白质-配体结合异步任务;请先估算费用(见上方专门章节)

限制

  • ESMFold 长度限制:超过约 800 个残基的序列可能会失败或质量降低
  • 仅支持单链(ESMFold/AlphaFold):两者都预测单体;对于多链复合物或蛋白质-配体结合,请参见上方的 Boltz 章节——该服务为付费服务,默认不免费
  • 无序区域:pLDDT < 50 表示内在无序区域(IDR)——不要将其解读为结构化区域
  • 不涉及动态变化:预测结构是静态的,无法表示构象灵活性或变构变化
  • 新型折叠:对于在训练数据中没有同源物的蛋白质,ESMFold 可能难以预测
  • AlphaFold DB 覆盖范围:一些近期表征的蛋白质可能尚未收录在 AlphaFold 数据库中

评论

支持 Markdown