【论文速读】End-to-End Differentiable Learning of Protein Structure

首先放出本文的Hightlights: 蛋白质三级结构预测一般分为两种方法,一种是基于模板的预测方法(Template-Based Modeling, TBM),另一种是从头测序方法(Free Modeling, FM)。TBM方法目前已经能达到比较好的预测精度,但并不是所有蛋白都有同源模板,当模板蛋白和目标蛋白的相似性低于某个阈值时,TBM方法的性能就会比较差。而传统的FM方法,需要过多的人工特征,使得整个流程非常复杂。 作者在一次报告中,将传统的蛋白质结构预测算法(上图)比作10年前的图像识别算法(下图),虽然10年前的图像识别算法也能达到比较好的性能,但需要很多人工设计的特征,比如SIFT特征等,不够简洁漂亮。随着深度学习的兴起,现在图像识别不再需要人工设计特征,只要搭建好神经网络,输入原始图片即可完成识别和分类,性能比之前的人工方法还要好。所以,作者也希望能提出一个简洁、纯深度学习的模型来预测蛋白质的三级结构。 本文的模型(Recurrent Geometric Networks, RGN)从宏观上来说就如博客开篇的图片所示,非常的简洁漂亮,输入是蛋白质的一维序列,经过神经网络,输出是每个氨基酸残基的三个扭转角,然后再通过三维重构,得到蛋白质的笛卡尔坐标。 更具体来说,RGN包括三个部分,分别是模型预测、三维重构和误差反向传播,下面分别介绍这三个部分。 模型预测是上图的左下角部分,即输入是蛋白质序列,输出是每个氨基酸残基的三个扭转角。因为每个氨基酸对应三个扭转角输出,每个氨基酸和其上下文的氨基酸有关联,所以使用双向LSTM最合适不过了。Bi-LSTM没什么好讲的,关键讲讲其模型的输入和输出。输入部分,作者把每个氨基酸编码成一个41维的向量,如上图所示,其中包括20维氨基酸的one-hot向量(因为只有20种氨基酸)、20维PSSM位置向量和1维具体的位置信息。其中的PSSM位置向量可以理解为这个位置上的不同氨基酸的概率分布,由于有20种氨基酸,所以PSSM向量维度也是20。网上没有找到氨基酸的PSSM向量示例,找到一个DNA的,如下图,每个位置上,字母越大表示出现该核苷酸的概率越大,换成氨基酸是类似的道理。所以整个网络的输入,除了PSSM矩阵,没有任何人工设计的特征,已经很优雅了。 https://davetang.org/muse/2013/10/01/position-weight-matrix/ Bi-LSTM的输出是三个扭转角,但并不是三个实数这么简单。作者首先把整个拉氏图平面聚类,比如聚类成m=60个点,然后就把输出离散化成60类的分类问题。分类输出采用Softmax归一化,这样就会得到60类的概率分布,如RGN网络图最右边的子图所示。60类的概率分布再通过加权平均的方式得到最终的三个扭转角的实数值。我很好奇为什么需要经过一个离散再加权平均的方法,Bi-LSTM直接回归输出三个扭转角的实数不是更省事吗? 预测得到三个扭转角之后,进入RGN的第二个阶段,就是三维重构,在RGN网络图的左上角。三维重构说起来也简单,就是根据每个氨基酸残基的三个扭转角,重构出蛋白质的三维结构。由于常规的蛋白质三维结构坐标系是笛卡尔坐标系(直角坐标系),所以需要把扭转角坐标转换为笛卡尔坐标,以便于求解误差。这个部分作者没有细说,因为是另一篇论文:Parallelized Natural Extension Reference Frame: Parallelized Conversion from Internal to Cartesian Coordinates。 最后就是怎样求解误差以及误差反向传播了。这个也比较有意思,想想看,对于一条长为L的蛋白质序列,给定预测的三维结构和真实的三维结构,怎样计算它们之间的误差。不能直接对应坐标相减,因为有可能两个坐标系的坐标原点不一样。作者的方法是这样的:对于预测结构,求每两个氨基酸的距离差,就是\(\tilde{d}_{j,k}\);对于真实结构,也做类似的操作。这样做的好处是抹掉了坐标原点的影响,用两点之间的相对距离来表示三维结构。然后,对真实的\(\tilde{d}_{j,k}^{(exp)}\)和预测的\(\tilde{d}_{j,k}^{(pred)}\)再求二范数\(||D||_2\),最后除以长度进行归一化,就得到了误差dRMSD。 上述dRMSD误差相比于之前领域内常用的TMscore,好处就是可微分,可自动求导,可梯度下降了;另外,如上所述,dRMSD不要求预测结构和真实结构进行对齐;但是有一点是dRMSD对size敏感,而且不能识别镜面对称这种错误结构,比如左手和右手的结构是镜面对称的,如果真实结构是左手,但模型预测成了右手,dRMSD是检测不到这种错误的。 模型介绍完毕,训练和测试数据集来自CASP竞赛。作者把每一届CASP比赛的数据集作为测试集,从CASP7~CASP12;每一届比赛之前公布的所有PDB数据集(seq, structure)作为对应测试集的训练集。其中,CASP11分出一部分作为验证集,用来优化网络超参数。 测试结果如Table 1所示,可以看到,在没有模板的FM类别中,本文的RGN预测误差是最小的;在有模板的TBM类别中,RGN的性能几乎垫底,当然这里参与评测的都是当届比赛中Top-5的模型,所以RGN和这5个模型比是垫底,但差距是很小的。 另外,作者提到,在TBM类别的数据集中,CASP的参赛模型比较依赖模板的质量。具体来说,对于真实的结构,如果模板结构和真实结构误差很小(y轴),则模型的预测结构和真实结构的误差也很小(x轴),这两个变量成一定的线性相关关系(第一行)。而对于本文的RGN,则没有这种相关关系,说明RGN一视同仁,不会受模板质量的影响,因为RGN是纯深度学习的模型,根本就没有用到模板。 在预测速度上,RGN虽然需要训练几周甚至上月的时间,但预测速度是毫秒级别的,是评测的几个模型中最快的。快速的RGN能使一些新的应用成为可能,比如药物发现、蛋白质设计等。 最后,总结一下本文的主要工作、创新点和局限性: 三个特点: torsional angles,局部信息 geometric units ,全局信息 dRMSD,局部+全局 创新点: 简洁,Model replaces structure prediction pipelines with one mathematical function 另辟蹊径,纯deeplearning,不依赖structural templates、co-evolutionary information、energy model等,本文预测融合了本文方法和领域知识的新模型有望解决蛋白质结构预测问题 局限性: 依赖PSSM矩阵 本文作者来自哈佛医学院系统药理学实验室,文章只有作者一个人,很了不起了。哈佛医学院的另一个教授评价作者:“AlQuraishi 研究的特点在于,一名埋头在哈佛医学院和波士顿生物医学社区丰富研究生态系统中的研究人员,居然能够在计算机科学最热门的领域里抗衡谷歌等巨头。——Peter Sorger”,太棒了,我也想做这样的研究。 ...

