当前位置: 首页 > 科技观察

AI+科学:基于飞桨的AlphaFold2,带你入门蛋白质结构预测

时间:2023-03-14 17:24:50 科技观察

1958年,F.H.C.克里克提出了生物学中一个重要的中心法则,DNA->RNA->蛋白质,中心法则说DNA可以转录形成RNA,然后一个一个翻译成氨基酸,最后结合形成蛋白质。透过中心法则不难看出,如果把DNA比作工业生产的设计蓝图,那么蛋白质就像是实现这个蓝图的工具,所以蛋白质是一切生命活动的基础,它参与了几乎所有的生命活动。生物过程,例如遗传、发育、繁殖等。对蛋白质的深入研究,将使我们能够在更深层次上解读生物体的组成和运作,进而全面揭示生命运行和发展的机制,促进生物科学、药物研发、合成生物学等领域的发展。、酶学等领域。由于探索生物体内各种蛋白质的功能和机制是当前蛋白质研究的主要内容,也是后基因组时代生命科学领域的主要研究热点之一。蛋白质的功能很大程度上取决于蛋白质的结构,因此如何破译蛋白质的三维结构成为科学家研究的重点。AlphaFold2的诞生近年来,随着人工智能技术的发展,深度学习等相关技术也开始应用于蛋白质结构预测领域。2018年CASP13(国际权威蛋白质结构预测大赛,每两年举办一次),谷歌DeepMind团队的AlphaFold得分超过70分,击败众多研究团队,获得人工组第一名,实现里程碑本场作风进步。在2020年的CASP14上,GoogleDeepMind团队的AlphaFold2以惊人的92.4分高居榜首[1]。突破。92.4的分数是指GDT_TS分数92.4对竞争目标蛋白的预测准确率。一般认为评分超过90分,基本可以代替实验法。这也意味着AlphaFold2的预测结果与实验得到的蛋白质结构基本一致。2021年7月15日,DeepMind团队在国际顶级期刊《Nature》上发表论文,详细描述了AlphaFold2的设计思路,并提供了基于JAX的模型和可以运行的代码[2]。考虑到JAX的受众偏向于专业的AI科学计算研究人员,而Paddle社区目前还没有蛋白质结构预测相关的开源项目,百度PaddleHelix生物计算团队基于Paddle的深度学习框架,复现了AlphaFold2模型并将其提供给公众。被Paddle开发者用来帮助大家快速上手蛋白质结构预测。https://github.com/PaddlePaddle/PaddleHelix/tree/dev/apps/paddlefoldAlphaFold2算法设计思路AlphaFold2首次通过独特的神经网络和训练过程设计端到端地学习蛋白质结构。整个算法框架通过蛋白质多序列比对(MSA)和氨基酸成对(pairwise)表示的协同学习,将蛋白质序列的进化信息、蛋白质结构的物理和几何约束信息结合到深度学习网络中。我们将从数据预处理、Evoformer和StructureModule这三个模块来分析AlphaFold2算法的设计思路。来自:AlphaFold2论文数据处理在预测蛋白质结构时,AlphaFold2会利用氨基酸序列信息在蛋白质库中搜索多序列比对(MSA)。MSA可以反映氨基酸序列中的保守区域(即不易产生突变)。这些保守区域与蛋白质的结构密切相关。例如,它们可能折叠在蛋白质的内层,不易与外界相互作用,因此不易受到影响。突变。在AlphaFold2的数据预处理中,为了减少模型计算量,首先对MSA中的序列进行聚类,将每个类别中心的序列作为MSA的主要特征。除了MSA之外,AlphaFold2的另一个重要输入是氨基酸成对的特征。作为主MSA的补充,Alphafold2会随机采样非聚类中心的序列作为额外的MSA输入到4层网络中提取pairwise特征,然后将模板中提取的pairwise特征相加得到最终的pairwise特征。主要的MSA特征和成对特征通过48层Evoformer融合。EvoformerEvoformer网络设计动机是利用Self-Attention机制学习蛋白质的三角几何约束信息,同时让MSA表示带来的协同进化信息和pairwise表示的结构约束信息相互作用,使得模型可以直接推断出空间信息和演化信息的联系。来自:AlphaFold2论文StructureModuleStructureModule承担的任务是将Evoformer得到的表征解码成蛋白质中各个重原子(C,N,O,S)的坐标。为了简化从神经网络预测到原子坐标的转换,AlphaFold2结合了蛋白质中20种氨基酸的结构特性,将重原子分成由不同二面角确定的组。氨基酸的面角和已知的键长和角度信息用于解码原子坐标。与直接预测坐标(x,y,z)相比,这种结构编码方式大大减少了神经网络的预测空间,使得端到端的结构学习成为可能。赖氨酸旋转角编码方法举例:蓝色平面(C,Cα,Cβ)确定后,根据预测的蓝紫色平面二面角χ1和已知的C-C键长,得到Cγ-Cβ-N键角可以确定Cγ的空间坐标,重复类似的步骤就可以得到Cδ、Cε、N等重原子的坐标。使用基于飞桨框架的AlphaFold2(AF2)再现了完整的推理部分基于飞桨框架的AlphaFold2,现已在螺旋桨PaddleHelix平台正式开源:https://github.com/PaddlePaddle/PaddleHelix/tree/dev/apps/paddlefold,感兴趣的朋友可以安装使用,以及在此基础上,优化自己的蛋白质结构预测模型。1.安装可通过pip安装的Python依赖项在requirements.txt中提供。另外,(基于飞桨框架的AF2还依赖了两个只能通过conda安装的工具包:openmm==7.5.1和pdbfixer。为了得到多序列比对MSA,还需要安装kalign,HH-suite和jackhmmer。下载数据的脚本需要aria2c。提供脚本setup_env,可以设置conda环境,安装所有依赖。运行:shsetup_envcondaactivatepaddlefold#激活conda环境你也可以更改环境名称和CUDAversioninsetup_env.2.Usagefor基于飞桨框架运行AF2同样需要蛋白质序列数据库和模型参数,基于飞桨框架的AF2使用的模型参数与AlphaFold2相同。您可以使用脚本scripts/download_all_data.sh下载并设置所有数据库和模型参数。运行:scripts/download_all_data.sh将下载完整的数据库。完整数据库的总下载大小约为415GB,解压后的总大小为2.2TB。运行:scripts/download_all_data.shreduced_dbs将下载可用于在reduced_dbs设置下运行的数据库的缩减版本。压缩后的数据库总下载大小约为190GB,未压缩的总下载大小约为530GB。3、运行基于飞桨框架的AF2进行推理要使用DeepMind训练好的参数来推理一个序列或多个序列,运行例如:fasta_file="target.fasta"#目标蛋白的路径model_name="model_1"#thealphafold模型名称DATA_DIR="data"#数据库路径OUTPUT_DIR="paddlefold_output"#保存输出的路径python3run_paddlefold.py\--fasta_paths=${fasta_file}\--data_dir=${DATA_DIR}\--small_bfd_database_path=${DATA_DIR}/small_bfd/bfd-first_non_consensus_sequences.fasta\--uniref90_database_path=${DATA_DIR}/uniref90/uniref90.fasta\--mgnify_database_path=${DATA_DIR}/mgnify/mgy_clusters_2018_12.fa\--pdb70_database_path=${DATA_DIR}pdb70/pdb70\--template_mmcif_dir=${DATA_DIR}/pdb_mmcif/mmcif_files\--obsolete_pdbs_path=${DATA_DIR}/pdb_mmcif/obsolete.dat\--max_template_date=2020-05-14\--model_names=${model_name}\--output_dir=${OUTPUT_DIR}\--preset='reduced_dbs'\--jackhmmer_binary_path/opt/conda/envs/paddlefold/b在/jackhmmer\--hhblits_binary_path/opt/conda/envs/paddlefold/bin/hhblits\--hhsearch_binary_path/opt/conda/envs/paddlefold/bin/hhsearch\--kalign_binary_path/opt/conda/envs/paddlefold/bin/kalign\--random_seed=0你可以使用python3run_paddlefold.py-h查找参数的描述保持与AlphaFold2相同的输出,输出将在output_dir的子文件夹中。它们包括计算的MSA、模型预测的蛋白质结构、OpenMM优化的结构、模型评分排名、原始模型输出、预测元数据和模型运行时间。output_dir目录将具有以下结构:/features.pklranked_{0,1,2,3,4}.pdbranking_debug.jsonrelaxed_model_{1,2,3,4,5}.pdbresult_model_{1,2,3,4,5}.pkltimings.jsonunrelaxed_model_{1,2,3,4,5}.pdbmsas/bfd_uniclust_hits.a3mmgnify_hits.stouniref90_hits.sto各输出文件内容如下:features.pkl包含模型用于生成结构的输入特征NumPy数组的pickle文件。unrelaxed_model_*.pdbPDB格式的文本文件,其中包含与模型输出完全相同的预测结构。relaxed_model_*.pdb是一个PDB格式的文本文件,是调用OpenMM,修复模型预测结构中的冲突,加入H原子坐标位置得到的优化结构。ranked_*.pdb是一个PDB格式的文本文件,是OpenMM根据模型置信度对得到的优化结构进行重新排序。此处使用预测的LDDT分数(pLDDT)作为置信度估计。ranking_debug.jsonJSON格式的文本文件,包含用于执行模型排名的pLDDT值及其对应的模型名称。timings.json一个JSON格式的文本文件,其中包含运行AlphaFold2模型的每个部分所花费的时间。msas/该目录包含不同MSA搜索工具的输出文件。result_model_*.pkl包含模型直接生成的各种NumPy数组字典的pickle文件,除了结构模块的输出外,还包括辅助输出。最后,可以使用pymol[3]等工具来对齐预测结构和实验结构。值得注意的是,由于输入特征的采样操作,基于飞桨框架的AlphaFold2和JAX版本的预测结构可能会略有不同,有时更接近实验结构,或略有不同。虽然最近的开发计划AlphaFold2在单体蛋白上表现优异,但是对于复合物的预测精度还有待提高。为此,DeepMind团队推出了用于复合材料再训练的神经网络模型AlphaFold-Multimer模型,希望调动飞桨社区开发者的积极性,共同开发和优化基于AlphaFold-Multimer的模型,并开放稍后获取它。贡献于FlyingPaddle平台,让生物信息学领域的研究人员可以使用基于FlyingPaddle框架的完全自主可控的蛋白质结构预测模型。本文来自PaddlePaddle