SuperAPI AI 工具集

proteinmpnn

通用与其它

查看项目

更新于 10-15 23:32

技能介绍

用途:ProteinMPNN 是 binder 流程中默认的逆折叠步骤,仅依据主链几何结构生成氨基酸序列,适合蛋白质—蛋白质设计界面;当界面涉及配体、核酸或金属时则不适用,此时可改用 ligandmpnn(CLI 近似)或 solublempnn(可溶结构权重)。代码与权重为 MIT 许可(github.com/dauparas/ProteinMPNN)。模型较小,可在 CPU 上运行,少量序列只需数秒;批量任务(数百个主链或较大 --num_seq_per_target)建议用 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"

注意:--sampling_temp 按空格分隔解析,多值扫描需加引号("0.1 0.2 0.3"),逗号不会分割;--pdb_path_chains 同样在单个引号参数内以空格分隔("A B"),逗号会被当作链 ID 的一部分。

输出:设计结果写入 out/seqs/<pdb_stem>.fa,首条记录为输入序列,各设计头部含 score=(平均负对数似然,越低越自信)、global_score= 和 seq_recovery=。ProteinMPNN 只输出序列,不会把序列回贴到主链;若需要设计序列的 PDB,可用 ligandmpnn runner 自动写入 backbones/,并以 --model_type protein_mpnn 使用相同权重。

固定位置:--fixed_positions_jsonl 每行一个 JSON 对象,外层以 PDB 文件名为键,再按链给出 1 起始的残基编号列表,例如 {"backbone": {"A": [10, 11, 12], "B": []}}。若直接传入内层 {"A": [...]},会被静默视为无匹配并重新设计所有位置。可用 helper_scripts/make_fixed_positions_dict.py 生成正确格式;--chain_id_jsonl 与 --tied_positions_jsonl 同样遵循外层文件名规则。

检查点选择:v_48_002(噪声 0.02 Å)恢复率最高,适合接近天然的重设计;v_48_020(默认,0.20 Å)适合 de novo 主链,可容忍 RFdiffusion 的不完美;v_48_030(0.30 Å)适合非常粗糙的主链,恢复率最低;--use_soluble_model 切换到可溶训练权重。

常见错误:KeyError: 'A' 表示链字母不在 PDB 中,可用 grep '^ATOM' file.pdb | cut -c22 | sort -u 查看;*_jsonl 标志出现 JSONDecodeError 表示需要文件路径而非内联 JSON;尽管指定了 --fixed_positions_jsonl 仍重设计所有位置,通常是缺少外层 PDB 文件名键;相对导入报 ModuleNotFoundError 表示工作目录不对,需先 cd 进克隆的仓库。后续可用 boltz、chai1 或 esmfold2 将设计与靶标复合物折叠,并按 ipTM 过滤。