196

ProteinMPNN:蛋白序列设计工具实战

ProteinMPNN 给定骨架结构设计氨基酸序列,湿实验成功率高,是蛋白设计管线的核心环节。这篇给出命令、关键参数与它在设计流程中的位置。

ProteinMPNN(Baker 实验室,Science 2022)解决蛋白设计的「逆折叠」问题:给定一个三维骨架,设计出能折叠成该形状的氨基酸序列。它最有说服力的地方不是基准分数,而是湿实验验证的成功率——相比 Rosetta 的固定骨架设计有数量级提升,且设计出的蛋白可溶性、表达量普遍更好。

部署与运行

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

python protein_mpnn_run.py \
  --pdb_path backbone.pdb \
  --pdb_path_chains "A" \
  --out_folder ./designs \
  --num_seq_per_target 32 \
  --sampling_temp "0.1" \
  --seed 37 --batch_size 8

模型很小(几 MB),CPU 也能跑,几秒钟出几十条序列。这是它易于大规模使用的重要原因。

关键参数

参数 作用 建议
--sampling_temp 采样温度 0.1 保守(高置信、多样性低);0.2~0.3 兼顾多样性
--num_seq_per_target 每骨架序列数 32~100,后续再筛
--fixed_positions_jsonl 固定某些残基 保留催化位点、结合界面关键残基
--omit_AAs 排除氨基酸 常排除 C(避免非预期二硫键)
--ca_only 仅用 Cα 骨架质量粗糙时更鲁棒
--use_soluble_model 可溶性权重 设计可溶蛋白时开启

固定关键位点几乎总是必要的:催化三联体、金属配位残基、与靶标接触的界面残基,一旦被重设计,功能就没了。

在设计流程中的位置

标准的从头设计三段式管线:

  • 1. 生成骨架:RFdiffusion(见 197《RFdiffusion》)按约束生成三维骨架;
  • 2. 设计序列:ProteinMPNN 为骨架填氨基酸;
  • 3. 验证折叠:AlphaFold2 / ESMFold 预测设计序列的结构,看是否回到目标骨架。

第 3 步的判据通常是:预测结构与设计骨架的 Cα RMSD < 2 Å,且 pLDDT > 80。这个「设计-验证」自洽循环是筛掉大部分失败设计的关键,能把湿实验的命中率显著提高。做结合物设计时,还会加看界面的 ipTM。

# 典型串联:每个骨架出 N 条序列,逐条用 ESMFold 回测
for pdb in backbones/*.pdb; do
  python protein_mpnn_run.py --pdb_path $pdb --out_folder designs/ \
    --num_seq_per_target 48 --sampling_temp "0.1"
done
# 再对 designs/seqs/*.fa 批量跑 ESMFold,按 RMSD 与 pLDDT 过滤

注意事项

  • 它不判断功能,只判断可折叠性:序列能折成目标形状 ≠ 有活性。功能需要靠约束设计(固定功能位点)和实验验证。
  • 骨架质量决定上限:垃圾骨架进,垃圾设计出。骨架本身不合理时,再好的序列设计也救不回来。
  • 温度影响明显:低温度序列更保守、更可能折叠成功但趋同;需要多样性时适当升温并加大采样量。
  • 仍需实验验证:计算自洽只是过滤,表达、可溶性、活性最终要靠湿实验说话。

上手提示

  • 它解决逆折叠(骨架 → 序列),是蛋白设计三段式的中间环节;
  • 务必用 --fixed_positions 保住催化/界面关键残基;
  • 必做 AF2/ESMFold 回测自洽性(RMSD < 2 Å、pLDDT > 80);
  • 模型极轻量,CPU 可跑,适合大规模批量设计。

延伸资源