ProteinMPNN(官网内容解读)

2024-12-03 10:35   新加坡  

ProteinMPNN 是一种基于图神经网络的蛋白质序列设计工具,可根据给定的蛋白质骨架结构生成优化的氨基酸序列。它通过捕捉蛋白质的空间信息,实现快速、高效的序列预测,广泛应用于蛋白质工程、稳定性优化和结合位点设计等领域。与传统方法相比,ProteinMPNN 更高效,能生成多样性和精准度兼备的序列,为实验验证和进一步优化提供了可靠支持。

如何运行 ProteinMPNN

  1. 克隆 GitHub 仓库和安装依赖

    • 克隆仓库并安装必要的 Python 环境:

git clone https://github.com/dauparas/ProteinMPNN.gitcd ProteinMPNNpip install torch numpy
    • 确保 Python 版本 >= 3.0,安装 PyTorch 和 NumPy 库。

  1. 模型权重

    • 全蛋白骨架模型(例如,v_48_002.ptv_48_010.pt等)用于通用的蛋白质设计。

    • 仅CA原子模型(例如,ca_model_weights/v_48_002.pt)用于只使用CA原子的蛋白质设计。如果使用这些模型,需要启用 --ca_only 标志。

  1. 辅助脚本

    • 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_002v_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=37NMYSYKKIGNKYIVSINNHTEIVKALNAFCKEKGILSGSINGIGAIGELTLRFFNPKTKAYDDKTFREQMEISNLTGNISSMNEQVYLHLHITVGRSDYSALAGHLLSAIQNGAGEFVVEDYSERISRTYNPDLGLNIYDFER...

输出内容说明:

  • score:设计序列的评分,表示序列符合目标结构的程度(负对数概率)。

  • global_score:所有残基的评分,包含了固定残基的评分。

  • fixed_chains:没有被设计的链。

  • designed_chains:被设计的链。

  • model_name:使用的模型名称,如 v_48_020

  • git_hash:使用的 GitHub 版本的哈希值。

  • T=0.1:使用的采样温度。

  • sample:生成的样本序列编号。


BioTender
拥抱问题,积极探索