ProteinMPNN 是一个基于逆折叠(inverse folding)的蛋白质序列设计工具,用于为给定的蛋白质骨架结构设计氨基酸序列。
【用途】 该技能适用于以下场景:为 RFdiffusion 生成的骨架设计序列;对已有蛋白质进行序列重设计。根据决策指引,当已有骨架结构且结合位点仅涉及蛋白质(无小分子、配体、金属或辅因子)时,可使用 ProteinMPNN;若涉及小分子或配体,建议使用 LigandMPNN;若优先考虑溶解度或表达,可考虑 SolubleMPNN;若优先考虑速度,则 ProteinMPNN 适用。
【主要能力】
- 为单个 PDB 骨架设计序列,可指定要设计的链(--pdb_path_chains)。
- 控制每个结构生成的序列数量(--num_seq_per_target,范围 1-1000)。
- 通过采样温度(--sampling_temp)调节序列多样性,温度需以字符串形式传入。
- 支持固定位置设计(--fixed_positions_jsonl),可用于界面重设计等场景。
- 支持多链设计、链绑定(--tied_positions_jsonl)以及多状态设计(--pdb_path_multi)。
- 支持氨基酸偏好设置(--bias_AA_jsonl)、全局或逐位置排除特定氨基酸(--omit_AAs、--omit_AA_jsonl)。
- 输出 FASTA 序列文件及包含设计序列的 PDB 文件。
【使用方式】 前置要求:Python 3.8+(推荐 3.10)、CUDA 11.0+(推荐 11.7)、GPU 显存最低 8GB(推荐 16GB T4)、内存最低 8GB(推荐 16GB)。
方式一:本地安装(推荐)
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"
GPU 使用 T4(16GB)即可,速度约 50-100 条序列/分钟。
方式二:Modal(通过 LigandMPNN 封装)
cd biomodals
modal run modal_ligandmpnn.py \
--input-pdb backbone.pdb \
--params-str "--model_type protein_mpnn --number_of_batches 16 --temperature 0.1"
Modal 默认使用 A10G,默认超时 900 秒。注意 LigandMPNN 包含 ProteinMPNN 功能,通过 --model_type protein_mpnn 选择。
【核心参数】 --pdb_path(必填,单个 PDB 输入路径)、--pdb_path_chains(默认 all,要设计的链,逗号分隔)、--out_folder(必填,输出目录)、--num_seq_per_target(默认 1,范围 1-1000)、--sampling_temp(默认 "0.1",范围 "0.0001-1.0",必须为字符串)、--seed(默认 0)、--batch_size(默认 1,范围 1-32)。
温度参考:0.1 低多样性高恢复率(生产用);0.2 中等多样性(默认);0.3 较高多样性(探索用);0.5+ 多样性很高但质量较低。
【常见错误】
- 温度参数必须为带引号的字符串,如 --sampling_temp "0.1",不能写成浮点数 0.1。
- 固定位置 JSONL 格式应为 {"A": [1, 2, 3, 10, 11], "B": [5, 6]},键需加引号,值需为列表,不能有尾随逗号。
- 链选择 --pdb_path_chains A,B 逗号后不能有空格,也不建议加引号。
【输出格式】 输出目录包含 seqs/ 下的 FASTA 序列文件,以及 backbone_pdb/ 下带设计序列的 PDB 文件。FASTA 头部格式示例:>backbone_0001, score=1.234, global_score=1.234, seq_recovery=0.85。
【常见工作流】
- Binder 序列设计:指定 --pdb_path_chains B 仅设计 binder 链。
- 界面重设计:使用 --fixed_positions_jsonl 固定核心,设计界面。
- 多状态设计:使用 --pdb_path_multi 指定多个构象。
【输出质量参考】 Score 1.0-2.0(越低越自信);seq recovery 对 de novo 为 0.3-0.6,对重设计为 0.7-0.9;温度大于 0.1 时序列应具有多样性。
【性能参考】 100 个骨架 × 8 条序列约 15-20 分钟(T4),Modal 成本约 $2;500 个骨架 × 8 条序列约 1-1.5 小时,约 $8;1000 个骨架 × 16 条序列约 3-4 小时,约 $18。T4 GPU 吞吐约 50-100 条序列/分钟。
【验证与排错】 可用 grep -c "^>" output/seqs/*.fa 验证序列数量是否等于骨架数 × 每结构序列数。序列多样性低时提高采样温度至 0.2-0.3;恢复率差时降低温度至 0.1;显存不足时减小 batch_size;出现不需要的半胱氨酸时使用 --omit_AAs "C"。常见错误包括 CUDA 显存不足、链 ID 不存在、JSONL 格式无效、空链或残基列表等。
【变体对比】 ProteinMPNN 为通用原始模型;SolubleMPNN 针对表达,在可溶性蛋白上训练;LigandMPNN 针对小分子,具备配体感知上下文。
【限制】 该工具需要已有骨架结构,无骨架时应先使用 RFdiffusion。涉及小分子、配体、金属或辅因子时建议使用 LigandMPNN。具体收费、价格等商业信息暂未提供。