用途:LigandMPNN 在 ProteinMPNN 的图结构上加入非蛋白原子(小分子、核酸、金属),使网络能看到结合配体或辅因子,因此当设计表面包含配体时,它是合适的逆折叠工具;普通 ProteinMPNN 会忽略这些原子。其 run.py 也便于运行其他 MPNN 家族,因为它会把设计序列回贴到输入结构并输出 PDB。
主要能力:支持多种模型类型——ligand_mpnn(骨架+配体/核酸/金属,用于结合口袋或活性位点设计)、protein_mpnn(仅骨架,用于蛋白-蛋白)、soluble_mpnn(可溶性训练)、*membrane_mpnn(跨膜设计)。每种模型类型有对应的 --checkpoint<type> 参数。输出包括 seqs/<stem>.fa(头部含 overall_confidence 与 ligand_confidence)、backbones/<stem>_{1..N}.pdb(设计序列回贴到输入坐标),加 --pack_side_chains 1 时在 packed/ 输出全原子模型。
使用方式:安装 pip install torch numpy biopython ProDy ml_collections dm-tree;克隆仓库后运行 sed 补丁处理 numpy 别名,再 bash get_model_params.sh ./model_params 获取权重,然后 python run.py --model_type ligand_mpnn --checkpoint_ligand_mpnn ./model_params/ligandmpnn_v_32_010_25.pt --pdb_path complex.pdb --out_folder out --batch_size 8 --number_of_batches 4 --temperature 0.1 --fixed_residues "A45 A46 A47 A48"。残基选择为空格分隔的 {chain}{resnum} 标记,放在一个引号字符串内;--bias_AA_per_residue 与 --omit_AA_per_residue 接受同格式键的 JSON 文件路径;--chains_to_design 用逗号分隔。
适用场景与限制:模型较小,可在 CPU 上运行,少量设计通常几秒完成;批量任务用 GPU 更好。注意:--ligand_mpnn_use_atom_context 0 会保留配体感知权重但在推理时屏蔽配体原子,可用于消融,但不等于 protein_mpnn。若输入 PDB 的 HETATM 被剥离或 --parse_these_chains_only 未包含配体链,模型不会警告,会像 protein_mpnn 一样运行;若 FASTA 头部 ligand_confidence 缺失或全为零,说明模型未看到配体。常见错误:缺少 dm-tree 需 pip install dm-tree;numpy 无 int 属性需打补丁或固定 numpy<1.24;ProDy 在 py3.11 上需 C 编译器,Modal 环境需 apt_install("build-essential") 并设置 CC=gcc CXX=g++;模型参数缺失需运行 get_model_params.sh。