mcpField
T
tooluniverse-protein-lof-mechanism

tooluniverse-protein-lof-mechanism

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

关于 tooluniverse-protein-lof-mechanism

面向单个错义变异的蛋白质功能丧失机制分析技能,整合致病性、结构、序列、SAE 特征和稳定性信号,推断可能受损的分子机制。

主要功能

  1. 01整合五类计算信号
  2. 02评估致病性与结构环境
  3. 03比较突变前后序列似然
  4. 04识别受损生物学特征
  5. 05估算蛋白质稳定性
  6. 06按证据评估机制可信度

适用场景

  1. 01分析已知有害错义变异的机制
  2. 02为药物挽救策略提供机制依据
  3. 03区分修复蛋白与替换蛋白的思路
  4. 04撰写临床机制说明

安装

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

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

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

详细介绍

蛋白质 LoF 机制综合分析

对于单个错义变异,综合 5 种独立的计算信号,提出具体的功能丧失机制。每种信号回答不同的问题:

信号工具回答的问题
致病性AlphaMissense_get_variant_score“这个变异是否有害?”
结构背景alphafold_get_prediction“突变位于折叠区域还是无序区域?”
序列似然ESM_score_sequence“这种氨基酸替换在进化上是否合理?”
特征破坏ESM_explain_variant_mechanism(或使用 ESM_score_variant_sae_disruption + ESM_describe_sae_feature 进行原始控制)“哪个生物学特征受到破坏?”
稳定性DynaMut2_predict_stability“蛋白质还能否正确折叠?”

何时使用此技能

适用于错义(编码区)变异,且满足以下条件:

  • 你已有证据表明该变异有害(或想确认这一点)
  • 你需要从分子层面了解该变异有害的原因
  • 后续工作取决于机制:药物挽救策略需要了解受损之处,基因治疗决策需要区分“修复蛋白质”与“替换蛋白质”,临床报告需要描述机制

不适用于(请改用其他技能):

  • 非编码区/调控区变异 → tooluniverse-variant-to-mechanism
  • ACMG 致病性分类 → tooluniverse-variant-interpretation
  • 仅分析 SAE 特征破坏(不进行完整综合分析)→ tooluniverse-protein-sae-variant-interpretation
  • 癌症特异性驱动变异 → tooluniverse-cancer-variant-interpretation

必需输入

输入格式示例
变异 ID{accession}_{ref_aa}{position}{alt_aa}P04637_R175H
或:UniProt 登录号 + 变异字符串登录号 + 参考/位置/替代氨基酸P04637、R175H
或:基因符号 + 变异HGNC 符号 + 参考/位置/替代氨基酸TP53、R175H

解析变异字符串:

import re
m = re.match(r"([A-Z])(\d+)([A-Z])", variant_str)
ref_aa, position, alt_aa = m.group(1), int(m.group(2)), m.group(3)

