论文精读-deepNF预测蛋白质功能-2018


deepNF: deep network fusion for protein function prediction

  • 杂志: Bioinformatics
  • IF: 4.531(2018)
  • 分区: 2区
  • github

Introduction

早期研究

  1. 自动化蛋白质功能预测能够提高我们的效率,特别是在高通量分子组学诞生后,一些网络(蛋白质交互网络PPI、基因交互网络、基因共表达网络、代谢网络等)被发现。从这些网络中提取拓扑特性可能是理解蛋白质功能的重要一环,原因如下:

    • 相同功能的蛋白质可能是相互作用的【Sharan et al., 2007】;
    • 相同功能的蛋白质可能在交互网络中有相似的拓扑属性【Milenkovic and Przulj, 2008】;
    • 相同功能的蛋白质可能属于同一个复合物或pathway【Chen et al., 2014】。
  2. CAFA【Radivojac et al., 2013】和MouseFunc【Pena-Castillo ~ et al., 2008】代表了一类尝试,其利用了大量的数据(network、sequence、structure等)来进行功能预测,这会优于只使用单个数据的方法【Cozzetto et al., 2013; Lanckriet et al., 2004; Wass et al., 2012】,但整合多种数据造成的复杂性和稀疏性也带来了挑战。本研究专注于network-based features的integration,更容易得到一般性的结论,并且容易和其他工作进行比较。

  3. 早期的network integration的研究:

    • Bayesian inference【Franceschini et al., 2013; Lee et al., 2011】;
    • kernel-based methods【Yu et al., 2015】,如GeneMANIA【Mostafavi et al., 2008; Mostafavi and Morris, 2012】;

    上述方法会首先将多个来源的往来进行合并,整合成一个网络,然后再输入基于graph kernel的supervised或semi-supervised model去进行训练,这使得网络合并的时候可能损失了一些信息【Cho et al. (2016)】。

    • 【Yan et al., 2010】在每个网络上训练一个classifier,然后使用ensemble learning的方法来将这些预测合并

    但这样的方法又不能考虑到不同网络间的相互关系。

    另外,这些方法还面临诸多问题:

    • 网络的层次关系【Barutcuoglu et al., 2006】;
    • negative examples(没有指定功能的proteins)【Youngs et al., 2013】;
    • 不完整的功能注释【Gligorijevic et al., 2014】。

相关工作

Mashup【Cho et al., 2016】,可以克服fusing noisy和网络不完整的问题。流程为:

  • matrix factorization得到低维表示;
  • 使用SVM训练classifier预测功能标签。

这项工作重要的地方在于feature learning的过程(也称为network embedding)。但挑战也在于此,方法必须能够将network structure中的connectivity patterns学习到,基于:

  • homophily(在网络中的距离)
  • 其局部的连接模式,与在网络中的位置无关

而且学习到的特征在不同的蛋白质交互作用网络中是一致的。

实际上之前一些network embedding的方法,比如node2vec【Grover and Leskovec, 2016】和DeepWalk【Perozzi et al., 2014】,都是使用的一些shallow、linear的技术来实现的,这可能在捕捉非线性能力方面存在不足。

但实际上这两种方法都是node embedding的方法,不是network embedding的方法
但细一想,这篇文章的任务是学习蛋白质的低维表示,蛋白质确实是node,没错。只是他也把这个叫做network embedding而已。

基于当前Deep Learning技术的成功,一系列基于DNNs的方法【Cao et al., 2016; Grover and Leskovec, 2016; Wang et al., 2016】应运而生,而且在link prediction、network clustering、multi-label classification等领域取得了进步,但还没有研究致力于多种不同network类型的数据的整合。

本文概述

所以本研究提出了deep Network Fusion(deepNF)--一个整合多种网络数据学习蛋白质低维表示的方法:

  • 能蹦捕捉多种PPI networks的复杂的topological patterns;
  • 用于预测蛋白质的功能标签。

其使用分开的layers来分别学习不同的network types,然后使用deep AEs的架构将其融合到bottleneck layer的features中,最后使用SVM来进行预测。

