alphaFold2 | 模型框架搭建

2022-11-22 15:12:15 浏览数 (1)

  • 文章转自微信公众号:机器学习炼丹术
  • 作者:陈亦新(欢迎交流共同进步)

<<AlphaFold2专题>>

啃下alphaFold2 | 解决问题及背景(第一篇)

  • 1 算法概述
  • 2 特征抽取
    • 2.1 MSA多序列对齐特征
    • 2.2 氨基酸之间的关系
    • 2.3 结构数据库
  • 3 编码器
    • 4 解码器
    • 5 循环机制
    • 5 总结

    上一篇文章谈了一下alphafold所解决的问题,以及相关的一些背景知识。这一篇则为高潮部分,算法讲解。结合李沐老师的讲解和github上已经开源的代码(非官方)结合讲解。官方还未release alphafold2的代码似乎。

1 算法概述

整体可以分成三个部分:

  • 特征抽取(最左边)
  • Evoformer(中间),是一种对第一步特征进行编码,映射到特征空间的过程;

2 特征抽取

2.1 MSA多序列对齐特征

从上到下其实有三种特征构建的方式。最上面是从Genetic database当中搜索类似的氨基酸序列排序方式。

如图中描述的:

从目前已经检测出来的序列当中,发现,鱼类、兔子、鸡中存在一段相同长度的氨基酸序列,其中大部分的氨基酸都相同。有一些片段相同就行,类似字符串匹配的过程

这里有这样的先验知识:类似的氨基酸序列会存在这类似的空间结构。所以在数据库中检索类似的系列对精度有很大贡献。

这里MSA是Multi Sequence Alighment,多序列对齐特征。

2.2 氨基酸之间的关系

这里是有这样一个RxR的矩阵,R为输入的人体的氨基酸序列的长度。这个矩阵也就是描述序列中每一个核苷酸和其他核苷酸之间的关系。因为空间结构会卷起来,就是氨基酸之间的相互作用导致的

2.3 结构数据库

我们已经知道了很多的结构信息,我们知道部分真实的氨基酸对在空间中是什么样子的。我们在这个数据库中搜索,来获取这部分绝对正确的信息。

3 编码器

输入到Evoformer编码器的有两种类型的数据。先说一下evoformer是一个transformer类型的结构,这个肯定是一件好事。我之前就怕这个特征提取过程,是一个特别奇怪的,类似于图网络的算法。还好是transforemr这种比较常见的结构。但是常见transformer都是单输入的,这里有两个输入,那么必然是一种变种的transforemr架构。我们一会看代码中再来考虑这个transformer的结构。

输入了两个数据,分别是:

  • MSA representation:MSA representation特征是一个shape=[s,r,c]的张良,s表示相似的氨基酸序列的数量(1个是人类的氨基酸序列 s-1个数据库中匹配的氨基酸序列)。r是每一个序列的长度,大家都是一样的“字符串长度”,c是类似于图像卷积当中的channel数量,或者是transformer的token长度,是表示特征数量的概念。
  • Pair representation:这个特征是shape=[r,r,c]的张量,自然表示的就是每一个氨基酸和其他氨基酸之间的关系,这个关系是用长度为c的一个向量来描述的。

4 解码器

也很简单,经过编码器的处理后,我们只需要MSA特征的第一行,也就是目标氨基酸序列的特征,然后后结合Pair representation的特征信息,将其解码出空间中的坐标、或者是相邻氨基酸角度距离等位置信息就可以绘制3D结构图了。

5 循环机制

可以看到,这里加入循环机制,反正输入特征输出特征形状都一样,那么我加入类似RNN的循环推理的策略,也可以提高最终的空间精度。但是,这里和RNN不同的地方在于,RNN循环的时候梯度的是传播的,这里回收的时候梯度是不传播的。所以不会出现梯度大爆炸的问题。类似小样本二分类分割领域的研究,有一个非常经典的算法CAnet还是PAnet,做小样本学习的一个模型。这种循环的策略,经常会用在半监督、小样本这种相对困难的问题上,因为当存在某种东西不确定的时候,模型推理结构也不一定正确的时候,用这种迭代的方式,可能可以增加鲁棒性和样本多样性吧

5 总结

1, 目前为止构建了alphafold的模型的大框架,三个部分;2,MSA的构建是通过类似字符串匹配的方式,这个可以接受;但是氨基酸之间的关系和结构数据库两部分的特征,我没有一点的概念,这个依然是一个疑点。3.evoformer结构还没有概念,不过这个看代码和看论文补充材料可以解决。END

0 人点赞