SolubleMPNN 是 LigandMPNN 封装中的一个可溶性模型类型,专门用于基于溶解度的蛋白质序列设计。它通过使用溶解度训练权重来优化蛋白质序列,以提高蛋白质的可溶性,特别适合大肠杆菌表达系统。
【主要用途】 SolubleMPNN 主要用于以下场景:
- 设计用于大肠杆菌表达的蛋白质序列
- 优化蛋白质溶解度
- 解决蛋白质表达中的聚集或低产量问题
【主要能力】
- 使用溶解度训练权重(--use_soluble_model)生成更易溶解的蛋白质序列
- 支持通过采样温度(--sampling_temp)控制序列多样性
- 支持通过每结构序列数(--num_seq_per_target)批量生成序列
- 可选择不同的训练噪声水平(--model_name,如 v_48_002、v_48_010、v_48_020)
- 与标准 ProteinMPNN 相比,可减少疏水斑块并改善电荷分布
【使用方式】 前提条件:
- Python 3.8+(推荐 3.10)
- CUDA 11.0+(推荐 11.7+)
- GPU 显存 8GB(推荐 16GB,如 T4)
- RAM 8GB(推荐 16GB)
方式一:Modal(推荐)
在 biomodals 目录下运行:
cd biomodals
modal run modal_ligandmpnn.py
--input-pdb backbone.pdb
--params-str "--model_type soluble_mpnn --number_of_batches 16 --temperature 0.1"
默认 GPU 为 A10G,默认超时为 900 秒。
方式二:本地安装 git clone https://github.com/dauparas/ProteinMPNN.git cd ProteinMPNN
python protein_mpnn_run.py
--pdb_path backbone.pdb
--out_folder output/
--num_seq_per_target 16
--sampling_temp "0.1"
--use_soluble_model
关键参数:
- --pdb_path:输入结构(必填)
- --use_soluble_model:使用溶解度训练权重(默认关闭)
- --num_seq_per_target:每个结构生成的序列数(默认 1)
- --sampling_temp:温度,字符串类型(默认 "0.1")
- --model_name:训练噪声水平,与溶解度正交(默认 v_48_020)
模型权重说明: --model_name 设置的是训练噪声水平(v_48_002 = 0.02 Å,v_48_010 = 0.10 Å,v_48_020 = 0.20 Å),并非溶解度层级。溶解度是独立的权重集,通过 --use_soluble_model 选择,可用于 v_48_010 和 v_48_020。噪声越高,序列多样性越大。
输出格式: output/ ├── seqs/backbone.fa └── backbone_pdb/backbone_0001.pdb
【适用场景】
- 表达系统为大肠杆菌时,推荐使用 SolubleMPNN
- 哺乳动物表达系统建议使用 ProteinMPNN(翻译后修饰更重要)
- 酵母表达系统两者均可
- 有聚集或低产量等表达问题历史时,推荐使用 SolubleMPNN
- 结合位点含小分子/配体时,应使用 LigandMPNN
- 仅蛋白质结合位点或无结合位点时,推荐 SolubleMPNN
【性能表现】
- 100 个骨架 × 8 条序列:在 T4 上约 15-20 分钟,Modal 成本约 $2
- 500 个骨架 × 8 条序列:在 T4 上约 1-1.5 小时,Modal 成本约 $8
- 相比标准 ProteinMPNN,溶解度评分预期提升 +15-30%
【输出质量判断】
- 评分范围 1.0-2.0(越低越自信)
- 相比标准 MPNN,疏水斑块减少
- 电荷分布改善
【验证方式】 grep -c "^>" output/seqs/*.fa # 应等于 backbone_count × num_seq_per_target
【限制与故障排除】
- 仍不溶解:确认已设置 --use_soluble_model;重新设计更多位置或添加显式疏水残基偏好
- 多样性低:将温度提高至 0.2
- 折叠效果差:使用标准 ProteinMPNN 后续优化
- CUDA 内存不足:减少 batch_size
- 缺少 v_48_020 模型权重:下载溶解度权重
后续步骤:结构预测验证可使用 protein-qc 进行过滤。