关于药物重定位(随机游走)论文学习
2018-06-18 02:59:22来源:未知 阅读 ()
第一部分:英文单词记录
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
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 1.关于Python,你可能不知道的 2019-07-24
- python(第一天) 2019-07-24
- Python:字典的高级知识 2019-07-24
- python关于入参中,传入的是指针还是引用 2019-07-24
- 关于函数式编程 2019-05-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash