今年五月份的时候,谷歌DeepMind团队研发的Alphafold3横空出世,想必大家的朋友圈都有被Alphafold3相关的文章刷屏,如同超级赛亚人宇宙,Alphafold的每一次进化都给整个学术界造成无以复加的震撼,战斗力呈指数级增长。 相较于作为纯蛋白质结构预测工具的Alphafold2,Alphafold3不仅可以在预测蛋白质结构的任务上有着更高的精度,在预测生物分子相互作用的任务上也可以达到前所未有的原子级别的精度。
事实上Alphafold2作为一个蛋白质三维结构预测的工具,在预测大部分单链蛋白质时,已经可以达到原子级别的精度,在大部分情况下可以达到和湿实验相当的效果。要知道蛋白质作为生命的基础物质有着非常复杂的结构,而蛋白质的结构对于蛋白质功能的研究,药物的开发和疾病的诊断都有至关重要的作用。目前已测序的蛋白质已经达到10亿级别,但仅有约10万个蛋白质的结构通过实验方法得到了解析(那10亿个得解析到猴年马月去啊),因此Alphafold2的出现,无疑给蛋白质结构建模这个令全人类绝望的艰巨任务带来了曙光,所以网传Alphafold2是“诺奖级别”的突破也就不为过了。
有人会说Alphafold2已经这样了,那Alphafold3不得起飞啊?没错,Alphafold3在结构上做了很大的改进,相较于Alphafold2,Alphafold3在长序列结构的预测上速度更快,并且除了蛋白质,Alphafold3还可以预测RNA、DNA和一般分子与蛋白质结合的复合物,所以Alphafold3还能预测一些分子间的相互作用,是不是很厉害?想必大家都很好奇Alphafold3在Alphafold2上做了什么样的改变?这篇文章带大家在宏观上了解一下Alphafold3和Alphafold2在结构上的变化。由于Alphafold3代码还没有公布,本文暂时从论文出发,做宏观上的分析。
好了,废话少说,先让我们来看看Alphafold2的整体结构:
Alphafold2
输入就是氨基酸序列啦,Alphafold2用23个字符作为标记,其中20个表示常见的氨基酸,1个用来表示未知氨基酸,1个用来标注间隙,1个作为掩码多序列比对(MSA)的标记,然后输出就是每一个氨基酸分子在三维空间的坐标啦。作为一个end-to-end结构,Alphafold2主要分为三个部分:特征抽取,特征交互及编码,将编码好的特征解码成三维空间的坐标。
- 特征抽取:我们可以看到特征抽取部分有四个箭头。第一个箭头表示把氨基酸序列输入神经网络抽取特征,因为氨基酸序列并不能被程序识别,因此要将其抽取成计算机程序可以识别的数字。第二个箭头表示MSA(Multiple Sequence Alignment),可以理解为字符串匹配,匹配来自于不同生物的蛋白质序列,当然序列可能不完全一致,但是会有一定的相似性。目前普遍认为,生物在发展进化的过程中,基因会产生变异,但是重要的基因和蛋白质会保留下来,因为它们足够重要,重要到影响生物是否可以生存,就算产生一些变异,比如个别氨基酸的变化,也不影响其结构和功能。所以这一步用来匹配不同生物中具有同源性的蛋白质序列,从消融实验的结果来看,这一步非常重要;我们知道,蛋白质之所以会形成结构,与氨基酸之间的相互关系有关,因此第三个箭头pairing显示地表示了各个氨基酸对的关系,如果一个序列有n个氨基酸,那么就会产生一个n*n的矩阵;第四个箭头,将一个氨基酸序列放入结构数据库中搜索,由于结构数据库中已经有很多已知结构的蛋白质,因此可以得到一些氨基酸之间的关系,于是就产生了氨基酸之间关系的templates。在此就得到了两大类特征(序列的特征和氨基酸之间关系的特征)。
- 特征交互及编码:Evoformer是一个transformer的魔改,首先最原始的transformer处理的是一维序列,而Evoformer的两类输入都是二维矩阵(s表示MSA序列的数量加1,这个1是query序列本身,r表示query氨基酸序列的长度,c表示每一个特征元素的长度。忽视掉特征元素本身的长度,就是二维矩阵了)。除此之外,通常transformer输入的是一个序列,而这里的输入则是两个不同纬度的二维矩阵。Evoformer一个块的结构如下图所示:
可以看到对于两个不同的二维矩阵,依次在行方向和列方向计算了多头自注意力机制,最关键的是,计算MSA representation时引入了pair presentation的信息,在计算pair presentation时引入了MSA representation的信息,这就使得两类数据产生了交互,相互学到了对方的信息。值得注意的是,在计算pair representation时,除了行和列的交互,Evoformer还引入了三角形注意力机制,该机制的伪代码可以在Alphafold2文章里的补充材料中找到,它与前面的行方向和列方向的注意力实现非常相似,不同的是,三角形注意力的输入不再是序列的表示,而是氨基酸对的表示了,这进一步加强了模型对于氨基酸不同的先后顺序对于结构影响的学习。
- 结构预测:我们知道蛋白质是由多个氨基酸串在一起并折叠组成的,因此只需要知道各个氨基酸之间的相对位置,就可以重构出蛋白质的结构。解码器结构如下:
注意此时我们已经不需要那些MSA的同源序列了(有用的信息已经融入了single representation)。通过IPA module(详情见文章补充材料的算法22)将Pair representation中的关系信息融入single representatin中。然后再过一次transition用于修正backbone。这里的backbone就是氨基酸的位置信息,此处的位置不是一次预测出来的,我们可以看到这里有8个block,位置信息是经过每一个block一点点修正的。这里每个block共享参数,与RNN的思路在某些程度上有异曲同工之妙。同时,通过IPA module输出的Single representation直接预测氨基酸支链分子的角度。
有趣的是,Alphafold2通过自蒸馏的模型进行数据增强,同时在第二步和第三步之间有一个循环机制,循环第二步和第三步的过程。消融实验证实这个循环机制可以显著提升模型的性能。
那么Alphafold3有哪些不一样的地方呢?Alphafold3的整体架构如下:
Alphafold3
Alphafold3可以说时下最流行的技术都用上了:transformer+diffusion model。我们可以看到Alphafold3整体也可以看作是三块,几乎每一块都有变化(废话!),让我们来看一下每一块上面的变化。
输入模块
我们在前面Alphafold2的图可以看到,Alphafold2输入的是两个矩阵,一个query序列+MSA矩阵,一个记录query序列中氨基酸分子关系的矩阵。所以这里最小的单位就是分子,后续产生的representation也是基于分子的。而Alphafold3是可以预测蛋白质和其他分子组成的复合结构的,比如和多肽,核酸,小分子等。因此Alphafold3的输入就变得复杂多了。我们知道Alphafold2只能输入常见的氨基酸,非常见的氨基酸都统一用一个字符表示。而Alphafold3可以用原子的方式来表示非常见氨基酸以及修饰氨基酸(Modified Amino Acid)。同样对于核酸也是,对于常见的核苷酸有统一的标识,对于修饰核苷酸(Modified Nucleotide)使用原子来表示。因此,Alphafold3中既有分子级的token,也有原子级的token,所以Alphafold3无疑会吸收比Alphafold2更多的信息。除此之外,Alphafold3还引入了rdkit生成conformer,而conformer generation提供一些局部的原子间关系的先验知识。怎么样,是不是看到输入就已经有点头大了?Alphafold3的结构确实很复杂,本文暂时只概括一些宏观上的区别,细节可以等Alphafold3开源后再深入挖掘~
表征阶段
除了引入更多的分子信息外,相较于Alphafold2,Apphafold3减少了MSA相关的运算。我们可以看到在Alphafold3中MSA module从Pairformer中分离了出来,并且只有4个block,这相较于Alphafold2中的Evoformer的48个block节约了很多的计算时间。下图是Pairformer的具体架构:
这一块和Alphafold2中的Evoformer pair representation部分是相似的,不同的是这里的pair representation在进入Pairformer前已经在Template module和MSA module中融合了一些已知结构和MSA的信息,所以在Pairformer中只有single representation (query序列的表征)和pair presentation,因此相较于Evoformer(single representation+MSA repensentation+pair representation ),Pairformer节省了很多计算时间并且还吸收了更多的信息。
Inference阶段
至于最后一块,Alphafold3采用了和之前完全不一样的结构,使用diffusion model来预测三维坐标,大致流程下图:
简单来说,这个diffusion model以Pairformer输出的表征作为condition来生成蛋白质的三维结构。这个diffusion实现的细节比较复杂,在这个图中并没有显示这方面的细节,具体细节在Alphafold3的Supplementary材料中19到23页以伪代码的方式呈现,感兴趣的朋友可以仔细看看。如前文中提到的,Alphafold3中既有分子级的token,又有原子级的token(常见氨基酸和核苷酸分子的token,以及修饰氨基酸和修饰核苷酸的原子的token,比如一个常见氨基酸分子是由1个token来表示的,而某个修饰氨基酸由100个原子组成,那么这个修饰氨基酸由100个token表示;核苷酸同理),token相互关系的表征,原子相互关系的表征,它们都作为diffusion model的condition来指导三维坐标的生成,整个过程可以概括为将token表征信息融入原子表征,再将融入token信息后的原子信息融入token,又将最新的token信息融入原子表征,最后为每个原子更新坐标,实现过程有非常多的细节,感兴趣的同学可以仔细看看Alphafold3的补充文件。
两代Alphafold比较
Alphafold2 | Alphafold3 | |
蛋白质结构预测 | ✓ | ✓ |
蛋白质与配体结合预测 | ✗ | ✓ |
非标准氨基酸表征 | ✗ | ✓ |
核苷酸表征 | ✗ | ✓ |
蛋白质RNA复合物预测 | ✗ | ✓ |
共价键修饰预测 | ✗ | ✓ |
蛋白质复合物预测 | ✗ | ✓ |
原子级别表征 | ✗ | ✓ |
引入构象信息 | ✗ | ✓ |
关注我!不错过任何AIMShare学术资讯!!
【注意:转载请联系本公众号获得授权。】如果您对我们的内容有任何疑问需要咨询或想要联系作者,可以备注“AIMS”联系课代表。也欢迎大家投稿!
目前已有1000+人关注加入我们