关于药物重定位(随机游走)论文学习

2018-06-18 02:59:22来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

第一部分:英文单词记录

1、drug  药物     2、repositioning  重新布置,重新定位  3、comprehensive  综合  4、Bi-random walk algorithm  随机游走算法  

5、motivation  动机  6、aims to  以...为目标  7、identity  确定  8、indication  适应症  9、existing  目前的   

10、promising  有希望的  11、alternative  供选择的  12、compromising  计算的  13、strategy  策略  14、proposed  计划  

15、current  现在的  16、property  性能  17、to calculate  计算  18、respectively  各自地  19、sociation  基本群集  

20、measures  措施  21、assumption  假想  22、associated  联系  23、and vice versa  反之亦然  24、utilizes  利用  25、potential  可能  26、feature  特征  27、to calculate  计算  28、interaction  交互  29、adopted  接受

30、computational  计算的  31、experiment  实验  32、demonstrate  证明  33、approach  方法  34、reliable  可靠地  35、prediction  语言  36、performance  性能  37、outperform  胜过  38、recent  近代的  39、approaches  处理  

40、selected  挑选  41、confirm  确认  42、superior  优秀的  43、potential  潜在的  44、indication  适应症

45、repositioning  重新定位  46、genomics  基因体学  47、consuming  消耗  48、risk/risky  冒险  49、tremendously  惊人的  50、continuously  连续不断  51、investment  投资  52、approved  经...批准  53、in light of  根据  54、discovery  发现  55、identify  识别  56、repurposing  再利用  57、attract  吸引  58、pharmaceutical  药物  59、candidate  申请者

60、necessary  必要的  61、consequently  因此  62、repositioned  复位  63、generated  产生  64、revenue  收入  

65、patent  专利  66、holder  持有人  67、treatment  治疗  68、originally  最初的  69、intended  打算

70、proposed  提议  71、predict  预报  72、direct  直接的  73、assumption  假想的  74、conduct  管理

75、multiple  多样的  76、construct  构造  77、discrimination  区别  78、implement  实施  79、classification  分类

80、heterogeneous  不均匀的  81、clustering  收集  82、unified  统一  83、framework  框架  84、iterative  反复

85、prioritization  优先化  86、simultaneously  同时的  87、integrated  完整的  88、formulated  配方制造

89、recommend  推荐  90、preferable  更好的  91、exploited  利用  92、adopt  收养  93、effective  有效的

94、mechanism  机制  95、measure  测量  96、potential  潜在的  97、aspect  方面  98、previous  早先的

99、interaction  互动  100、adjust  调整  101、analysis  分析  102、simultaneously  同时的  103、clustered  聚合

104、demonstrated  示范的  105、evaluate  估计  106、referred  参考  107、procedure  程序  108、collect  收集

109、heterogeneous  异种的  110、consisting  包括  111、standard  标准  112、obtain  获得  113、briefly  短暂的

114、analyze  分析  115、various  各种各样  116、cluster  群

第二部分:代码实现

   1、随机游走过程

#_Author_:Monkey
#!/usr/bin/env python
#-*- coding:utf-8 -*-

from numpy import * #python 中矩阵处理函数
import numpy as np

# import scipy.io as scio #python 读取。mat文件
#
# AdataFile = 'data/DiDrAMat.mat'
# data = scio.loadmat(AdataFile)
# print(data)

def Normalize(data):
total = 0.0
for i in range(len(data)):
#print(float(data[i]))
total += float(data[i])
#total = sum(data)
return [float(i)/total for i in data]


#读出药物疾病相关性文件,进行归一化,并放着矩阵中
RD_data = [] #归一化后药物疾病相关矩阵
A = [] #原始药物疾病相关矩阵
Data = []
with open ("DiDrAMat.txt","r") as f:
for fLine in f:
row = [int(x) for x in fLine.split()]#读出文件,split默认按空格进行分割
if(len(row) > 0):
Data.append(row)
f.close()
Data = mat(Data).T # 列表转为矩阵 A归一化的矩阵
A = Data # 药物疾病相关性矩阵

np.savetxt("DiDrAMat593_313.txt",A )

with open ("DiDrAMat593_313.txt","r") as f:
for fLine in f:
row = [x for x in fLine.split()]#读出文件,split默认按空格进行分割
if(len(row) > 0):
row = Normalize(row)#调用归一化函数
RD_data.append(row)
f.close()
RD_data = mat(RD_data) # 列表转为矩阵 A归一化的矩阵

np.savetxt("归一化.txt",RD_data )




#读出药物相关性文件,存贮在矩阵中
MR_data = []
with open("DrugSimMat.txt","r") as f:
for fLine in f:
row = [float(x) for x in fLine.split()]
if(len(row) > 0):
MR_data.append(row)
MR_data = mat(MR_data) #药物相关性矩阵
f.close()

