共计 5701 个字符,预计需要花费 15 分钟才能阅读完成。
1958 年 F.H.C. 克里克提出了生物学中重要的中心法则,DNA->RNA-> 蛋白质,中心法则阐明,DNA 能够转录造成 RNA,RNA 再翻译成一个个氨基酸,最初组合造成蛋白质。
通过中心法则不难看出,如果把 DNA 比喻为进行工业生产的设计蓝图,那么蛋白质就像实现这个蓝图的工具,所以说蛋白质是所有生命流动的根底,它简直参加了所有的生物学过程,如遗传、发育、滋生等等。对蛋白质进行深刻地钻研,能让咱们从更深层次诠释生命体的形成和运作变化规律,进而全面揭示生命运行、倒退的机制,激发生物科学、药物研发、合成生物学、酶迷信等畛域的倒退。
因探索生物体内各种蛋白质的性能及其机制等是目前蛋白质钻研的次要内容,同时也是后基因组时代生命科学畛域的次要钻研热点之一。蛋白质的性能很大水平上取决于蛋白质的构造,因而如何破解蛋白质的三维构造成为了科学家钻研的重点。
AlphaFold2 的诞生
近些年来,随着人工智能技术的倒退,深度学习等相干技术也被利用在蛋白质构造预测畛域。2018 年的 CASP 13(国内权威的蛋白质构造预测比赛,每 2 年举办一次)上,谷歌 DeepMind 团队的 AlphaFold 拿下了 70 多分,战胜泛滥钻研团队,获得人工组第一,在该畛域获得了里程碑式的停顿。在 2020 年的 CASP 14 上,谷歌 DeepMind 团队的 AlphaFold2 以惊人的 92.4 分登顶第一[1],这一后果也被认为是根本解决了“困扰了生物学家 50 年”的问题,取得重大突破。92.4 分,指的是对比赛指标蛋白的预测精度 GDT_TS 分数达到 92.4,个别认为该分数超过 90 分,根本能够代替试验形式啦,这也意味着 AlphaFold2 预测的后果与试验失去的蛋白质构造基本一致。
2021 年 7 月 15 日,DeepMind 团队在国内顶级期刊《Nature》上发表论文,详细描述了 AlphaFold2 的设计思路,并提供了可供运行的基于 JAX 的模型和代码[2]。思考到 JAX 受众偏差业余的 AI 科学计算钻研人员,且飞桨社区尚没有蛋白质构造预测相干的开源我的项目,百度螺旋桨 PaddleHelix 生物计算团队,基于飞桨深度学习框架,复现了 AlphaFold2 模型,提供给宽广飞桨开发者应用,帮忙大家疾速入门蛋白质构造预测。
https://github.com/PaddlePaddle/PaddleHelix/tree/dev/apps/paddlefold
AlphaFold2 算法的
设计思路
AlphaFold2 通过独特的神经网络和训练过程设计,第一次端到端地学习蛋白质构造。整个算法框架通过协同学习蛋白质的多序列比对(MSA)和氨基酸对(pairwise)的表征,将蛋白质序列的进化信息、蛋白质构造的物理和几何束缚信息联合到深度学习网络中。咱们将从数据预处理、Evoformer 和 Structure Module 三个模块剖析 AlphaFold2 算法的设计思维。
来自:AlphaFold2 论文
数据处理
预测蛋白构造时,AlphaFold2 会利用氨基酸序列信息在蛋白质库中搜寻多序列比对(MSA)。MSA 能够反映氨基酸序列中的激进性区域(即不容易产生渐变),这些激进性区域和蛋白质的构造非亲非故,比方可能被折叠在蛋白质内层,不容易和外界产生相互作用,进而不易受影响产生渐变。在 AlphaFold2 的数据预处理中,为了缩小模型运算量,会先对 MSA 中的序列进行聚类,取每个类别核心的序列作为 main MSA 特色。除了 MSA,AlphaFold2 的另一个重要输出是氨基酸对(pairwise)的特色。作为 main MSA 的补充,Alphafold2 会随机采样非聚类核心的序列作为 extra MSA 输出一个 4 层的网络提取 pairwise 特色,而后和模版提取的 pairwise 特色相加后失去最终 pairwise 特色。main MSA 特色和 pairwise 特色通过 48 层 Evoformer 进行表征交融。
Evoformer
Evoformer 网络的设计动机是想利用 Self-Attention 机制学习蛋白质的三角几何束缚信息,同时让 MSA 表征带来的共进化信息和 pairwise 表征的构造束缚信息相互影响,使得模型能直接推理出空间信息和进化信息的分割。
来自:AlphaFold2 论文
Structure Module
Structure Module 承当着把 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 的 inference 局部,现已正式在螺旋桨 PaddleHelix 平台开源:https://github.com/PaddlePaddle/PaddleHelix/tree/dev/apps/paddlefold
感兴趣的小伙伴们能够装置应用,并基于此,优化本人的蛋白构造预测模型。
1. 装置
在 requirements.txt 中提供了通过 pip 可装置的 Python 依赖项。另外,(基于飞桨框架的 AF2 还依赖于两个只能通过 conda 装置的 工具包:openmm==7.5.1 和 pdbfixer。为了失去多序列比对 MSA,还须要装置 kalign, HH-suite 和 jackhmmer。下载数据的脚本须要 aria2c。
提供一个能够设置 conda 环境并装置所有依赖项的脚本 setup_env。运行:
sh setup_env
conda activate paddlefold # activate the conda environment
也能够在 setup_env 中更改环境名称和 CUDA 版本。
2. 用法
为了运行基于飞桨框架的 AF2,还须要蛋白序列数据库和模型参数。基于飞桨框架的 AF2 应用和 AlphaFold2 一样的模型参数。
你能够应用脚本 scripts/download_all_data.sh 来下载和设置所有数据库和模型参数。
- 运行:
scripts/download_all_data.sh <DOWNLOAD_DIR>
将下载残缺的数据库。残缺数据库的总下载大小约为 415 GB,解压后的总大小为 2.2 TB。
- 运行:
scripts/download_all_data.sh <DOWNLOAD_DIR> reduced_dbs
将下载一个缩小版本的数据库,能够用于在 reduced_ dbs 的设置下运行。缩小的数据库的总下载大小约为 190GB,解压缩后的总下载大小约为 530GB。
3. 运行基于飞桨框架的 AF2 进行推理
要应用 DeepMind 曾经训练好的参数对一个序列或多个序列进行推理,运行例如:
fasta_file="target.fasta" # path to the target protein
model_name="model_1" # the alphafold model name
DATA_DIR="data" # path to the databases
OUTPUT_DIR="paddlefold_output" # path to save the outputs
python3 run_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/bin/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
你能够应用 python3 run_paddlefold.py - h 来查找参数的形容。
保留与 AlphaFold2 雷同的输入,输入将位于 output_dir 的子文件夹中。它们包含计算的 MSAs、模型预测的蛋白构造、OpenMM 优化后的构造、模型打分排序、原始模型输入、预测元数据和模型运行计时。output_dir 目录将具备以下构造:
<target_name>/
features.pkl
ranked_{0,1,2,3,4}.pdb
ranking_debug.json
relaxed_model_{1,2,3,4,5}.pdb
result_model_{1,2,3,4,5}.pkl
timings.json
unrelaxed_model_{1,2,3,4,5}.pdb
msas/
bfd_uniclust_hits.a3m
mgnify_hits.sto
uniref90_hits.sto
每个输入文件的内容如下:
- features.pkl\
一个 pickle 文件,其中蕴含模型用于生成构造的输出个性 NumPy 数组。 - unrelaxed_model_.pdb*\
一个 PDB 格局的文本文件,其中蕴含预测的构造,与模型输入的构造齐全一样。 - relaxed_model_.pdb*\
一个 PDB 格局的文本文件,是调用 OpenMM 失去的优化结构,修复了模型预测构造中的抵触,并增加 H 原子的坐标地位。 - ranked_.pdb*\
一个 PDB 格局的文本文件,是对 OpenMM 失去的优化结构依照模型置信度的从新排序。这里应用预测的 LDDT 分数 (pLDDT)作为置信度评估。 - ranking_debug.json\
一个 JSON 格局的文本文件,蕴含用于执行模型排名的 pLDDT 值及其对应的模型名称。 - timings.json\
一个 JSON 格局的文本文件,蕴含运行 AlphaFold2 模型的每个局部所破费的工夫。 - msas/\
该目录中蕴含不同 MSA 搜寻工具的输入文件。 - result_model_.pkl* 一个 pickle 文件,其中蕴含一个由模型间接生成的各种 NumPy 数组的字典,除了构造模块的输入外,还包含辅助输入。\
最初,能够应用 pymol[3]等工具对预测构造和试验构造对齐。值得阐明的是,因为输出特色存在采样操作,基于飞桨框架复现的 AlphaFold2 和 JAX 版本的预测构造可能会有稍微差别,有时候会和试验构造更靠近,也可能差异稍大。
近期开发计划
AlphaFold2 尽管在单体蛋白上体现优异,但对复合体,预测的准确度还有待晋升。为此,DeepMind 团队上线了 AlphaFold-Multimer 模型,一款针对复合物进行从新训练的神经网络模型,心愿能动员飞桨社区开发者们的积极性,一起开发优化基于 AlphaFold-Multimer 的模型,之后也开源奉献到飞桨平台,让更宽广的生信畛域研究者们应用基于飞桨框架齐全自主可控的蛋白构造预测模型。
参考文献[1] https://predictioncenter.org/casp14/zscores_final.cgi.[2]Jumper, J.; Evans, R.; Pritzel, A.; Green, T.; Figurnov, M.; Ronneberger, O.; Tunyasuvunakool, K.; Bates, R.; Zidek, A.; Potapenko, A.; Bridgland, A.; Meyer, C.; Kohl, S. A. A.; Ballard, A. J.; Cowie, A.; Romera-Paredes, B.; Nikolov, S.; Jain, R.; Adler, J.; Back, T.; Petersen, S.; Reiman, D.; Clancy, E.; Zielinski, M.; Steinegger, M.; Pacholska, M.; Berghammer, T.; Bodenstein, S.; Silver, D.; Vinyals, O.; Senior, A. W.; Kavukcuoglu, K.; Kohli, P.; Hassabis, D., Highly accurate protein structure prediction with AlphaFold. Nature 2021, 596, 583-589.[3] https://pymol.org