PVM(同源验证方法)
PVM(同源验证方法)
PVM来自于Protein Interactions TWO METHODS FOR ASSESSMENT OF THE RELIABILITY OF HIGH THROUGHPUT OBSERVATIONS这篇论文

PVM的计算方式
给你两个蛋白P1和P2,考虑P1和P2的同源蛋白,然后在DIP数据库统计这些同源蛋白相互作用的个数,不包括P1和P2。这个数量就是相互作用分数。
上图的P1和P2的分数是2。如果这个分数大于0,就认为是相互作用的。
PVM网址
DIP提供的在线工具,一次只能提交1000对蛋白。他上传文件的格式要求是 DIP codes、YPD codes或者酵母基因代码。
目前YPD codes或者酵母基因代码不好找。我们的输入可以使用DIP codes这个比较方便点。
实验
1.下载酵母蛋白数据
首先我们从DIP数据库下载酵母蛋白数据(DIP20160731)

2.提取DIP codes和uniprot codes
我们用EXCEL打开下载的数据可以看到,ID interactor A 包含DIP codes、refseq codes、和uniprot codes。
目前我们需要DIP codes和uniprot codes两个数据。

在EXCEL中我们使用两个代码获得ID interactor A 的DIP codes和uniprot codes,同理也可以获得ID interactor B的DIP codes和uniprot codes
=RIGHT(C2,6)=MID(C2,1,FIND("N",C2))

然后我们统计出DIP codes和uniprot codes一对一的关系。
uid_dip.csv

3.获取原论文的数据
Ensemble learning prediction of protein–protein interactions using proteins functional annotations
获取原论文的uniprot codes列和PVM列

uid.csv

4.获取DIP codes
然后我们根据第2步得到的DIP codes和uniprot codes一对一的关系,获取论文数据的DIP codes
# -*- coding: utf-8 -*-"""Created on Tue Nov 01 15:32:44 2016@author: sun"""import pandas as pdimport numpy as npuid_dip=pd.read_csv('uid_dip.csv',header=None,index_col=0)uid=pd.read_csv('uid.csv')dip_a=uid_dip.loc[uid.idA,:]dip_b=uid_dip.loc[uid.idB,:]dip_a.index=np.arange(3006)dip_b.index=np.arange(3006)dip=pd.concat([dip_a,dip_b,uid],axis=1)dip.to_csv('dip_with_na.csv',index=False,header=False)dip_no_na=pd.concat([dip_a,dip_b],axis=1)dip_no_na=dip_no_na.dropna(how='any')#删除有nan值的所有行dip_no_na.to_csv('dip_no_na.txt',index=False,header=False,sep=' ')
最后我们得到两个文件
dip_with_na.csv
dip_no_na.txt
5.获取PVM
然后我们把上面获得dip_no_na.txt文件每1000个样本分成一个文件上传到下面这个网站。获取PVM值。
最后我们获得pvm分数。
6.结果比较

最终跑出来的数据跟原论文提供的数据不太一样。至于与原因,我想应该是DIP数据库更新引起的。
总结
- 首先这个PVM是2002提出的,有点旧。
- 这个工具只有web端的,没有客户端,而且一次只能处理1000个样本。限制太大,不适合大样本的处理。
- 上传文件的格式只能是 DIP codes、YPD codes或者酵母基因代码这3类,并没有提供一一对应的关系。操作起来比较复杂。
- 小样本可以使用这个特征,大样本建议丢弃这个特征。
附件列表

浙公网安备 33010602011771号