专业网站建设平台代理商,公众号文案里怎么做网站链接,云浮住房和城乡建设部官方网站,自己做个网站需要什么文 | 炼丹学徒编 | 小轶前天#xff0c;AlphaFold2开源#xff0c;相信大家被大大小小的公众号刷屏了。谷歌Deepmind团队此前使用基于Transformer的模型#xff0c;在CASP14比赛上#xff0c;刷新蛋白质三维结构预测的新高度#xff0c;而详细论文#xff0c;代码#x… 文 | 炼丹学徒编 | 小轶前天AlphaFold2开源相信大家被大大小小的公众号刷屏了。谷歌Deepmind团队此前使用基于Transformer的模型在CASP14比赛上刷新蛋白质三维结构预测的新高度而详细论文代码久久没有开源大家翘首以待到现在终于等来了它。为什么大家都是魔改Transformer刷SOTA别人万众瞩目Nature抢着发被生化医药圈子里的科研人员认为是诺奖级别的工作然而我们也是用Transformer天天刷SOTA却发个会议都感觉无比艰难呢鉴于大家都是搞NLP的不懂生物对于别人热火朝天的AlphaFold2讨论感觉自己格格不入为了解决这个问题卖萌屋从NLP研究员的角度看一看这个被Transformer轰动一时的蛋白质三维结构预测为何如此有影响力通过浅显但完整的知识介绍带大家无痛入门生物大分子。因为炼丹学徒本人也是做NLP的具体的生物学知识的细节可能存在错误希望大家如果读到可以指出。希望抛砖引玉通过阅读本文可以花费很短的阅读时间建立起所需要的知识大体框架如果有进一步了解的兴趣再去进一步调研相应的部分。本篇观点文章的结构组成为蛋白质结构预测的任务介绍对人类的意义蛋白质结构预测的经典算法和近期NLP蛋白质的相关工作介绍AlphaFold2的突破之处和具体做法以及总结和展望。论文题目: Highly accurate protein structure prediction with AlphaFold开源链接:https://github.com/deepmind/alphafold论文链接:https://www.nature.com/articles/s41586-021-03819-2_reference.pdf另有论文算法附录[1]和博客[2]放在文末参考文献中Arxiv访问慢的小伙伴也可以在 【夕小瑶的卖萌屋】订阅号后台回复关键词 【0718】 下载论文PDF~蛋白质结构预测的任务介绍和所需要的基础知识蛋白质结构首先我们看一下蛋白质三维结构预测的任务定义。输入氨基酸序列预测其三维结构坐标此处三维结构坐标指的是氨基酸组成的蛋白质中每个原子的x, y, z坐标。我们是碳基生物氨基酸的中间也是一个碳原子碳原子有四个未配对的游离的点子因此可以连出去四个单键分别是羧基COOH氨基NH2一个氢原子H和自由基RR的不同决定了这个氨基酸的不同常见的可以组成生命的R只有20种因此我们做NLP的可以把它当做一个21个词的词典给他embedding其他不常见的丢进第21个词UNK。氨基酸的COOH和NH2可以脱水缩合成肽键CONH把很多的氨基酸连成一个长链称为肽链。肽链中的氨基酸由于连接时脱水缩合失去了一分子水H2O不是完整的氨基酸因此称为残基我们在读生物学论文里常见到的residue指的就是它。因为这个NH2-CH-COOH是固定结构R是不固定的而这个氨基酸的COOH要和下一个氨基酸的NH2结合成肽键连起来因此这一条连续的肽键-碳-肽键上的原子是一定会存在的这些碳、氧、氮的链称为骨架链backbone而那些不同的R被称为侧链(side chain)。氨基酸的顺序被称为氨基酸的一级结构。二级结构是折叠后规则的片段周期性的结构构象比如挨着的肽键会形成某一个角度的螺旋上升螺旋一级结构上挺远的片段通过氢键折叠在一起折叠或者松散的结构coil如果某个位置发生了90度以上的急转弯则又记录为转角。三级结构则是考虑上那些侧链里更复杂的作用关系后的完整三维坐标比如二硫键把某些位置拉近了coil结构到底松散成了什么具体形状某些作用力又使得结构更复杂地变化了。两个以上的蛋白质可以通过分子对接可以拼成更复杂的结构也称为四级结构对接的过程被称为docking是信号分子发生作用蛋白质发挥功能药物和蛋白质结合等生化反应里的重要模拟。生物学上认为低级的空间结构可以决定高级的空间结构即仅仅输入氨基酸序列一级结构是可以预测出其空间结构的。对我们做NLP的来说预测二级结构在模型上最简单就是序列标注对每个氨基酸分类在螺旋区域还是折叠等等就好比在BERT的最后一层做一个八分类。预测三维结构则复杂一些需要预测到每个氨基酸甚至是氨基酸内部原子的坐标其计算方法我们等下再谈。比如AlphaFold2论文里预测的这个蛋白质结构螺旋的部分就是螺旋比如右上部分宽箭头部分是折叠比如图片中间和左上部分松散的线是coil部分如图片的右下部分。可以看到二维结构可以一定程度上描述蛋白质的空间结构但是如果具体的描述出来其形状还是需要三维结构的坐标描述。这个坐标的原点和方位是任意的即随意旋转之后表达的仍然是相同的蛋白质。MSA如果我们读蛋白质结构预测蛋白质功能分析或者学习生物信息学会经常看到MSA这个单词我们当做一个重要的基础知识先进行介绍。MSA指的是Multiple Sequence Alignment多序列对齐指的是把同源的多个氨基酸序列进行对齐之后进行序列对比。首先我们把氨基酸序列进行对齐比如说相同的氨基酸序列片段可以直接对齐在一起化学性质非常相似的氨基酸也可以对齐一下其次是化学性质相差比较大的氨基酸就不太能对齐甚至是有的氨基酸区域会缺失和增加难以对齐。根据氨基酸的性质相似程度如上图我们对任意两个氨基酸之间的对齐进行打分如下图对于任意两个氨基酸序列可以通过补空位左右移动位置等等使得匹配的全局得分达到最高此时我们就得到了两条氨基酸序列的对齐。同样的我们可以对多条氨基酸进行对齐。现在我们拥有很多的MSA搜索工具基于一些局部匹配算法我们输入一条想要分析的氨基酸序列可以很快地在氨基酸序列库中搜到相似的氨基酸序列并进行对齐。那么我们做多序列对齐MSA有什么用呢主要目的是通过共进化分析找到保守区域和其他特征。我们假设找到的相似蛋白质是同一个祖先进化来的生物体内时常发生突变如果突变发生的位置在蛋白质的不重要区域那么很可能对蛋白质的空间结构影响不大不改变蛋白质的功能也不致病而如果突变发生在了蛋白质的靶点区域和产生作用的区域很可能导致蛋白质功能变化而影响生物的存活。因此保守区域即上图中对齐的很好的部分很可能是蛋白质发生功能最重要的区域其空间构型稳定而那些缺失了增加了或者氨基酸变化很大的区域则有可能是不重要的区域。需要指出的是我们想要得到的是同源蛋白质而氨基酸相似性搜索只能搜到相似的蛋白质但如果想要分析这些蛋白质是不是同一个祖先进化来的很困难因此我们往往使用搜索到的相似蛋白质就假设他们都是同源共进化的蛋白质来使用。实际上同源的蛋白质可能因为不同的进化方向而很不相似而非同源的蛋白质也可能趋同进化变的相似。实际用的时候相似性90%以上的氨基酸序列的MSA没什么意义因为太像了留一条就够了相似性30%以下的氨基酸序列MSA也没什么意义因为太不像了很可能不是同源的。CASPCritical Assessment of protein Structure Prediction (CASP)蛋白质结构预测技术的关键测试是自1994年以来每两年进行一次的全球范围内的蛋白质结构预测竞赛目的是更好预测和破解蛋白质三维结构。每两年一次的比赛中还未公开发表论文的刚被测出来三维结构的蛋白质被用来当做测试目标进行公平的三维结构的预测。2022年又要举办啦感兴趣的小伙伴们冲啊为啥深度学习研究蛋白质结构很重要1分析蛋白质功能。蛋白质的三维结构确定其工作方式与功能。生物的基因通过表达为蛋白质等生物分子来进行各种生命活动。研究蛋白质的功能首先就要知道它以什么样的构型与其他的配体或者蛋白发生作用。预测了蛋白质的三维结构我们可以得到其活性区间和靶点。对于给定的结合位点我们可以识别设计以及改善其配体。我们也可以进行抗原表位预测等等。特别是对于酶或者其他有催化活性的蛋白质来说他们活性中心的保守性较高而外周部分的保守性较低而我们通常的研究方法就是收集他的突变体进行每个氨基酸残基改变后对蛋白质功能的影响进行研究为了指导更好的功能研究首先要对其结构进行一定程度的预测。2制药领域的需求。新药的研制流程包括首先确定病的成因靶点即哪个蛋白质/哪个基因出了问题需要去抑制这个靶点还是去激活这个靶点。然后是针对靶点进行对应小分子药物的设计比如模拟体内的小分子再修改其功能修改已有相似药物的功能根据靶点的三维结构去设计对应结构可以结合上的小分子或者对已知可合成的小分子进行高通量筛选。之后是对这一步中所有可能的小分子进行缩小范围比如判断其毒性跨模型在体内会残留多久会不会对其他器官/蛋白质产生损害等等。再往后就进入了实验和临床从试管和小动物开始逐步到人体试验整个过程需要花费10到15年去研发一款新药花费5到10亿美元或者更多。无论是小分子药物蛋白质药物还是疫苗的设计临床前的设计都可以通过AI的辅助减少大量的时间金钱花费高效地进行靶点判断药物筛选毒性判断等等。3通过实验进行蛋白质三维结构的测定成本过高。为了测到一个蛋白质的三维结构需要耗费科学家很大的经历花费几个月甚至几年的时间进行实验测量。蛋白质的三维结果可以通过核磁共振、结晶然后X射线、冷冻电镜等。可以结晶的蛋白质只占少数尤其是膜蛋白这种难溶的蛋白质核磁共振的精度比较低分辨度和灵敏度都不足分子量三万以上的蛋白基本上无法使用核磁共振分析冷冻电镜由于其精度和覆盖范围称为生物大分子结构解析的主要方法近些年通过冷冻电镜测出来的高精度蛋白质三维结构数量增加这也使得我们通过机器学习进行蛋白质三维结构预测在数据量上成为可能。但是使用冷冻电镜的价格很昂贵所需要的技术门槛很高往往使用冷冻电镜测量出一个蛋白质的精确三维结构就意味着一篇Nature子刊甚至Nature正刊。而AlphaFold2直接把这个问题给解了精度达到了和冷冻电镜相似等于好多篇Nature摞起来这就是这篇“魔改Transformer”的分量被圈内的人认为是诺奖级别的工作。4理解生命。我们做NLP的在用各种技术去理解自然语言和应用自然语言而生命这门语言同样值得我们分析。生命的密码被记录在DNA基因中基因通过被翻译成蛋白质来表达功能。无论是DNA的序列RNA的序列还是蛋白质中氨基酸的序列都是生命的这门语言我们可以用NLP里序列分析的技术去解读生命的语言。另外举两个小例子MSA中同源的蛋白质的氨基酸有多大差异就往往代表他们从同一个祖先分离出来之后独立进化了多久我们可以分析氨基酸序列来追溯进化的历史找到那些还未被发现的共同祖先序列建模出三维结构我们进一步可以建模病毒大多病毒就是DNA/RNA外面罩一个蛋白质壳子病毒已经介于生命和非生命之间了而且计算出其生命结构和运行规律看起来已经不远了。如果再进一步如果有一天我们通过人工智能建模出了生命这事就简直太帅了。以上各个需求需要生物科学家耗费巨大的时间和精力才能往前推进一点而AlphaFold2的精准度和速度使得上面各个生物学进展都可以得到巨大的提速和辅助并且开启了AI科学家进军生物大分子和探索生命的巨幕可以预见到将来会有更多深度学习探索生命的突破性进展因为AlphaFold2证明了使用深度学习去解决如此困难的3D空间预测都是可行的。因此它的贡献度足以顶上很多篇Nature/Science被称作诺奖级别的工作也不为过。Related Work我们先简单的讲一下之前的蛋白质三维结构预测是怎么预测的。首先要知道的一点就是仅仅通过一串氨基酸序列就计算出蛋白质里每个原子的三维空间坐标实在是太难了。因此MSA检索模板等技术往往作为辅助手段使用。1同源建模法。对于给定的氨基酸序列检索相同蛋白质家族中已知结构的模板然后做MSA分析很相同的部分保留模板结构不相似的部分再根据能量方程根据物理学知识势能越低结构越稳定修改。2穿线法。已知的蛋白质结构约十万个不同结构拓扑的仅有1393个很少有找不到相同结构拓扑的。在已知序列的各个拓扑结构中使用能量方程对给定氨基酸序列选取最低最稳定的拓扑结构当模板。3从头计算法如果前两种做出来的结构都很差找不到能用的模板就可以根据蛋白质的三维结构决定于自身的氨基酸序列并且处于最低自由能状态的原则直接计算最低自由能的结构。4综合法。把给定的氨基酸序列分成一个一个的片段每个片段使用上面三种方案中最好的方案然后再拼回来。对于这些传统的计算方法由于需要在计算能量方程等内容时使用各种近似和假设来降低计算量所以虽然之前结果还能看但是Alphafold一代出来之后就被黑盒的魔法打败了。所以接下来我们看一下AlphaFold一代AlphaFold1中输入是MSA feature这个MSA里拿出来的特征是使用生物学家的传统算法得到的。神经网络的输出是氨基酸两两间的距离这个神经网络的输出很好理解因为三维结构里每个原子的坐标是可以随意旋转和平移的但是无论如何平移旋转任意两个氨基酸直接的距离是确定的。AlphaFold1的源码我读的别人pytorch写的相似的而不是原始论文的代码此段大家看个意思和大概就行不要当做完全正确的想要一步理解的读完大意之后可以自己去调研细节神经网络预测出来两两氨基酸之间的距离而我们最终需要的是氨基酸内部所有原子的距离因此需要上采样到backbone主链原子间的距离。然后拿到backbone原子距离之后再喂给能量方程的程序包去补足侧链上原子的距离然后反复迭代优化势能函数去计算出每个原子的坐标。我们可以看到AlphaFold1中并不是end to end去训练的喂进来的输入是传统算法得到的MSA特征值预测的输出是两两残基间的距离而非最终的三维坐标运算过程中大量使用生物学家提供的计算程序包。即使如此在CASP13中仍然领先其他模型很多开启了AI进军生物大分子界的序幕。后来CASP14里的AlphaFold2则采用的完整的end to end训练使用了Transformer比赛结束后Deep Mind给出了如下的概念图但是一直没用公布细节可以看到AlphaFold2里使用目标氨基酸序列、MSA、模板作为输入直接end to end的预测了目标的三维结构使用了Transformer进行预训练。在等待AlphaFold2公布论文细节的过程中若干使用Transformer在氨基酸序列上进行预训练的工作被开展比如ESMMSA Transformer等等他们在氨基酸序列上进行BERT、XL-NET、BART等等预训练任务然后进行二级、三级结构预测、蛋白质性能预测等等任务的finetune。他们往往报了无监督的二级结构预测结果方法是在预训练后最后一层的attention分布上加一个线性层使用几个蛋白质去训练这个线性层然后预测本质上是few shot。其中比较亮眼的一个工作是MSA Transformer效果突出在AlphaFold2开源之前被认为是AlphaFold2里的MSA部分的一个很好猜测拟合如图在MSA Transformer里MSA被作为输入每层的注意力层被拆分为了横向attention和纵向attention。其中横向attention就是每个氨基酸序列里的self-attention纵向attention是相同位置的去看其他氨基酸序列里是否被替换了氨基酸还是大家都相同。它比较神奇的一个结论是最好的下游任务结果出现在横向的attention所有的氨基酸序列共享attention分布即使用整个MSA的横向attention平均值作为每个蛋白质的attention。这就意味着MSA Transformer的结论可以被认为是单个氨基酸序列的信息表达太差了比如之前的工作还不如使用整个MSA的平均值去表达更通用的信息。然而事实真的如此吗很可能是因为之前对单个氨基酸序列的建模能力太差而已更好的结构应该是MSA得到更多的信息和特征再用我们想要的那条特定氨基酸序列进一步优化修改比如我们将要看到的AlphaFold2。同期还有其他的三维结构预测文章但是效果都比不上AlphaFold2暂不介绍。与AlphaFold2同一天放出来的另外几个工作效果很好与AlphaFold2性能相似甚至更好时间所限还来不及阅读(RoseTTAFold等)。Alphafold2算法简述根据上面介绍的基础知识和相关工作我们感叹这个工作确实难度很高也非常好奇AlphaFold2里究竟如何使用MSA信息如何又增强突出出来当前自己这条氨基酸序列的能力如何使用的模板信息又是怎样超直接end to end训练的三维位置坐标的。过去的半年里很多小伙伴等不及了甚至猜着模型结构去开源AlphaFold2的猜测代码[3]甚至获得了500多个星标。如今我们终于盼来了 真正的开源代码[4] 在写这篇文章时开源后一天的周六已经获得了超过3千的星标。先再次回忆一下之前放出来的结构图然后我们再看一下这次刚刚放出来论文里的结构图时间匆忙16页的正文62页的附录算法仍然是细节来不及看我们大体的过一过AlphaFold2算法反正也不是做这个的我们NLP的小伙伴一起学习学习思想就可以了~Alphafold2提出了一个新的结构去同时嵌入MSA和残基-残基对儿的特征没错不是每个残基一个隐状态是每个残基之间都有一个隐状态来描述他俩之间的关系我们把每对儿残基之间的隐状态叫做pairwise features新的输出表示去确保准确的端到端训练以及新的辅助loss。此外在finetune训练之前AlphaFold2首先预训练了一把在MSA上使用BERT任务遮盖住一些氨基酸再还原回来此外还使用自蒸馏自估计的loss去自监督学习先用训好的模型在只有氨基酸序列的数据上生成预测结果然后只保留高确信度的然后使用这个数据预训练在训练时把输入加上更强的drop out和mask来增大学习难度去预测完整信息时高确信度的结果。结构由两部分组成Evoformer和结构模块Structure Module。Evoformer输入MSA模板自己的氨基酸序列输出MSA信息和残基-残基对关系刚刚提到的pairwise features建模。结构模块中丢掉MSA中的其他氨基酸序列只保留目标的那一条然后再加上pairwise features去计算更新backbone frames预测所有氨基酸的方位和距离肽键的长度和角度氨基酸内部的扭转角度等。Evoformer即进化former进化魔改Transformer用来计算MSA和pairwise features。开源之前我们猜测模板是很重要的一个信息结果发现匹配到的模板信息仅仅通过一些特征提取的函数被塞进了MSA里面当成给目标氨基酸序列做更新时参考使用的数据。具体结构如下图输入MSA和pairwise features通过很多注意力层最终输出MSA和pairwise faetures我们看到具体的结构之前MSA Transformer猜测的大体不差有横向attention去往自己当前氨基酸序列的所有位置打attention有纵向的attention去看其他氨基酸序列的相同位置稳定性和突变有多少只是在横向attention时加了使用pairwise features作为后attention上的一个biasMSA经过横向和纵向的attention最后还有一个transition层其实就是两层的MLP中间塞一个relu。transition层的输出结果通过计算外积然后求平均去计算出pairwise features之后是pairwise features的更新称为三角乘法更新(Triangular multiplicative update)。其motivation是说这个矩阵描述的是任意两个残基之间的距离等关系距离关系不是自由的应该满足比如三角不等式相邻的三个边应该满足两边之和大于第三边所以这里的pairwise feature的更新使用了所谓三角乘法更新对于每个边都会接收到和他组成三角形的任意两个其他边带来的更新之后是两层三角自注意力层Triangular self-attention结构模块Structure module结构模块使用MSA中的第一条而丢弃剩余部分即只保留目标的这个氨基酸序列丢掉检索到的其他MSA称作single repr以及计算得到的pair features以及把所有残基都从坐标原点初始化然后再去计算更新的backbone frames最终预测出具体的3D原子坐标。在计算中每一层都去更新single repr和backbone frames每个残基一个backbone frame每个backbone frame记录了从局部坐标系到全局坐标系的欧几里得变换而计算得到的pair features只在更新single repr的attention层中计算成一个bias。之前的猜想都以为要从pair features上计算得到每对儿残基之间的距离没想到只是个小小的配角然后我们逐层看结构模块在算什么。首先这个backbone frames使用“黑洞初始化”这个黑洞初始化把所有的残基都放在全局坐标的坐标原点然后在后面的每一层计算推走多远。pair features只用来在第一个attention子层中计算bias辅助更新single repr他们永远不变。在Invariant Point Attention Module子层中更新single repr在Predict Relative Rotation and Translation子层中single repr被映射为具体的update frames去更新backbone frames。对于每个残基我们预测它和相邻残基之间肽键的角度和距离这个角度和距离是自由的而为了确定每个原子的坐标残基内部也有若干扭转角度的参数残基内部确定原子位置仅由这些扭转自由度确定。效果展示总结和展望本文主要介绍了蛋白质三维结构预测的背景知识和相关概念让大家感性和部分理性上理解一下AlphaFold2很厉害。如果后续有比较多的人对AlphaFold2的具体细节和技术感兴趣那么可以继续更一个详解的讲解不过我们应该大部分读者都是做NLP的了解了隔壁领域的大概意思学习其思想就可以了不是那么着急的可以等专门搞生物的人的详解文章。未来不出意料的话会有更多的研究员和计算资源被投入到生物大分子领域人工智能发展和生物、医疗、制药都会在未来的几年迎来一波技术的小爆发。萌屋作者炼丹学徒在微软搬砖的联培博士在读生擅长烹饪和摸鱼被迫掌握丰富的增肥和减肥经验。祝大家吃好喝好减肥成功。作品推荐把数据集刷穿是什么体验MetaQA已100%准确率Transformer太大了我要把它微调成RNN后台回复关键词【入群】加入卖萌屋NLP/IR/Rec与求职讨论群后台回复关键词【顶会】获取ACL、CIKM等各大顶会论文集 [1].论文算法附录https://static-content.springer.com/esm/art%3A10.1038%2Fs41586-021-03819-2/MediaObjects/41586_2021_3819_MOESM1_ESM.pdf[2].博客https://deepmind.com/blog/article/alphafold-a-solution-to-a-50-year-old-grand-challenge-in-biology[3].猜测代码: https://github.com/lucidrains/alphafold2[4].真正的开源代码: https://github.com/deepmind/alphafold