August 30, 2019 · 1 min

“蛋白质结构预测”问题描述

相信很多学CS的同学之前都没听说过“蛋白质结构预测”这个问题,直到2018年12月初,一则劲爆消息瞬间引爆了CSer的朋友圈,那就是Google Deepmind团队开发的AlphaFold一举拿下当年的CASP比赛冠军,而且远远甩开了第二名。我当时就转载过类似的公众号文章,大家可以阅读并想象当时朋友圈的欢呼声:阿尔法狗再下一城 | 蛋白结构预测AlphaFold大胜传统人类模型。 当时,很多同学也转载过类似的文章,但其实很少有人真正明白“蛋白质结构预测”这个问题是什么,它的难度有多大,CASP是个什么比赛,以及AlphaFold的内部原理是什么。当然,对于这一连串的问题,我当时也是懵逼的。不过自己好歹也是个跟蛋白质有关的PhD,如此热点事件,自然是要关注的。不过之后一直没时间,直到今年相关顶级文章再次爆出,我就借着准备文献讲评的机会了解了相关的知识,在这里跟大家分享一下。 https://upload.wikimedia.org/wikipedia/commons/a/a9/Protein_folding.png 蛋白质结构分为四级,分别是一级结构、二级结构、三级结构和四级结构,下面分别描述。 一级结构 蛋白质的一级结构可以理解为一条线性的字符串,比如MSFIKTFSGKHFYYDKINKDDIVINDIAVSLSNICR。其基本组成单元是一个个的氨基酸,即一个个的字母。氨基酸有单字母表示和三字母表示,为了简洁,本文使用单字母表示,下图的例子是三字母表示。常见的氨基酸只有20种,所以一级结构的字符串通常只包含20种字母,不包含的6种字母是BJOUXZ。 http://oregonstate.edu/instruct/bb450/450material/schedule450s17e.html 本文大部分蛋白质基础知识都来源于此 20种氨基酸的结构符合一个通式,如下图所示,中间的碳原子称为Cα碳原子,表示它处在α位;左边连了一个氨基-NH2,称为N端;右边连了一个羧基-COOH,称为C端。20种不同氨基酸的差别就在于Cα上连接的侧链基团R,具体的差别网上一搜就能查到。 https://upload.wikimedia.org/wikipedia/commons/c/ce/AminoAcidball.svg 20种氨基酸连接的方式为脱水缩合,即一个氨基酸的羧基-COOH和另一个氨基酸的氨基-NH2反应,丢掉一个H2O,形成一个肽键-CO-NH-,如下图所示。丢掉了羧基和氨基的氨基酸被称为氨基酸残基,这个名词很形象,氨基酸缺胳膊少腿,所以变成了“残”基。 二级结构 二级结构就是在一级结构的字符串的基础上,肽链怎样进行盘旋、折叠等变换,形成一种局部的三维结构,这种局部的三维结构通常由氢键支撑。常见的二级结构有α螺旋和β折叠,如下图所示。其中α螺旋的每个残基的-NH的H和临近的第4个残基的-CO的O形成氢键,由此支撑α螺旋的结构稳定性,如下图的箭头所指虚线。β折叠则是两条肽链,平行排列,对应残基的-NH的H和-CO的O形成氢键,由此形成两股β折叠的结构,多股β折叠形成类似手风琴的样子。β折叠分为平行和反平行排列,我们前面介绍到肽段分为N端和C端,如果形成β折叠的两股链都是从N到C(或从C到N),则称为平行排列,否则是反平行排列。每股β折叠都有一个大箭头表示其方向。 细分的话,蛋白质的二级结构总共有8种,包括转角、无规则卷曲等。目前常采用DSSP的分类方法,有些文献会把8种结构粗分为α螺旋、β折叠和转角这三种结构。 由上图可知,蛋白质的二级结构极大的决定了其三级结构(下面介绍),所以有很多工作是研究怎样准确预测蛋白质的二级结构的,即预测每个氨基酸残基处于哪一种二级结构中。形式化表示就是,对于一个蛋白质一级结构字符串\(A_1A_2A_3A_4A_5…\),输出\(a_1a_2a_3a_4a_5…\),其中\(a_i\)∈{α螺旋,β折叠,转角}。所以,蛋白质的二级结构是一个端到端的问题,很像机器翻译,目前很多文章都会用深度学习NLP的方法来预测蛋白质的二级结构。 三级结构 简单理解,三级结构就是把多个二级结构拼接到一起,折叠成一个完整的蛋白质三维结构,如下图所示。维持蛋白质三级结构的力比较多样,除了氢键之外,还有二硫键、金属键等。 四级结构 简单理解,四级结构就是多个三级结构分子组合成一个复合物,就是四级结构。 https://en.wikipedia.org/wiki/Protein_quaternary_structure 对于CSer来说,由于四级结构仅仅是多个三级结构组合到一起,我们常说的蛋白质三维结构预测问题,通常是指预测蛋白质的三级结构。问题是,构成蛋白质链的原子非常多,我们怎样形式化描述一条蛋白质的三维结构呢?这还要从最原始的一级结构说起。 蛋白质结构预测问题 前面提到,两个氨基酸通过脱水缩合的方式形成肽键从而连接到一起形成一级结构(本文图四),肽键虽然是单键,但它具有类似双键的特点,即难以旋转(比如羧基中的-C=O键就是双键,无法旋转)。所以,由肽键及周围的6个原子形成了一个固定的肽键平面,这6个原子分别是-C-CO-NH-C-,如下图所示,箭头所指的红色键就是肽键,它周围画出了一个平面,就是肽键平面。 肽键平面的存在极大的简化了蛋白质结构,可以认为这6个原子的相对位置是固定的了!另一方面,跟这个平面相连的左右两个C原子的两个键是单键,所以他们可以旋转,旋转的角度称为扭转角ϕ和ψ,为了更直观的感受肽链的肽键平面和两个扭转角,可以看下面的动画:K0045879-Rotation_around_amide_bonds_in_protein.mp4(来自https://www.sciencephoto.com/media/639617/view) 事实上,扭转角ϕ和ψ并不是在360°范围内随机均匀分布的,1963年就有科学家统计过扭转角ϕ和ψ的分布,他们发现稳定的蛋白质结构的ϕ和ψ通常只分布在一小部分区域,如下图的拉氏图所示,这些区域正好对应了常见的α螺旋和β折叠的结构。 最后,我们还需要介绍一个角度,那就是ω。前面提到,虽然肽键具有双键的特点,难以旋转,但它在少数情况下还是可以旋转的。假设通常情况下,肽键的角度定义为ω=0°,如下图所示,红色的键即为肽键,这种结构的好处是它能让形成肽键的两个残基的侧链R(图中黑色基团)离得尽量的远,这样能保持比较稳定的结构。如果肽键旋转为ω=180°,变为下图的样子,则两个侧链R很靠近,就产生位阻效应,就不稳定,所以这种情况比较少见。但不管怎么说,肽键的扭转角ω也是一个变量因素。 综上所述,对于一条肽链,如果知道每个残基的三个扭转角ϕ、ψ和ω,则可以重构出肽链的主干部分的三维结构,这就像将极坐标转换为直角坐标一样容易。需要提醒的是,本文提到的蛋白质三维结构预测问题,对蛋白质的结构进行了简化,包括:1. 仅预测蛋白质或肽链的主干结构,不考虑侧链R的结构;2. 假设肽链主干中每个键的长度是固定的;3. 不考虑键的角度,比如对于上图的肽键,仅考虑肽键绕肽键轴本身的旋转,不考虑肽键绕着某一端原子的旋转,比如固定左边的蓝色小球,肽键和右边的红色小球旋转出平面了。 下图的肽键平面,详细的标识出了各个相对固定的值。 Figure 8-1 from Fundamentals of Biochemistry 所以,对于CSer来说,蛋白质的三维结构预测问题,就可以看成一个端到端的学习问题,输入是一个字符串,输出是每个字符(残基)对应的三个扭转角ϕ、ψ和ω,问题看起来非常的简洁漂亮。而且,这个问题和NLP中的序列标注、机器翻译等问题很像,所以很多NLP的技术可以用来预测蛋白质的三维结构。下图的插画就是最近发表在Cell Sytems上的一篇用LSTM预测蛋白质三维结构的文章,我会在下一篇博客中和大家分享这篇文章。 https://www.sciencedirect.com/science/article/pii/S2405471219300766?via%3Dihub 有关“蛋白质结构预测”本身的最后一个问题是,为什么能仅仅通过一级结构的序列信息,预测得到其三级结构呢?也就是说蛋白质结构预测这个问题是否可解,如果蛋白质的三级结构还由其他因素决定,那么即使Deeplearning玩出花了,在生物上也是不可行的。所以,每遇到一个新问题,都要自问一下,这个问题从原理上是否可解。对于“蛋白质结构预测”这个问题,最开始也有人进行了类似的自问,得到的答案是可行的: 1965年,安芬森(Anfinsen)基于还原变性的牛胰RNase在不需其他任何物质帮助下,仅通过去除变性剂和还原剂就使其恢复天然结构的实验结果,提出了“多肽链的氨基酸序列包含了形成其热力学上稳定的天然构象所必需的全部信息”的“自组装学说”,随后这个学说又得到一些补充。这些学说表明:氨基酸序列确定其空间构象,从而为蛋白质结构预测提供了可行性。 http://chinaxiv.org/user/download.htm?id=6478 CASP比赛 提到蛋白质三级结构预测,不得不提的是CASP这个比赛。CASP的全称是The Critical Assessment of protein Structure Prediction (CASP),即蛋白质结构预测的关键评估,被誉为蛋白质结构预测的奥林匹克竞赛。CASP从1994年开始举办,每两年一届,最近的一届是2018年的CASP13。 每一届CASP比赛,都会提供大约100条未知结构的蛋白质序列,让所有参赛者进行结构预测,比赛结束之后,主办方会通过生化方法测定这些蛋白质的三维结构,然后和参赛者预测的结果进行比对,然后给出预测得分。提供的蛋白质序列分为两类:一类序列和PDB数据库中已有结构的序列有相似性,由此可以基于模板预测,准确度比较高,这类算法称为Template-Based Modeling;另一类序列和PDB库已知结构的序列相似度很低,可以认为是全新的蛋白质,因为无法利用已有模板信息,需要进行从头测序(De novo或ab initio或Free Modeling),目前的准确率比较低。参赛选手也分为两组,一组是servers only,即仅允许算法参赛,给定3天的时间;另一组是human and servers,即允许人和算法合作,共同预测蛋白质结构,给定3周的时间。 CASP同时提供多种比赛项目,比如常规的结构预测(Regular targets)、数据辅助预测(Data-Assisted targets)和蛋白质接触面预测(Contact predictions)等,其中数据辅助预测中提供了核磁数据(NMR)、交联数据(XLMS)等,对的,交联数据就是我目前研究的pLink处理的数据。 ...

May 25, 2019 · 1 min