用途:SolubleMPNN 并非独立软件包,而是 ProteinMPNN 架构在可溶性 PDB 子集上重训练得到的模型,用于对给定骨架做逆折叠设计,使输出序列分布远离全 PDB 模型常出现的表面疏水残基。当目标是异源宿主中的可溶产量时使用它;若更看重天然序列回收率,则用 proteinmpnn,因为可溶先验会牺牲几个点的回收率换取表面偏好。
主要能力与获取:代码与权重为 MIT 许可,见 github.com/dauparas/ProteinMPNN 的 soluble_model_weights,也通过 github.com/dauparas/LigandMPNN 暴露。模型小到可在 CPU 上运行,单骨架少量序列只需数秒;批量任务用 GPU 更快。仓库在任务内克隆,无 PyPI 发行版,检查点随仓库提供。
使用方式: pip install torch numpy git clone --depth 1 https://github.com/dauparas/ProteinMPNN.git proteinmpnn cd proteinmpnn python protein_mpnn_run.py --pdb_path backbone.pdb --pdb_path_chains "A" --out_folder out --num_seq_per_target 16 --sampling_temp "0.1" --use_soluble_model 运行器使用仓库相对导入,因此 cd 步骤必需,从别处用绝对路径调用会报 ModuleNotFoundError。若还需带线程的设计序列 PDB,LigandMPNN 运行器接受 --model_type soluble_mpnn,但除 torch 外还需 ProDy。参数面与 proteinmpnn 相同,包括字符串型温度和以 PDB 主干名索引的固定位置 JSONL。仓库仅提供 v_48_010 与 v_48_020 的可溶权重,指定 --model_name v_48_002 --use_soluble_model 会因缺少检查点报错,应保持 --model_name 默认值。
输出与限制:输出为 out/seqs/<stem>.fa,每个头部含 score= 与 seq_recovery=。相对原生结构的回收率会比原版低几个点,这是先验在起作用而非缺陷。可溶权重只改变分布,不强制疏水性上限;若某表面斑块反复疏水,可能该斑块在结构上承重。可叠加 --omit_AAs "CW" 或逐位置偏置,但需用 boltz 或 esmfold2 验证设计仍能折叠。训练集是“可结晶的结构”,不等同于“在你的宿主中可溶表达”,表达产量为瓶颈时,建议先用正交的序列预测器对输出排序,把 MPNN 偏置视为扩大漏斗而非替代筛选。后续可用 boltz 或 esmfold2 折叠确认骨架回收,再进入表达筛选。