SuperAPI AI 工具集

ligandmpnn

编程与开发

查看项目

更新于 10-15 10:04

技能介绍

用途

LigandMPNN 是一个配体感知的蛋白质序列设计工具,用于在存在小分子、金属离子、辅因子或 DNA/RNA 等配体的条件下设计蛋白质序列。它特别适用于酶活性位点设计、金属结合位点设计等需要精确考虑配体环境的场景。当结合位点中没有配体、仅涉及蛋白质-蛋白质结合或从头支架设计时,资料建议改用 ProteinMPNN;若优先考虑溶解度或表达量,可考虑 SolubleMPNN。

主要能力

  • 配体感知设计:根据 PDB 文件中的 HETATM 记录识别配体,并在序列设计中纳入配体上下文。
  • 支持的配体类型包括:小分子(HETATM)、金属(Zn、Fe、Mg、Ca 等)、辅因子(NAD、FAD、ATP)、DNA/RNA。
  • 可指定模型类型,如 ligand_mpnn、soluble_mpnn 等。
  • 支持通过温度参数控制采样随机性,通过批次参数控制生成序列数量。
  • 可选择是否使用配体侧链上下文(--ligand_mpnn_use_side_chain_context)。
  • 输出包含 FASTA 序列文件以及带有设计序列的 PDB 文件,并附带评分信息。

使用方式

前置要求

要求 最低 推荐
Python 3.8+ 3.10
CUDA 11.0+ 11.7+
GPU 显存 8GB 16GB (T4)
内存 8GB 16GB

方式一:Modal(推荐)

cd biomodals
# modal_ligandmpnn.py takes --input-pdb; LigandMPNN run.py args go in --params-str
modal run modal_ligandmpnn.py \
  --input-pdb protein_ligand.pdb \
  --params-str "--model_type ligand_mpnn --number_of_batches 16 --temperature 0.1"

默认 GPU 为 A10G,默认超时为 900 秒。首次使用需参考 Getting started 设置 Modal 和 biomodals。

方式二:本地安装

git clone https://github.com/dauparas/LigandMPNN.git
cd LigandMPNN

python run.py \
  --model_type ligand_mpnn \
  --pdb_path protein_ligand.pdb \
  --out_folder output/ \
  --number_of_batches 16 \
  --temperature 0.1

关键参数(LigandMPNN run.py)

参数 默认值 说明
--pdb_path 必填 含配体的 PDB
--model_type protein_mpnn ligand_mpnn、soluble_mpnn 等
--temperature 0.1 采样温度
--number_of_batches 1 批次数(序列数 = batch_size × batches)
--batch_size 1 每批序列数
--ligand_mpnn_use_side_chain_context 0 是否使用配体侧链上下文

配体指定

配体必须以 HETATM 记录形式存在于 PDB 文件中,例如:

ATOM    ...protein atoms...
HETATM  1  C1  LIG A 999      x.xxx  y.yyy  z.zzz  1.00  0.00           C

输出格式

output/
├── seqs/
│   └── protein.fa          # FASTA sequences
└── protein_pdb/
    └── protein_0001.pdb    # PDBs with designed sequence

输出示例

$ python run.py --pdb_path enzyme_substrate.pdb --out_folder output/ --num_seq_per_target 8
Loading LigandMPNN model weights...
Processing enzyme_substrate.pdb
Found ligand: LIG (12 atoms)
Generated 8 sequences in 3.1 seconds

output/seqs/enzyme_substrate.fa:
>enzyme_substrate_0001, score=1.45, global_score=1.38
MKTAYIAKQRQISFVKSHFSRQLE...
>enzyme_substrate_0002, score=1.52, global_score=1.41
MKTAYIAKQRQISFVKSQFSRQLD...

理想输出特征:评分在 1.0-2.0 之间(越低越自信);配体被检测并纳入上下文;活性位点残基被保留或优化。

适用场景

  • 围绕小分子设计序列
  • 酶活性位点设计
  • 金属结合位点设计
  • 辅因子结合位点设计
  • DNA/RNA 相关设计

限制与注意事项

  • 若结合位点中没有配体,或进行蛋白质-蛋白质结合剂设计、从头支架设计,应改用 ProteinMPNN。
  • 若优先考虑溶解度或表达量,可考虑 SolubleMPNN。
  • 配体未被识别时,需检查 HETATM 格式并确认配体残基名称。
  • 结合残基效果不佳时,可增加活性位点周围的采样。
  • 接触缺失时,需检查 PDB 中的配体坐标。

错误处理

错误 原因 修复
RuntimeError: CUDA out of memory 蛋白质过长或批次过大 减小 batch_size
KeyError: 'LIG' PDB 中未找到配体 检查 HETATM 记录
ValueError: no ligand atoms 配体为空 确认 PDB 中配体含有原子

验证

grep -c "^>" output/seqs/*.fa  # Should match backbone_count × num_seq_per_target

典型性能

规模 时间 (T4) 成本 (Modal) 说明
100 骨架 × 8 序列 15-20 分钟 约 $2 标准
500 骨架 × 8 序列 1-1.5 小时 约 $8 大型任务

吞吐量:T4 GPU 上约 50-100 序列/分钟。

后续步骤:结构预测验证可使用 protein-qc 进行过滤。