name: ligandmpnn description: > 使用LigandMPNN进行配体感知的蛋白质序列设计。 在以下情况使用此技能:(1) 围绕小分子设计序列, (2) 酶活性位点设计, (3) 配体结合口袋优化, (4) 金属配位位点设计, (5) 辅因子结合蛋白设计。
对于标准蛋白质设计,请使用proteinmpnn。 对于溶解度优化,请使用solublempnn。 license: MIT category: design-tools tags: [sequence-design, inverse-folding, ligand-aware] biomodals_script: modal_ligandmpnn.py
LigandMPNN 配体感知设计
先决条件
| 要求 | 最低 | 推荐 |
|---|---|---|
| Python | 3.8+ | 3.10 |
| CUDA | 11.0+ | 11.7+ |
| GPU 显存 | 8GB | 16GB (T4) |
| 内存 | 8GB | 16GB |
如何运行
第一次使用? 请参阅 安装指南 来设置 Modal 和 biomodals。
选项 1: Modal (推荐)
cd biomodals
modal run modal_ligandmpnn.py \
--pdb-path protein_ligand.pdb \
--num-seq-per-target 16 \
--sampling-temp 0.1
GPU: T4 (16GB) | 超时: 默认 600 秒
选项 2: 本地安装
git clone https://github.com/dauparas/LigandMPNN.git
cd LigandMPNN
python run.py \
--pdb_path protein_ligand.pdb \
--out_folder output/ \
--num_seq_per_target 16
关键参数
| 参数 | 默认值 | 范围 | 描述 |
|---|---|---|---|
--pdb_path |
必需 | 路径 | 包含配体的 PDB 文件 |
--num_seq_per_target |
1 | 1-1000 | 每个结构生成的序列数 |
--sampling_temp |
“0.1” | “0.0001-1.0” | 采样温度(字符串!) |
--ligand_mpnn_use_side_chain_context |
true | 布尔值 | 使用配体上下文 |
配体规范
在 PDB 文件中
配体必须以 HETATM 记录形式存在:
ATOM ...蛋白质原子...
HETATM 1 C1 LIG A 999 x.xxx y.yyy z.zzz 1.00 0.00 C
支持的配体类型
- 小分子 (HETATM)
- 金属离子 (Zn, Fe, Mg, Ca 等)
- 辅因子 (NAD, FAD, ATP)
- DNA/RNA
输出格式
output/
├── seqs/
│ └── protein.fa # FASTA 序列文件
└── protein_pdb/
└── protein_0001.pdb # 包含设计序列的 PDB 文件
示例输出
成功运行
$ python run.py --pdb_path enzyme_substrate.pdb --out_folder output/ --num_seq_per_target 8
正在加载 LigandMPNN 模型权重...
正在处理 enzyme_substrate.pdb
发现配体:LIG (12 个原子)
在 3.1 秒内生成了 8 条序列
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 (越低表示置信度越高)
- 检测到配体并将其纳入上下文
- 活性位点残基被保留或优化
决策树
我应该使用 LigandMPNN 吗?
│
├─ 你的结合位点有什么?
│ ├─ 小分子 / 配体 → LigandMPNN ✓
│ ├─ 金属离子 (Zn, Fe 等) → LigandMPNN ✓
│ ├─ 辅因子 (NAD, FAD, ATP) → LigandMPNN ✓
│ ├─ DNA/RNA → LigandMPNN ✓
│ └─ 无 / 仅蛋白质 → 使用 ProteinMPNN
│
├─ 进行哪种类型的设计?
│ ├─ 酶活性位点 → LigandMPNN ✓
│ ├─ 金属结合位点 → LigandMPNN ✓
│ ├─ 蛋白质-蛋白质结合剂 → 使用 ProteinMPNN
│ └─ 从头设计支架 → 使用 ProteinMPNN
│
└─ 优先考虑什么?
├─ 溶解度/表达 → 考虑 SolubleMPNN
└─ 配体上下文准确性 → LigandMPNN ✓
典型性能
| 任务规模 | 时间 (T4) | 成本 (Modal) | 备注 |
|---|---|---|---|
| 100 个骨架 × 8 条序列 | 15-20 分钟 | ~$2 | 标准 |
| 500 个骨架 × 8 条序列 | 1-1.5 小时 | ~$8 | 大型任务 |
吞吐量:在 T4 GPU 上约 50-100 条序列/分钟。
验证
grep -c "^>" output/seqs/*.fa # 应匹配 backbone_count × num_seq_per_target
故障排除
配体未被识别:检查 HETATM 格式,验证配体残基名称 结合残基设计不佳:增加活性位点周围的采样 缺少接触:验证 PDB 中的配体坐标
错误解释
| 错误 | 原因 | 解决方法 |
|---|---|---|
RuntimeError: CUDA out of memory |
蛋白质过长或批次过大 | 减小 batch_size |
KeyError: 'LIG' |
在 PDB 中未找到配体 | 检查 HETATM 记录 |
ValueError: no ligand atoms |
配体为空 | 验证 PDB 中配体有原子 |
下一步:用于验证的结构预测 → 使用 protein-qc 进行筛选。