ProteinMPNN 是一种基于图神经网络的蛋白质序列设计工具,可根据给定的蛋白质骨架结构生成优化的氨基酸序列。它通过捕捉蛋白质的空间信息,实现快速、高效的序列预测,广泛应用于蛋白质工程、稳定性优化和结合位点设计等领域。与传统方法相比,ProteinMPNN 更高效,能生成多样性和精准度兼备的序列,为实验验证和进一步优化提供了可靠支持。
如何运行 ProteinMPNN
克隆 GitHub 仓库和安装依赖:
克隆仓库并安装必要的 Python 环境:
git clone https://github.com/dauparas/ProteinMPNN.git
cd ProteinMPNN
pip install torch numpy
确保 Python 版本 >= 3.0,安装 PyTorch 和 NumPy 库。
模型权重:
全蛋白骨架模型(例如,
v_48_002.pt
、v_48_010.pt
等)用于通用的蛋白质设计。仅CA原子模型(例如,
ca_model_weights/v_48_002.pt
)用于只使用CA原子的蛋白质设计。如果使用这些模型,需要启用--ca_only
标志。
辅助脚本:
helper_scripts 目录下包含了许多辅助脚本,用于解析PDB文件、指定要设计的链、固定某些残基、增加氨基酸偏好、绑定残基等操作。
代码结构说明
protein_mpnn_run.py:主脚本,用于初始化并运行 ProteinMPNN 模型。
protein_mpnn_utils.py:包含一些实用的函数,辅助主脚本。
examples/:包含了一些简单的代码示例,帮助用户理解如何使用模型。
inputs/:示例所用的输入 PDB 文件。
outputs/:示例运行后的输出文件。
colab_notebooks/:Google Colab 示例。
training/:重新训练模型所需的代码和数据。
输入参数说明
在运行 protein_mpnn_run.py
时,可以使用多个输入参数来配置模型。以下是一些常见的参数说明:
--ca_only
:启用时,模型仅使用 CA 原子进行设计。--path_to_model_weights
:指定模型权重文件所在的文件夹路径。--model_name
:选择使用的模型名称,如v_48_002
、v_48_010
等。--use_soluble_model
:使用专门训练用于溶解蛋白质的模型。--seed
:设置随机种子。--save_score
:是否保存模型的评分,1
为保存。--path_to_fasta
:提供输入序列的 FASTA 文件路径。--num_seq_per_target
:每个目标生成的序列数。
运行示例
在 examples/ 目录下提供了一些 Bash 脚本示例,帮助用户快速运行模型:
submit_example_1.sh
:简单的单体蛋白质设计示例。submit_example_2.sh
:多链蛋白质设计示例。submit_example_3.sh
:直接从 PDB 文件路径设计蛋白质。submit_example_4.sh
:固定某些残基位置的设计。submit_example_5.sh
:绑定某些残基位置的设计。
输出示例
运行 ProteinMPNN 后,输出结果包含设计序列的评分、模型使用的参数等信息。输出的示例如下:
3HTN, score=1.1705, global_score=1.2045, fixed_chains=['B'], designed_chains=['A', 'C'], model_name=v_48_020, git_hash=015ff820b9b5741ead6ba6795258f35a9c15e94b, seed=37
NMYSYKKIGNKYIVSINNHTEIVKALNAFCKEKGILSGSINGIGAIGELTLRFFNPKTKAYDDKTFREQMEISNLTGNISSMNEQVYLHLHITVGRSDYSALAGHLLSAIQNGAGEFVVEDYSERISRTYNPDLGLNIYDFER
...
输出内容说明:
score:设计序列的评分,表示序列符合目标结构的程度(负对数概率)。
global_score:所有残基的评分,包含了固定残基的评分。
fixed_chains:没有被设计的链。
designed_chains:被设计的链。
model_name:使用的模型名称,如
v_48_020
。git_hash:使用的 GitHub 版本的哈希值。
T=0.1:使用的采样温度。
sample:生成的样本序列编号。