deepNF的优势:

  • 能够捕捉非线性特征,学习到的特征丰富;
  • 能够处理noisy links,因为AEs被证明有降噪的效果【Vincent et al., 2010】;
  • 可扩展,因为其特征学习的过程是无监督的。而且可以轻松地扩展到semi-supervised领域。

本研究将deepNF应用到human和yeast的STRING networks中来学习低维表示,使用GO annotation(2015)作为training label,并在GO annotation(2017)上进行验证。并和Mashup、GeneMANIA进行了比较,发现deepNF有显著的性能提升。

Methods

\(N=6\)表示不同的undirected weighted STRING networks,使用矩阵表示

\[\left\{\mathbf{A}^{(1)}, \mathbf{A}^{(2)}, \ldots, \mathbf{A}^{(N)}\right\}\]

每个矩阵有\(n\)个proteins,我们希望学习到一个\(d_c\)维的特征,其中\(d_c<<n\)。有下列3个步骤:

  • 使用Random Walk with Restarts(RWR)和Positive Pointwise Mutual Information(PPMI)来捕捉networks中的结构信息;
  • 使用AEs来融合PPMI matrices,提取低维特征;
  • 使用SVM基于低维特征来预测功能标签。

1. RWR-PPMI表示

这里之所以选择RWR而不是node2vec和DeepWalk中的采样过程,是因为RWR计算更加方便、不需要额外的超参数调整。

  1. 进行Random Walk:

    \[\mathbf{p}_{i}^{(t)}=\alpha \mathbf{p}_{i}^{(t-1)} \widehat{\mathbf{A}}+(1-\alpha) \mathbf{p}_{i}^{(0)}\]

    \(\mathbf{p}_i^{(0)}\)是一个one-hot向量,其第\(i\)个元素是1。\(\alpha\)表示重启概率,用来控制其学习的特征是局部的还是全局的。是row-wise normalization后的邻接矩阵。

    这里的意思是从某个点出发进行随机游走,则得到的sequence可以作为该点的特征

  2. 基于【Cao et al. (2016)】的操作,计算\(\mathbf{r}_i\)\(\mathbf{R}\)

    \[\mathbf{r}_{i}=\sum_{t=1}^{T} \mathbf{p}_{i}^{(t)}\]

    \(T\)表示RW的步数,将所有的节点的\(\mathbf{r}_i\)组合形成\(\mathbf{R}\)

    表示的是在整个游走期间,到达某一点的"概率"。

    \(\alpha=1\)的时候

    \[\mathbf{R}=\widehat{\mathbf{A}}+\widehat{\mathbf{A}}^{2}+\cdots+\widehat{\mathbf{A}}^{T}\]

    其中\(\widehat{\mathbf{A}}^k\)是k阶邻接矩阵,即经过k次通路后是否相连。

    所以,\(\mathbf{R}\)表示了network的高阶连接特性。

  3. 基于\(\mathbf{R}\)计算每个节点的PPMI表示

    \[\mathbf{X}_{l m}^{(j)}=\max \left(0, \log _{2}\left(\frac{\mathbf{R}_{l m}^{(j)} \sum_{l} \sum_{m} \mathbf{R}_{l m}^{(j)}}{\sum_{l} \mathbf{R}_{l m}^{(j)} \sum_{m} \mathbf{R}_{l m}^{(j)}}\right)\right)\]

    其中\(j\)表示network\(j\)。注意到,这个步骤可以直接在原始邻接矩阵上使用,但经过上两步可以减弱矩阵的稀疏性。

    MI就是\(p(x,y)\)\(p(x)p(y)\)的KL散度(相对熵),表示为\(\mathbb{E}_{p(x,y)}[\log{\frac{p(x,y)}{p(x)p(y)}}]\)。可以看得出来,上面的公式就是一个典型的MI。\(R_lm\)表示的是在\(l\)(或\(m\))的RW上出现\(m\)(或\(l\))的概率,所以经过归一化后可以看做是\(p(x,y)\),而分母可以看做是边际概率的乘积。MI是这些项的期望,则其每一项将都可以看做是每对点对所有点间相关性(即MI)的贡献

2. 使用AEs整合networks

整个架构使用下图表示:

