本篇文献使用双通道图卷积网络(Graph Convolutional Network, GCN)模型的架构,开发了生物信息学工具PhiGnet,进行蛋白质GO功能(或酶功能)的预测。问题比较老旧,但是方法学上具备一定的创新性——PhiGnet能够不依赖于蛋白结构而预测其功能。尽管如此,这样一篇没有任何实验内容,纯深度学习的文章能发表在Nature Communication上,也实属罕见了。
由于是一篇方法学相关的文章,我们主要阅读Materials & Methods部分,并将其研究方法拆解为如下五个步骤:
1. 收集GO注释的蛋白质集合
这个没啥好说的,属于数据集构建。因为要做蛋白的GO功能预测嘛,首要任务肯定是得先知道训练集中的蛋白对应哪些GO名词,我们的预测任务中应该包含哪些GO名词…
2. 计算进化协同性(Evolutionary Coupling)
该步骤的核心旨在从蛋白结构中找到共进化的氨基酸对。氨基酸协同进化(Evolutionary Coupling, EVC)和氨基酸社区(Residue Community, RC)是两个GCN模型的基础网络,以邻接矩阵的形式作为输入,依次递送给GCN。其中,EVC描述的是蛋白序列中氨基酸之间协同进化的关系;RC是从EVC网络中挖掘的氨基酸簇,即功能组(functional group)。EVC的计算原理是多序列比对(Multiple Sequence Alignment, MSA),RC记不太清了,应该也是聚类方法,有需要的时候可以再回顾一下原文。
3. 氨基酸的嵌入向量
氨基酸的编码分别有两个:一是使用one-hot编码,二是使用ESM-1b编码。接下来,分别使用Dense Layers将one-hot和ESM-1b嵌入转换为1024维的向量,然后由ReLU整合为GCN的输入(这里我其实有些没读懂,怎么就用ReLU完成嵌入向量的整合了…)。
4. 双通道GCN网络的训练
由步骤2. 获得的邻近矩阵EVC和RC,以及由步骤3. 获得的节点特征矩阵,以它们作为输入,喂给PhiGnet模型。看源代码这里应该是根据GO分类(Biological Processes, Molecular Functions, Cellular Components)和酶功能,一共训练了四个独立的模型。这里的操作都比较常规化,GCN怎么做,这儿就怎么做。其中涉及到网络调参的内容,我们这儿只讲文章脉络,具体细节可以去读原文。
这里还存在一个问题:RC网络和节点特征矩阵的匹配问题。本质上困惑的点在于,RC网络究竟在描述什么?如果EVC网络和节点特征矩阵都是关于氨基酸的,那么RC网络理论上也应该是关于氨基酸的网络结构。
5. 利用类激活图(Classification Activation Map, CAM)解释氨基酸对蛋白功能的贡献
这里属于可解释机器学习(Interpretable Machine Learning, IML)的部分,通过计算梯度来研究每个氨基酸对GO/酶功能分类的贡献,从而判定在蛋白质执行该功能时,究竟是哪些氨基酸在发挥着作用。
原文链接:[Accurate prediction of protein function using statistics-informed graph networks | Nature Communications]
论文背后:[Physics-informed machine learning predicts protein function | Research Communities by Springer Nature]