用途
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 进行过滤。