前提条件

  • SAE 信号需要 ESM_API_KEY 环境变量(https://forge.evolutionaryscale.ai)
  • 支持 SAE 的 esm 包:pip install 'esm @ git+https://github.com/evolutionaryscale/esm@ee891c52'
  • 访问 AlphaMissense、AlphaFold、UniProt、DynaMut2 需要互联网连接(均为托管端点,这些服务均无需 API 密钥)

工作流

步骤 0:解析登录号 + 获取规范序列

如果用户提供了基因符号:

UniProt_search(
    query="gene:TP53 AND organism_id:9606 AND reviewed:true",
    fields=["accession"],
)
# → P04637

获取规范序列:

UniProt_get_sequence_by_accession(accession="P04637")

验证参考残基:

assert sequence[position - 1] == ref_aa, "Wrong sequence or wrong isoform"
步骤 1:AlphaMissense 致病性
AlphaMissense_get_variant_score(
    uniprot_id="P04637",
    position=175,
    ref_aa="R",
    alt_aa="H",
)
# → returns score 0..1; ≥0.564 is the "likely pathogenic" threshold per the
#   AlphaMissense paper. Above 0.9 is very confident damaging.

如果 AlphaMissense 判定为良性(≤0.34),其余分析仅供探索参考——大多数良性变异都没有明确的 LoF 机制。

步骤 2:AlphaFold 结构背景
alphafold_get_prediction(uniprot_id="P04637")
# → returns structure data including per-residue pLDDT

检查突变位置的 pLDDT:

  • pLDDT > 70 → 折叠良好的区域;变异位于结构区域,结构/功能破坏具有意义
  • pLDDT 50-70 → 灵活/部分折叠区域;结果存在歧义
  • pLDDT < 50 → 无序区域;SAE/稳定性信号可能不可靠
步骤 3:ESMC 序列似然
ESM_score_sequence(
    sequence=ref_sequence,
    model="esmc-600m-2024-12",  # or 300m for cheaper
)
# Then for the mutant sequence:
ESM_score_sequence(
    sequence=mutant_sequence,
    model="esmc-600m-2024-12",
)

计算位置窗口内的 ΔlogP = mean_logP(mutant) − mean_logP(reference):

  • ΔlogP < −1 → 突变在进化上不合理(功能代价的强信号)
  • ΔlogP ≈ 0 → 突变较为保守,或位于可容忍的位置
  • ΔlogP > 0 的情况很少见,通常是噪声
步骤 4:SAE 特征破坏(独特信号)

推荐——一次调用(组合工具,返回破坏情况、类别标签和摘要):

ESM_explain_variant_mechanism(
    sequence=ref_sequence,
    position=175,
    ref_aa="R",
    alt_aa="H",
    window=8,
    top_k_features=5,
)
# data["mechanism_summary"] e.g.:
#   "Disrupted feature categories (lost): catalytic=2, ligand-binding=1"
# data["lost_feature_categories"] / data["gained_feature_categories"] give the raw counts
# data["top_features_lost"] / data["top_features_gained"] include per-feature deltas + categories

较低层级的替代方案(仅在需要标注前获取原始 feature_ids 时使用,例如在调用 describe 前筛选某个类别):

ESM_score_variant_sae_disruption(
    sequence=ref_sequence, position=175, ref_aa="R", alt_aa="H",
    window=8, top_k_features=10,
)
# Then for each kept feature:
ESM_describe_sae_feature(feature_id=feat["feature_id"])
# → returns category: catalytic | ligand-binding | ptm | domain |
#   motif | structural-stability | secondary-structure |
#   transmembrane | signal-peptide | propeptide | uncategorized

主要损失特征所属类别 = 最可能受到破坏的功能。

步骤 5:DynaMut2 稳定性(ΔΔG)

DynaMut2 需要 PDB 结构。有两种选择:

选项 A — 如果有该蛋白的 PDB ID,请使用:

# Look up PDB cross-references from UniProt entry
UniProt_get_entry_by_accession(accession="P04637")
# → check `uniProtKBCrossReferences` for entries with database == "PDB"
# → pick a structure that covers the mutation position
DynaMut2_predict_stability(
    pdb_id="2FEJ",   # example TP53 DNA-binding domain crystal structure
    chain="A",
    mutation="R175H",
)
# → returns ddG in kcal/mol

选项 B — 如果没有覆盖该位置的实验 PDB 结构,请使用 AlphaFold 模型(步骤 2 的输出)。DynaMut2 也能以相同方式接受 AlphaFold PDB 文件。

步骤 6:综合判断 — 确定 LoF 机制类别

应用上游的 variant_lof_mechanism 决策规则:

信号模式推断机制
ddG > +1 kcal/mol 且 ΔlogP < 0结构稳定性 LoF — 突变会降低折叠稳定性;蛋白质可能错误折叠或被降解。药物挽救策略:药理伴侣、复折叠剂。
ddG ≈ 0(在 [-0.5, +1] 范围内)且 丢失的 SAE 特征为催化特征直接催化 LoF — 蛋白质正常折叠,但活性位点已受损。策略:底物类似物或补充辅因子。
ddG ≈ 0 且 丢失的 SAE 特征为配体结合特征结合 LoF — 折叠结构得以保留,但结合口袋受到破坏。策略:使用小分子恢复功能。
ddG ≈ 0 且 丢失的 SAE 特征为 PTM 特征PTM LoF — 调控位点(磷酸化 / 糖基化 / 泛素化)受损。机制:调控失常,而非直接丧失活性。
ddG ≈ 0 且 丢失的 SAE 特征为结构域 / 基序特征界面 LoF — 蛋白质相互作用界面受到影响。策略:恢复 PPI。
ddG > 0 + AlphaMissense 判定为致病 + ΔlogP < 0,但没有明确的 SAE 信号一般有害突变 — 明显有害,但机制不明确。通过实验检测进一步调查。
步骤 7:如实评估证据

报告前,对综合判断进行评分:

置信度信号要求
高≥4 个信号指向相同结论(例如,AlphaMissense 判定为致病 + ΔlogP 较低 + ddG > +1 + SAE 特征丢失)
中2–3 个信号一致,但至少 1 个信号无法得出明确结论
低信号相互矛盾(例如,AlphaMissense 判定为致病,但 SAE 未显示具体类别)— 标记为需要实验跟进

报告格式

Variant: {VARIANT_ID}  e.g.  P04637_R175H = TP53 R175H

EVIDENCE LAYERS
  1. AlphaMissense:   {score:.3f}  ({pathogenic|ambiguous|benign})
  2. AlphaFold pLDDT: {plddt:.1f}  ({well-folded|flexible|disordered})
  3. ESMC ΔlogP:      {dlogp:+.3f}  ({implausible|tolerated})
  4. SAE feature loss: top 3 features lost, dominant category = {category}
        Feature {f1.id}: Δ={f1.delta:+.3f}, category={cat1}
        Feature {f2.id}: Δ={f2.delta:+.3f}, category={cat2}
        Feature {f3.id}: Δ={f3.delta:+.3f}, category={cat3}
  5. DynaMut2 ΔΔG:    {ddg:+.2f} kcal/mol  ({destabilizing|neutral|stabilizing})

PROPOSED MECHANISM: {one of the 6 categories from Step 6}

SUPPORTING LOGIC: {one paragraph synthesizing the signals}

CONFIDENCE: {high|medium|low}

LIMITATIONS: {any signals that conflicted, missing data, low pLDDT, etc.}

如实说明局限性

  1. 仅适用于错义变异。 插入缺失、无义和剪接变异需要使用其他工作流。
  2. 仅使用单一异构体。 使用 UniProt 标准异构体。非标准异构体中的变异可能不适用。
  3. SAE 标签是推断得出的,并非经过整理验证。 ESM_describe_sae_feature 标签是基于一个包含 10 种蛋白质的面板进行的尽力汇总;某些特征仍会显示为“未分类”,但激活值较高 — 应将此解读标记为低置信度。
  4. DynaMut2 需要 PDB。 如果没有 PDB 结构覆盖突变位置,且 AlphaFold 置信度较低(pLDDT < 50),则稳定性信号不可靠。
  5. 未能捕捉远距离变构效应。 SAE 窗口为 ±8 个残基。有些突变会通过远距离效应破坏蛋白质功能(例如,调节二聚化界面)— 仅靠 SAE 无法检测到。
  6. 综合判断决策规则为启发式规则。 步骤 6 中的 6 类映射是一个合理的起点,而非临床金标准。对于高风险解读,应将该规则视为有待实验验证的假设。
  7. SAE 输出采用非商业许可(依据 EvolutionaryScale Cambrian License)。

可选:高级用户(配备 GPU)可使用 ThermoMPNN 替代 DynaMut2

DynaMut2 是推荐的默认选择 — 它已通过托管学术 API(澳大利亚昆士兰大学 BioSig 实验室)接入 TU,无需任何额外设置。不过,如果你需要使用较新的 ThermoMPNN 模型(Dieckhaus 等人,PNAS 2024)以获得更高准确度,可以选择以下方案:

本地安装(你有 GPU 且希望完全掌控)
git clone https://github.com/Kuhlman-Lab/ThermoMPNN.git
cd ThermoMPNN
# Install conda env from environment.yaml — note the GitHub README warns
# the .yaml may install CPU-only PyTorch by mistake; verify GPU PyTorch
conda env create -f environment.yaml
conda activate ThermoMPNN
# The checkpoint thermoMPNN_default.pt ships in models/
python custom_inference.py --pdb <your.pdb> --mutation <e.g. R175H>

要求:配备 CUDA 11.8 的 NVIDIA GPU;一次性设置约需 15 分钟。

许可:MIT(无商业限制)。

引用:Dieckhaus 等人(2024)。Transfer learning to leverage larger datasets for improved prediction of protein stability changes. PNAS 121(6):e2314853121. doi:10.1073/pnas.2314853121.

托管式 SaaS(无需 GPU,但需要注册并提供 API 密钥)

多个商业平台托管了 ThermoMPNN,并提供免费套餐(具体额度各不相同,且不一定有文档说明):

  • Tamarind Bio — REST API 地址为 app.tamarind.bio/api/,使用 x-api-key 进行身份验证
  • Neurosnap — 基于额度,提供 HTTP API
  • BioLM — POST /api/v3/thermompnn/predict/,使用 Token 进行身份验证
  • ProteinIQ — 以 Web 为主
  • Levitate Bio — REST API

这些都是商业 SaaS——“免费套餐”通常意味着“试用几次后就要付费”。它们不像 DynaMut2 那样提供纯学术用途的免费接口,因此 TU 默认使用 DynaMut2。

ThermoMPNN 在哪些情况下确实优于 DynaMut2

对于 LoF 机制分类(本技能的使用场景),驱动综合判断的是 ddG > +1 与 ddG ≈ 0 之间的二元区别。对于明确的情况,这两个模型都能正确给出这一信号。ThermoMPNN 相较于 DynaMut2 的优势:

  • 在阈值附近能更准确地预测 ΔΔG(例如,可靠地区分 +0.5 和 +1.2)
  • 支持双突变(ThermoMPNN-D)
  • 支持插入/缺失变体(ThermoMPNN-I)

如果你的工作依赖上述任何一项,请改用 ThermoMPNN。否则,对于本技能中的 LoF 机制判断,DynaMut2 已足够。

评论

支持 Markdown