deepFN的流程图

  • 输入:\(\mathbf{X}^{(j)} \in \mathbb{R}^{n \times n}\)
  • 首先使用第一层,对每个网络分别提取器特征,激活函数是sigmoid。
  • 第二层将得到的特征concat到一起,然后就是正常的NN的fc layers(L层),直到bottleneck layers,至此encoder结束。
  • decoder是encoder的镜像。
  • loss是binary cross entropy。
  • 使用带有momentum的标准SGD进行训练,并探索了不同超参数(batchsize、lr、nums of hidden layers and units)的表现,结果在附录中。

3. 预测蛋白质功能

  • 使用LIBSVM实现SVM来做分类,RBF kernel。

  • 为了评价SVM的性能,使用了两种验证方式:

    • 5-CV:将有标记的proteins分为training和testing,在training set中内嵌一个5-CV来进行超参数调整(RBF kernel的\(\gamma\)和正则化参数\(C\),grid search)。一共进行了10次交叉验证。
    • temporal holdout validation:将GO annotation在2015和2017中相同注释的proteins作为training set,将2015和2017不同注释的proteins作为validation,将2015没有但2017补充的annotations作为test。使用validation调整超参数,在test上使用bootstrap验证1000次得到结果。【Jiang et al., 2016; Radivojac et al., 2013】
  • 比较的方法:Mashup、GeneM,都使用了validation来进行超参数的调整。

  • 评价指标:

    • ACC
    • Micro-averaged F1 score【Cho et al. (2016)】
    • Micro-AUPR【Davis and Goadrich, 2006】

    Macro是在类别的基础上平均,Micro是在样本的基础上进行平均。
    Micro-AUPR指的是先把预测得分和标签都计算出来,然后将其concat到一起后计算一个AUPR值;Macro-AUPR是对每一个部分计算AUPR,然后平均。
    f1 score是用下面的公式计算的: \[F_{\beta}=\left(1+\beta^{2}\right) \frac{\text { precision } \times \text { recall }}{\beta^{2} \text { precision }+\text { recall }}\] macro就是先计算每个类别的f1-score,然后平均;micro是先计算所有类别中的true positive、predicted positive、label positive,然后据此计算一个precision和recall,然后利用这两个计算f1-score。更加详细可见sklearn的解释

4. 数据预处理

  • yeast的功能注释(标签)来自MIPS,其被组织为3个levels:

    • level1,17个最主要的功能分类
    • level2,74个功能分类
    • level3,153最特殊的功能分类
  • human的功能注释来自GO,其分为3个大类:

    • MF(molecular function)
    • BP(biological process)
    • CC(cellular component)

    也被分为3个levels:

    • 11-30:153 MFs,262 BPs,82 CCs;
    • 31-100:72 MFs,100 BPs,48 CCs;
    • 101-300:18 MFs,28 BPs,20 CCs。

    关于GO的介绍,可以参见这篇博客

  • \(N=6\),使用的这六类网络是:

    • neighborhood
    • fusion
    • cooccurence
    • coexpression
    • experimental
    • database

Results

experiments的implementations:

  • \(\alpha=0.98\)\(T=3\),通过validation得到
  • AEs的架构和SVM的超参数也通过validation进行了搜索,其更详细的介绍再supplementary S3中

1. CV的结果

在Yeast数据集上的结果如下图所示,使用的是5-layers的架构:


在human数据集上,使用的是7-layers架构,正文中只有MF的结果,BP和CC的结果在附录中:


下图中,比较了单个网络和多个网络整合的结果,网络整合还是要好于单个网络的:


2. Temporal holdout validation的结果

在Yeast和human数据集上的结果依次展现在下面:

Yeast

Human

下图展示了deepNF和Mashup在单个GO term上的效果:


还有许多的结果需要去看supplementary files,这里就不贴出来了。

Conclusion

未来,期望能够将deepNF进一步发展,可以将proteins sequences、structure数据考虑到。


Questions

  1. 关于human的GO注释怎么分为3个levels的,没怎么看懂?
  2. 这里在实验的时候,是找的最好的architecture的deepNF和其他方法进行的比较,是不是不妥呀?

文章作者: Luyiyun
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Luyiyun !
评论
评论
  目录