关于 tooluniverse-protein-structure-prediction
用于从蛋白质序列或 UniProt 登录号预测和分析结构的 ToolUniverse 技能,结合 ESMFold 预测、AlphaFold 参考模型、实验结构查询及变异和序列属性分析。
主要功能
- 01使用 ESMFold 从头预测
- 02检索 AlphaFold 模型
- 03解读置信度分数
- 04比较实验结构
- 05评估变异影响
- 06计算序列属性
适用场景
- 01根据序列预测结构
- 02将预测结构与 AlphaFold 比较
- 03评估突变的结构影响
- 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 序列属性计算。
关键原则:
- 序列优先——预测前先获取或验证蛋白质序列
- 快速从头预测使用 ESMFold——可直接处理序列(最长约 800 个残基);无需查询数据库
- 参考模型使用 AlphaFold——检索预先计算的 AlphaFold 模型以供比较;使用
qualifier参数(UniProt 登录号) - 先评估质量,再进行解读——始终报告 pLDDT 分数;不要将低置信度区域解读为已折叠
- 进行实验验证——如有可用的 RCSB 实验结构,请将预测结果与之比较
- 变异分析使用 ProtVar——问题涉及影响结构的突变或 SNV 时使用
- 优先使用英文查询——在所有工具调用中使用英文蛋白质名称;用用户使用的语言回复
查资料,不要猜测
不确定任何科学事实时,先搜索数据库,而不是凭记忆推理。数据库验证过的答案总是比猜测更可靠。
计算,不要只描述
分析需要计算(统计、数据处理、评分、富集分析)时,通过 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 分数(整体折叠置信度)
工作流
- 使用该序列调用
ESMFold_predict_structure - 解析 pLDDT 分数:
- 逐残基置信度数组
- 计算所有残基的平均 pLDDT
- 找出低置信度区域(pLDDT < 50)
- 解析 pTM 分数(预测的模板建模分数)——整体折叠质量
- 记录 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),以便基于结构解读结合位点
工作流
- 调用
alphafold_get_prediction和alphafold_get_summary - 提取平均 pLDDT 和逐残基置信度
- 比较 ESMFold 与 AlphaFold 的 pLDDT 曲线:
- 它们对低置信度区域的判断是否一致?
- 较大的差异可能表明存在无序/柔性区域
- 记录 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 标识符- 返回:包括方法、分辨率、链、配体和发布日期的元数据
工作流
- 使用蛋白质名称搜索实验结构
- 筛选分辨率最高的 X 射线或冷冻电镜结构
- 获取最佳实验结构的条目详情
- 与预测结构比较:
- 如果存在实验结构:注明覆盖范围、分辨率和方法
- 标出实验结构中缺失、但预测置信度较高的区域(可能在晶体中无序)
- 标出实验结构中 pLDDT 较低的区域(可能是晶体伪影,而非真实折叠)
后备方案
- 如果 RCSB 搜索无结果:注明“在 PDB 中未找到实验结构”,仅使用预测结果继续分析
- 建议将 PDBe 作为次要来源进行查询
阶段 5:变异的结构影响(提供变异时)
目标:评估特定氨基酸替换对预测结构的影响。
工具
ProtVar_map_variant:
variant:字符串格式,例如"P04637 R175H"或 HGVS 格式- 返回:映射后的残基位置、基因组坐标、后果类型和变异登录号
ProtVar_get_function:
accession:UniProt 登录号position:整数形式的残基位置variant_aa:突变后的氨基酸(单字母)- 返回:功能注释——结构域、活性位点、结合位点、保守性评分、临床意义和预测致病性
工作流
- 调用
ProtVar_map_variant解析变异并确认位置 - 使用野生型位置调用
ProtVar_get_function,获取结构域背景信息 - 评估:突变残基是否位于关键结构区域?
- 活性位点/结合位点:很可能对功能产生重大影响
- 埋藏的疏水核心:可能导致折叠不稳定
- 暴露于表面的无序区域:较不可能影响整体折叠
- 比较该位置的 pLDDT(来自 ESMFold/AlphaFold),评估该区域的预测可靠性
变异影响的证据分级
| 等级 | 证据 |
|---|---|
| T1 | 此特定变异的临床/功能数据(来自 ProtVar) |
| T2 | 变异位于经实验表征的活性位点或结合界面 |
| T3 | 计算得出的致病性预测(来自 ProtVar 的 PolyPhen、SIFT) |
| T4 | 仅确认该位置处于预测的结构区域 |
阶段 6:质量综合评估与报告
必需的报告章节
-
蛋白质摘要——名称、长度、pI、稳定性指数(来自 ProtParam)
-
结构预测摘要表:
方法 平均 pLDDT pTM/全局评分 覆盖范围 备注 ESMFold X.X X.X 100%(全序列) — AlphaFold X.X — 100% 版本 vN 实验结构(最佳) N/A N/A XX% PDB:XXXX,X 射线,X.X A -
置信度图——标出高置信度与低置信度区域;突出显示无序区域
-
实验结构比较——PDB 是否覆盖该蛋白质?预测结果与实验结构的吻合情况如何?
-
变异影响(如适用)——结构域背景、致病性、结构后果
-
建议:
- 下游应用(对接、设计等)应采用哪个模型
- 应谨慎处理的区域
- 建议的实验验证方法
最低质量要求
- 报告 ESMFold 和 AlphaFold 的平均 pLDDT
- 按残基范围列出所有低置信度区域(pLDDT < 50)
- 检查 PDB 中是否存在实验结构(至少执行 1 次搜索查询)
- 当 UniProt 登录号可用时,至少比较 2 个预测来源
工具参数参考
| 工具 | 关键参数 | 说明 |
|---|---|---|
ESMFold_predict_structure | sequence | 原始氨基酸字符串,不含空格和 FASTA 标头 |
alphafold_get_prediction | qualifier 或 uniprot_id | UniProt 登录号(例如 "P04637") |
alphafold_get_summary | qualifier 或 uniprot_id | 同一 UniProt 登录号 |
ProtParam_calculate | sequence | 同一序列字符串 |
ProtVar_map_variant | variant | 格式:"<UniProt_ID> <AA><pos><AA>",例如 "P04637 R175H" |
ProtVar_get_function | position | 整数残基编号 |
备用策略
| 情况 | 备用方案 |
|---|---|
| ESMFold 失败(序列过长,> 800 aa) | 仅使用 AlphaFold 模型;注明长度限制 |
| AlphaFold 中没有该 UniProt ID 的条目 | 仅使用 ESMFold 预测 |
| RCSB 搜索未返回结果 | 注明没有实验结构;继续使用预测 |
| 没有可用的 UniProt 登录号 | 使用原始序列运行 ESMFold;跳过 AlphaFold |
| 未找到 ProtVar 变体 | 在第 4 阶段根据结构域注释手动评估该位置 |
集成的数据库
| 数据库 | 覆盖范围 | 提供内容 |
|---|---|---|
| ESMFold | 任意蛋白质序列(最多约 800 aa) | 仅根据序列进行从头结构预测 |
| AlphaFold DB | UniProt 审核过的蛋白质(超过 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 数据库中