#读出疾病相关性文件,存储在矩阵中
MD_data = []
with open("DiseaseSimMat.txt","r") as f:
for fLine in f:
row = [float(x) for x in fLine.split()]
if(len(row) > 0):
MD_data.append(row)
MD_data = mat(MD_data) #疾病相关性矩阵
f.close()

print(RD_data.shape)
print(MR_data.shape)
print(MD_data.shape)
print(A.shape)

#随机游走算法
alpha = 0.3
for i in range(10):
rflag = 1
lflag = 1
Rr_data = np.dot(MR_data*0.3,RD_data) + 0.7 * A #593*593 593*313 593*313
Rd_data = np.dot(RD_data*0.3,MD_data) + 0.7 * A #593*313 313*313 593*313
RD_data = (rflag*Rr_data + lflag*Rd_data)/2

#将最终的RD_data 游走后的矩阵 写进文件保存
np.savetxt("DiDrAMat_test.txt",RD_data)

  2、ROC验证
#_Author_:Monkey
#!/usr/bin/env python
#-*- coding:utf-8 -*-

from numpy import * #python 中矩阵处理函数
import numpy as np

#采用生成器,test中读取一行,原数据读取一行,进行ROC处理分析,在读取下一行


Mat_data = []#原本的药物疾病相关矩阵
def Read_Mat(FileName):
with open (FileName,"r") as fM:
for fline in fM:
row = [float(x) for x in fline.split()]
if(len(row) > 0):
yield
Mat_data.append(row)





Test_data = []#测试的生成数据符合不符合要求

def Read_Txt(FileName):
n =0
c = Read_Mat("DiDrAMat593_313.txt")#生成一个生成器
c.__next__()#执行到yield等待
with open (FileName,"r") as f:
for fline in f:
row = [float(x) for x in fline.split()]
if(len(row) > 0):
Test_data.append(row)
try:
n += 1
#c.send(Mat_data)
c.__next__() # 执行到yield等待
#np.savetxt("Mat_data.txt", mat(Mat_data))
except StopIteration as e:
print("出现异常",e.value)
break
#np.savetxt("Test_data.txt", mat(Test_data))
# sort_Data是排序后的列表,并保存了原来的ID
sort_Data = sorted(enumerate(Test_data[n-1]),key = lambda x:x[1],reverse = True)
#print(sort_Data)
#计算Mat_data正列和,即TP+FN
sum_TPFN = Mat_data[n-1].count(1)
#print(sum_TPFN)
#计算Mat_data反例和,即FP+TN
sum_FPTN = len(Mat_data[n-1])-sum_TPFN
#计算TPR和FPR的值,利用sort_Data的值和Mat_data得值计算
TPR = 0.0
FPR = 0.0
# print(Mat_data[n-1])
End_TPRdata = [] # 最终的列表,存储了每个点的TPR的值 纵坐标
End_FPRdata = [] # 最终的列表,存储了每个点的FPR的值 横坐标
#print(len(Mat_data[n-1]), Mat_data)
for i in range(len(sort_Data)):
if(Mat_data[n-1][sort_Data[i][0]] == 1):
TPR += 1/sum_TPFN
End_TPRdata.append(TPR)
End_FPRdata.append(FPR)
else:
FPR += 1/sum_FPTN
End_TPRdata.append(TPR)
End_FPRdata.append(FPR)
TPR_Data.append(End_TPRdata)
FPR_Data.append(End_FPRdata)

TPR_Data = []
FPR_Data = []

Read_Txt("DiDrAMat_test.txt") #593*313
# print(TPR_Data)
# print(FPR_Data)
np.savetxt("TPR_test.txt", mat(TPR_Data))
np.savetxt("FPR_test.txt", mat(FPR_Data))
np.savetxt("Mat_data.txt", mat(Mat_data))

#_Author_:Monkey
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#读取文件,变为矩阵,求矩阵对应的每列的平均值
from numpy import * #python 中矩阵处理函数
import numpy as np
from pylab import *

TPR_Data = []
FPR_Data = []
with open ("TPR_test.txt","r") as f:
for fLine in f:
row = [float(x) for x in fLine.split()]
if(len(row) > 0):
TPR_Data.append(row)
with open ("FPR_test.txt","r") as f:
for fLine in f:
row = [float(x) for x in fLine.split()]
if(len(row) > 0):
FPR_Data.append(row)

MD_TPR = mat(TPR_Data)
MD_FPR = mat(FPR_Data)
np.savetxt("MD_FPR.txt", MD_FPR)



Y_TPR = []
Y_TPR.append( MD_TPR .sum(axis=0) / 593)
X_FPR = []
X_FPR.append(MD_FPR.sum(axis =0) / 593)
print(X_FPR[0].tolist()[0] )
print(Y_TPR[0].tolist()[0])


plot(X_FPR[0].tolist()[0],Y_TPR[0].tolist()[0],"r")
show()

  3、效果图

 



 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Python协程

下一篇:如何最简便的利用Python实现数据可视化?当然离不开matplotlib!