今天给大家介绍的是麻省理工大学计算机科学和人工智能实验室在NeuIPS 2019会议上发表的一篇文章。在文中,作者提出了一种基于图结构的蛋白质序列生成模型,通过聚焦三维空间上相邻的蛋白质区域,在基于神经网络的生成模型的蛋白质序列复杂度有了显著改善,并且比最先进的Rosetta程序生成序列更准确和高效。
1
背景
计算蛋白质设计的一个中心目标是自动创造具有明确结构和功能特性的蛋白质分子。本文中提供了一个自上而下的蛋白质设计框架模型,该模型直接学习给定目标结构从而生成蛋白质序列,其氨基酸结构以图结构表示。该模型可以有效地捕捉序列与结构间的高阶、基于交互的关系。
2
方法
在本文中,作者提出了一种Structured Transformer。和一般的Attention关注全局不同,本文对每个节点只使用k个最近的节点来避免过高的时间和空间复杂度。使用多层以上架构后,模型通过局部的Attention可以估计全局的信息。此外,和经典Transformer不同,作者还使用了边特征(Edeg feature)增强空间和位置的依赖。
图1
2.1 用图表示结构
作者采用图来表示蛋白质的结构,其中对于图
,
表示残基(氨基酸),
表示氨基酸之间的关系。
2.1.1 3D结构
对于刚体问题,其结构是一组固定的三维坐标坐标,即
其中N为位置数。作者考虑构建一个
图包含两种属性:
关于其邻居
的边特征。
包含了足够的信息能重构节点位置
的刚体运动。
由于不变性是标准对称性引起的,第二个属性又和图神经网络的限制有关。在这些网络中,节点的特征更新来源于临边与相邻节点。然而这些特征不足以重构节点位置
,所以独立的更新不能完全依赖于“局部环境”。例如知道两个节点相对某个节点的距离并不足以确定这两个节点在该节点的同向或反向。因此下文提供了两种编码来捕获这种关系。
2.1.2 相对空间编码
作者为节点增加了一个“定位(orientation)”属性,其规定了节点的相对位置,定义在骨架几何为:
其中是射线和射线夹角的负平分线,是垂直于这个平面的单位向量。形式上有:
最后,作者推导了相对空间边特征刚体上的变换。从变换到有6个自由度,作者将其分解为距离(distance)、方向(direction)、定位(orientation)的特征:
其中是radial basis函数,是两个空间旋转矩阵的四元数表示。
2.1.3相对位置编码
作者对节点i周围的局部结构进行编码,即相对位置特征
。具体来说就是节点i对每个邻居j的位置进行建模。因此作者采用正弦计算i和j的差值,并因为骨架的不对称保留符号。
2.1.4节点和边特征
最后,边特征由相对空间特征
拼接并经过一个线性变换到指定的维度。在实验中每个节点仅计算k=30个最近的边。对节点特征,文章计算与骨架的3个二面角
,最终特征嵌入为
。
2.2 Structured Transformer
总体而言Structured Transformer编码节点特征和边特征,并解码为序列输出,模型结构和经典Transformer模型无太大差别,不同之处在Attention计算上有调整尤其是Decoder。
2.2.1自回归分解
文章对于给定结构
的序列的联合分布进行自回归分解:
公式说明对于第i位的氨基酸条件概率
同时取决于输入结构和之前的氨基酸序列
。Transformer通过两个自网络:一个通过节点特征和边特征计算精确节点embedding的Encoder,一个根据前面的序列和Encoder输入预测当前节点的Decoder。
2.2.2 Encoder
Encoder的流程如下,先将节点特征vi映射为N维的特征hi,N由self-attention决定。Self-attention层输入向量维度为2N(节点特征和边特征),输出为N。
2.2.3 Decoder
Decoder和Encoder的结构几乎相同,不同在于
的改变,使用了带因果的self-attention,即:
其中
表示节点j在当前decoder中的embedding,
表示节点j在当前encoder的最后一层输出,
表示节点j的序列sequence的embedding。如图1所示,以上方法确保了该节点知道之前的序列信息而不知道之后的,信息流仅从
的位置流向。
3
训练
3.1 模型构架
在训练中,作者在encoder和decoder中使用了三层self-attention,输出N=128维。
3.2 优化器
学习率和参数初始化和经典Transformer一致,dropout和label smoothing设置10%,停止条件为validation perplexity。无条件语言模型无dropout且不停止。
3.3数据集
本文搜集了一个基于CATH对蛋白质分层分类的数据集。对于CATH 4.2 40%的非冗余蛋白,作者获取长度高达500的完整链,然后随机分配其CAT编码,按8:1:1划分训练:验证:测试集。去掉验证集中与训练集和测试集的CAT重合部分后,训练集18024条链,验证集608条,测试集1120条。
4
结果
评价计算蛋白质设计方法的一个挑战是蛋白质结构和序列之间关系的简并性。本文作者使用了三个指标:(i)基于似然,测试生成模型在高似然估计下保持序列的能力。(ii)本地序列恢复,评估生成序列和本地序列的模板(iii)实验比较,比较生产模型和高通量数据对从头蛋白质设计(de novo protein design)的可能性。
4.1基于似然模型的统计比较
如表1所列出的一些简单的蛋白质序列模型的复杂度(perplexity),氨基酸字母表和其自然频率的上限复杂度分别为20和17.8,这些模型不可能在没有进一步选择的情况下发挥作用。然而广泛应用于蛋白质工程的Pfam的平均复杂度也有12,说明即使是序列复杂度很高的模型也有可能成为功能蛋白质的有用模型。
表1
表2对比了无条件语言模型和以结构为条件的语言模型。前者典型的测试复杂度在16-17之间,仅比表1的不可用模型好一点。而基于结构的模型复杂性都相当低,特别是本文的模型达到了7。
表2还比较了最近提出的一种基于深度神经网络的SPIN2算法。由于SPIN2是计算密集型,作者使用两个完整的测试集的子集进行评估:一个包含链长度100以下的,一个只包含单链的蛋白质。结果显示Structured Transformer对比SPIN2的复杂度明显改善。
表2
表3测试了不同蛋白质结构的表达方法,包括更精细的几何细节,以及空间接触和氢键的拓扑结构。对于最佳的复杂度,作者发现局部方向比简单的距离更重要。除此以外,即使是只使用拓扑特征模型也比SPIN2好,而后者使用了精确的原子细节。另外,作者使用一个简单的2层dense层在self-attention层后,即,模型性能有所提高,作者推测是注意力机制中潜在的过拟合问题,也是未来的改进方向。
表3
4.2基准测试蛋白质重新设计
为了评估模型在生成逼真蛋白质序列方面的性能,作者进行了2个实验,并与Rosetta,一种最先进的计算蛋白质设计框架进行了比较。如表4所示,本文的模型更加准确,速度也更快。在表4(a)中,模型和最新版本的、使用fixbb固定骨架与默认参数的Rosetta在本文的“单链”测试集比较。在表4(b)中,还比较了来自Rosetta community中40种不同蛋白质的基准。
表4
4.3实验蛋白设计的无监督异常检测
设计序列的合成和检测是评价蛋白质设计方法的黄金标准。作为一种无监督异常检测,可以通过比较最近高通量设计实验中赋予功能性和非功能性突变蛋白的可能性,来衡量模型对蛋白质功能的了解程度。作者比较了最近的一个高通量设计和诱变实验,在这个实验中,几个新设计的微蛋白被系统诱变到所有可能的点突变。作者发现该模型的对数似然非平凡地反映出对突变蛋白的偏好 (表5)。重要的是,作者发现,结果表现不依赖于精确的3D几何特征(如距离和方向),也使用粗略的特征 (如触体、氢键等)。
表5
5
总结
本文提出了一种深度生成模型,给定规范的图结构输出设计的蛋白质序列。该模型使用了3D结构编码增强了自我注意力机制并能够利用分子的局部空间信息进行有效的计算。该模型在基于神经网络的生成模型的蛋白质序列复杂度有了显著改善,并且比最先进的Rosetta程序生成序列更准确和高效。
这个框架表明,可以利用基于结构的深度生成模型有效地设计和生成蛋白质序列,并强调了在生物序列中对稀疏的远程依赖关系建模的关键作用。
代码
https://github.com/jingraham/neurips19-graph-protein-design
参考资料
https://openreview.net/forum?id=SJgxrLLKOE