prince算法

Prince算法是预测蛋白质(包括基因)与疾病关系的经典算法,是Oron Vanunu在文章《Associating Genes and Protein Complexes with Disease via Network Propagation》中提出来的。​

算法的基本假设是:引起相似疾病的基因倾向于在蛋白质相互作用网络中相近。​​​​

用到的数据集有:蛋白质相互作用网络(PPI)、疾病相似性、已知的疾病与蛋白质(基因)关系。

Q为目标疾病,我们希望推测引起Q疾病的基因。其中d1,d2,.....为与Q表型相似的疾病,线的粗细代表了不同的相似程度,将相似疾病的相关蛋白映射至PPI网络中(图中的p2,p4,p9),将其作为先验知识。在PPI网络中,蛋白质与蛋白质也有强弱不同的相互作用。这样,结合PPI网络的信息和先验知识就得到蛋白质与疾病Q的相关性

简单来说,相当于我要给你(疾病)推荐个商品(基因),可是我不知道你的喜好,只能从你的朋友(相似疾病)下手,假设你朋友的喜好与你的喜好是相似的。然后商品和商品不是也有分类或者行使相似功能的关系(PPI),这样,我从你朋友喜好的商品出发,找与你朋友商品相似的商品作为对你的推荐商品。推荐商品的打分值当然要由朋友与你关系的紧密度和商品相似度共同决定。

数学描述如下:​

蛋白质相互作用网络用G=(V,E,w)来表示,w是网络的权重矩阵。对于一个蛋白质网络节点v,它的网络邻居用N(v)表示。优化函数F(v)反应蛋白质v与目标疾病q的相关性,Y(v)代表了先验知识,即蛋白v影响的疾病与目标疾病的相似性。

直观理解,蛋白质v与目标疾病q的相关性应该由它周围蛋白与目标疾病关系和蛋白质v的先验知识共同决定:

参数alpha调节两个条件的影响力大小,参数是网络权重w的标准型

可以从公式中看出,这是个迭代公式,转变为线性形式:

这里要使存在,即 为正,就需要属于[-1,1],设定

对于大型网络,基于传播的迭代算法能够很快的收敛到系统的结果,这里用[2]文中算法计算第t次迭代:

这里

先验知识

是目标疾病q与疾病p的相似性,根据van Driel他们的研究,只有处于[0.6,1]之间才能显示出有意义的蛋白功能相似性,所以这里用函数 过滤相似性。

只需将所需数据加入迭代公式,就能得到所有蛋白质与目标疾病的相关性,从中选择相关性高的作为最终预测结果。

python代码和数据:http://pan.baidu.com/disk/home

[1]Vanunu O, Magger O, Ruppin E, et al. Associating genes and protein complexes with disease via network propagation[J]. PLoS computational biology, 2010, 6(1): e1000641.

[2]Zhou D, Bousquet O, Lal TN, Weston J, Scholkopf B (2003) Learning with local and global consistency. citeseer.ist.psu.edu/zhou03learning.html. In 18th Annual Conf. on Neural Information Processing Systems

 

posted @ 2015-03-30 10:26  Shikamaru  阅读(1440)  评论(1编辑  收藏  举报