前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >药物预测R包之oncoPredict

药物预测R包之oncoPredict

作者头像
生信技能树
发布2021-10-12 12:13:49
9.5K5
发布2021-10-12 12:13:49
举报
文章被收录于专栏:生信技能树生信技能树

有了前面的教程:药物预测之认识表达量矩阵和药物IC50 的背景知识铺垫,认识了Cancer Therapeutics Response Portal (CTRP) 和 Genomics of Drug Sensitivity in Cancer (GDSC) 两个数据库资源。

现在我们可以尝试一下使用R包之oncoPredict对你的表达量矩阵进行药物反应预测啦!

发表oncoPredict这个包的文献非常新:《oncoPredict: an R package for predicting in vivo or cancer patient drug response and biomarkers from cell line screening data》,这个通讯作者就是2014年r包pRRophetic同一个人,相当于是炒冷饭吧!

使用oncoPredict之前先安装,代码如下:

代码语言:javascript
复制
install.packages("oncoPredict")

如果遇到版本问题,请看:https://mp.weixin.qq.com/s/HGfePIQP4yP_nvhjiWdpAQ

使用方法超级简单

首先需要读入训练集的表达量矩阵和药物处理信息,参考前面的教程:药物预测之认识表达量矩阵和药物IC50

代码语言:javascript
复制
rm(list = ls())  ## 魔幻操作,一键清空~
options(stringsAsFactors = F)
library(oncoPredict)
library(data.table)
library(gtools)
library(reshape2)
library(ggpubr)
th=theme(axis.text.x = element_text(angle = 45,vjust = 0.5))
dir='./DataFiles/Training Data/'
GDSC2_Expr = readRDS(file=file.path(dir,'GDSC2_Expr (RMA Normalized and Log Transformed).rds'))
GDSC2_Res = readRDS(file = file.path(dir,"GDSC2_Res.rds"))
GDSC2_Res <- exp(GDSC2_Res) 

这里仍然是以Genomics of Drug Sensitivity in Cancer (GDSC) 的v2作为例子,有了训练集的表达量矩阵和药物处理信息,还需要读入你需要做预测的表达量矩阵。

因为我们这个是教程,所以我就不读取自己的表达量矩阵了,直截了当的从Genomics of Drug Sensitivity in Cancer (GDSC) 的v2里面随机挑选10个细胞系作为要预测的矩阵。

代码语言:javascript
复制
testExpr<- GDSC2_Expr[,sample(1:ncol(GDSC2_Expr),10)]
testExpr[1:4,1:4]  
colnames(testExpr)=paste0('test',colnames(testExpr))
dim(testExpr)  

了训练集的表达量矩阵和药物处理信息,然后也有了待预测的表达量矩阵,接下来就是一个函数的事情啦!这个函数calcPhenotype就是R包 oncoPredict的核心,超级方便!

代码语言:javascript
复制
calcPhenotype(trainingExprData = GDSC2_Expr,
              trainingPtype = GDSC2_Res,
              testExprData = testExpr,
              batchCorrect = 'eb',  #   "eb" for ComBat  
              powerTransformPhenotype = TRUE,
              removeLowVaryingGenes = 0.2,
              minNumSamples = 10, 
              printOutput = TRUE, 
              removeLowVaringGenesFrom = 'rawData' )

这个函数运行取决于你的计算资源,需要半个小时左右。好像也没有多线程的可能性,所以只能是慢慢等了,喝一杯咖啡吧,如果可以的话希望你在咱们《生信技能树》公众号任意教程末尾打赏一杯咖啡也行,我们一起慢慢喝,慢慢等!

从函数运行的log日志来看,本质上就是一个岭回归:

代码语言:javascript
复制
17419  gene identifiers overlap between the supplied expression matrices... 
 
Found2batches
Adjusting for0covariate(s) or covariate level(s)
Standardizing Data across genes
Fitting L/S model and finding priors
Finding parametric adjustments
Adjusting the Data 
 4650 low variabilty genes filtered. 
Fitting Ridge Regression model 
Calculating predicted phenotype... 
Done making prediction for drug 1 of 198 
Fitting Ridge Regression model... 
Calculating predicted phenotype... 
Done making prediction for drug 2 of 198

差不多是最简单的最常用的机器学习统计学方法了,如果你对其它机器学习方法感兴趣,可以看生信菜鸟团鲍志炜的专栏分享:

其实在生物信息学领域,可能仍然是R语言应用更为广泛,简单的一个R包或者函数即可。所以并不是一定要学习python哈。

解读药物预测结果

前面的R包 oncoPredict的核心函数calcPhenotype运行完毕后,会在当前工作目录下面输出 calcPhenotype_Output 文件夹,里面有一个 DrugPredictions.csv的文件,这个都是函数calcPhenotype写死了的。

代码语言:javascript
复制
library(data.table)
testPtype <- fread('./calcPhenotype_Output/DrugPredictions.csv', data.table = F)
testPtype[1:4, 1:4]

不同的数据库资源作为函数的训练集,得到的结果必然是不一样的哦!而且函数也可以调整很多参数。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用方法超级简单
  • 解读药物预测结果
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档