Drug 2. 临床标志物之药物敏感性水平 (oncoPredict)

1df6449b438b2c12511394912fc93d25.png

上期我们介绍了临床标志物之药物-基因关联预测,这期继续介绍药物敏感性水平的计算。


临床前生物标志物发现

这个脚本提供了一个如何在临床前生物标志物发现中控制一般药物敏感性水平 general levels of drug sensitivity (GLDS)的例子。

具体来说,这个脚本对GDSCv2数据应用glds函数来获得每个#drug-gene关联的p值和beta值。控制GLDS很重要,因为GLDS的变异性在癌细胞系中很明显,控制这种变异性可以促进癌症生物标志物的发现。

读取相关数据

读取GDSC更新的细胞系信息文件:Cell_Lines_Details.csv

读取药物反应数据文件:complete_matrix_output_GDSCv2.txt

读取以正确的顺序包含药物反应数据的颜色名,但删除了额外的标识符的文件:gdscv2_drugs.txt

读取GDSCv2更新泛癌突变数据集包括CNV和编码变体的文件:markerMat.txt

读取GDSC更新的药物相关性文件(来自大数据下载/所有筛选的化合物/化合物-注释):screened_compunds_rel_8.2.csv

library(oncoPredict)
cellLineDetails <- read.csv("./oncoPredict-main/vignettes/Cell_Lines_Details.csv")
dim(cellLineDetails)
## [1] 1002   13
cm <- read.table("./oncoPredict-main/vignettes/complete_matrix_output_GDSCv2.txt",
    header = TRUE, row.names = 1)
newRows <- substring(rownames(cm), 8)  #Remove 'COSMIC'...keep the numbers after COSMIC.
indices <- match(as.numeric(newRows), as.vector(unlist(cellLineDetails[, 2])))  #Refer to the cell
newNames <- as.vector(unlist(cellLineDetails[, 1]))[indices]  #Reports the corresponding cell line names
rownames(cm) <- newNames
fix <- as.vector(unlist(read.table("./oncoPredict-main/vignettes/gdscv2_drugs.txt",
    header = TRUE)))
colnames(cm) <- as.vector(fix)
drugMat <- as.matrix(cm)  #Finally, set this object as the drugMat parameter. 
dim(drugMat)
## [1] 100 198
markerMat <- as.matrix(read.table("./oncoPredict-main/vignettes/markerMat.txt", header = TRUE,
    row.names = 1))
drugRelatedness <- read.csv("./oncoPredict-main/vignettes/screened_compunds_rel_8.2.csv")
drugRelatedness <- drugRelatedness[, c(3, 6)]

glds()函数计算药物敏感性

参数说明:

minMuts:可以计算p值所需的最小非零条目数;

additionalCovariateMatrix:包含在药物生物标志物关联模型中拟合的协变量的矩阵。

expression:表达数据的矩阵。rownames()是基因,colnames()是与药物gmat中相同的临床前样本(顺序也相同)。默认值为NULL。如果提供表达数据,将获得基因名。

threshold:确定相关系数。与被检查药物相关系数大于或等于该数值的药物将从阴性对照组中移除。默认值是0.7

glds(drugMat, drugRelatedness, markerMat, minMuts = 5, additionalCovariateMatrix = NULL,
    threshold = 0.7)

结果解读及可视化

获得的结果中生产是个文件分别naive的beta值和P值,还有glds的beta值和P值:

naiveBetas.csv

naivePs.csv

gldsBetas.csv

gldsPs.csv

并对结果数据进行可视化,由于gldsPs.csv里面并未找到敏感性药物,因此只做了naive的可视化分析。

library(reshape2)
library(ggplot2)
naiveBetas<-na.omit(read.csv("naiveBetas.csv"))
naiveBetas<-melt(naiveBetas,id.vars = "X",value.name="BetaVal",variable.name ="drug")
naivePs<-na.omit(read.csv("naivePs.csv"))
naivePs<-melt(naivePs,id.vars = "X",value.name="pVal",variable.name ="drug")
naive<-merge(naiveBetas,naivePs,by = c("X","drug"))

ggplot(naive[naive$pVal<0.05,],aes(x=drug,y=X))+ #热图绘制
  scale_color_gradientn(values = seq(0,1,0.2),colours = c('#6699CC','#FFFF99','#CC3333'))+
  theme_bw()+
  geom_point(aes(size=`pVal`,color=`BetaVal`))+
  theme(axis.text.x =element_text(angle =90,hjust =0.5,vjust = 0.5))+
  xlab(NULL) + ylab(NULL)+
  theme(panel.border = element_rect(fill=NA,color="black", size=1, linetype="solid"))

2365b93911b019f6a52eb47626e82246.png

# geom_vline(xintercept=c(-3,3.5,8.5,11.5,15.5),size=.8)


gldsBetas<-na.omit(read.csv("gldsBetas.csv"))
gldsBetas[,1:5]
##                X Camptothecin Vinblastine Cisplatin Cytarabine
## 231     TP53_mut    -1.271679   -8.352254 -2.134670 -0.3000725
## 668 cnaPANCAN144    -1.071613    1.834236 -1.834230 -0.1367837
## 805 cnaPANCAN210    -1.741601   -1.206890 -3.316916 -0.4298610
gldsPs<-na.omit(read.csv("gldsPs.csv"))
gldsPs[,1:5]
## [1] X            Camptothecin Vinblastine  Cisplatin    Cytarabine  
## <0 行> (或0-长度的row.names)

药物反应预测

读取数据

读取GDSC训练表达式数据 (trainingExprData),行名是基因,列名是样本。

读取GDSC2响应数据(trainingPtype),行名是样本,列名是药物。

读取测试数据 (testExprData),行名作为基因,列名作为样本。

trainingPtype = readRDS(file = "./oncoPredict-main/vignettes/GDSC2_Res.rds")
dim(trainingPtype)
## [1] 805 198
trainingExprData = readRDS(file = "./oncoPredict-main/vignettes/GDSC2_Expr_short.rds")
dim(trainingExprData)
## [1] 500 200
trainingPtype <- exp(trainingPtype)
testExprData = as.matrix(read.table("./oncoPredict-main/vignettes/prostate_test_data.txt",
    check.names = T, header = TRUE, row.names = 1))
dim(testExprData)
## [1] 1000   20

calcPhenotype()预测药物反应

参数说明:

bathchCorrect: 当您使用微阵列训练数据在微阵列测试数据上构建模型时,可以使用"eb"。

powerTransformPhenotype: 确定是否对表型数据进行功率转换。

removeLowVaryingGenes: 确定要去除的低变异基因的百分比。

removeLowVaringGenesFrom: 确定去除低变异基因的方法。

minNumSamples: 确定所需训练样本的最小数量。

selection: 确定你想如何处理重复的基因id。

pcr: 表明您是否愿意使用PCA进行特征/基因还原。选项为“TRUE”和“FALSE”。

report_pc: 指示是否要输出主成分。选项为“TRUE”和“FALSE”。

cc: 说明是否需要生物标记物发现的相关系数。这些是所有样本中给定的感兴趣基因与样本中给定的药物反应之间的相关性。可以对这些相关性进行排序,以获得一个排序相关性,从而确定高度相关的药物-基因关联。

percent: 如果pcr=TRUE,指示希望主成分反映的(训练数据的)可变性百分比。

set.seed(12345)
calcPhenotype(trainingExprData = trainingExprData, trainingPtype = trainingPtype,
    testExprData = testExprData, batchCorrect = "eb", powerTransformPhenotype = TRUE,
    removeLowVaryingGenes = 0.2, minNumSamples = 10, selection = 1, printOutput = TRUE,
    pcr = FALSE, removeLowVaringGenesFrom = "homogenizeData", report_pc = FALSE,
    cc = TRUE, percent = 80, rsq = FALSE)

结果解读及可视化

res <- na.omit(read.csv("./calcPhenotype_Output/DrugPredictions.csv"))
dim(res)
## [1]   6 199
res[1:5, 1:5]
##                  X Camptothecin_1003 Vinblastine_1004 Cisplatin_1005
## 1  TCGA.XJ.A83F.01        0.21999081      0.048605564      58.951168
## 4  TCGA.EJ.A65G.01        0.22044990      0.032263995      57.851630
## 5  TCGA.G9.6354.01        0.22372098      0.051639584      58.308499
## 15 TCGA.CH.5772.01        0.09453957      0.016145505      17.632880
## 18 TCGA.HC.7075.01        0.03630665      0.009231447       8.675793
##    Cytarabine_1006
## 1        11.191910
## 4        12.481973
## 5        11.667669
## 15        4.198271
## 18        2.201560
res <- melt(res, id.vars = "X", value.name = "Value", variable.name = "drug")
res$Value = log10(res$Value)
ggplot(res[1:100, ], aes(x = drug, y = X)) + scale_color_gradientn(values = seq(0,
    3, 0.5), colours = c("#6699CC", "#FFFF99", "#CC3333")) + geom_point(aes(size = Value,
    color = Value)) + theme_bw() + theme(axis.text.x = element_text(angle = 90, hjust = 0.5,
    vjust = 0.5)) + xlab(NULL) + ylab(NULL)

36aaf138e048facf172378de4cd337a0.png

桓峰基因,铸造成功的您!

未来桓峰基因公众号将不间断的推出各种系列生信分析教程,

敬请期待!!

桓峰基因官网正式上线,请大家多多关注,还有很多不足之处,大家多多指正!http://www.kyohogene.com/

桓峰基因和投必得合作,文章润色优惠85折,需要文章润色的老师可以直接到网站输入领取桓峰基因专属优惠券码:KYOHOGENE,然后上传,付款时选择桓峰基因优惠券即可享受85折优惠哦!https://www.topeditsci.com/

0b04f3bbf7ecd65c86e7dbad55fb9b8d.png

  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 药物敏感性分析是一种基于基因组学的方法,用于预测个体对药物敏感性。在R语言中,可以使用多种包来实现药物敏感性分析,如pRRophetic、GDSCTools、DrugScrn等。下面是一个使用pRRophetic包进行药物敏感性分析的示例代码: 首先需要安装pRRophetic包: ``` r install.packages("pRRophetic") ``` 然后加载pRRophetic包: ``` r library(pRRophetic) ``` 接下来,我们需要准备数据。pRRophetic包提供了一些内置的药物-基因表达数据集,可以直接使用。例如,我们可以使用“nci60”数据集,该数据集包含60种癌症细胞系的基因表达数据和对多种化疗药物敏感性数据: ``` r data(nci60) head(nci60$ge) head(nci60$drug) head(nci60$resp) ``` 其中,nci60$ge是基因表达数据,nci60$drug药物信息数据,nci60$resp是细胞系对药物的响应数据。 接下来,我们需要选择一个药物,以及相应的基因表达数据和敏感性数据。这里以“Doxorubicin”为例: ``` r drug_name <- "Doxorubicin" drug_ge <- nci60$ge drug_resp <- nci60$resp[[drug_name]] ``` 接下来,我们需要对基因表达数据进行预处理。pRRophetic包提供了一个函数“processGEdata”来完成这一过程: ``` r processed_ge <- processGEdata(drug_ge, verbose=FALSE) ``` 接下来,我们可以使用“predict”函数来进行药物敏感性预测: ``` r pred_resp <- predict(processed_ge, drug_name, verbose=FALSE)$predResp ``` 最后,我们可以将预测结果与真实结果进行比较,以评估预测的准确性: ``` r cor(pred_resp, drug_resp) ``` 这个例子中,我们使用pRRophetic包实现了对“Doxorubicin”药物敏感性预测。如果想对其他药物进行预测,只需要修改“drug_name”变量即可。 ### 回答2: 药物敏感性分析是通过对药物与生物体之间的相互作用进行研究,来判断药物对个体的疗效和副作用的分析方法。R语言是一种功能强大的统计分析和可视化编程语言,适用于药物敏感性分析。 以下是药物敏感性分析的详细代码示例: 首先,需要加载所需的R包,如"Dplyr"和"ggplot2": ```R library(dplyr) library(ggplot2) ``` 然后,从数据集中读取相关数据,数据集包括了药物浓度、生物体的响应以及其他影响因素: ```R data <- read.csv("data.csv") ``` 接下来,进行数据的预处理,如去除缺失值等: ```R data <- na.omit(data) ``` 然后,可以进行药物敏感性分析,例如计算药物在不同浓度下的平均生物体响应: ```R result <- data %>% group_by(DrugConcentration) %>% summarise(AvgResponse = mean(Response)) ``` 最后,可以使用ggplot2来进行可视化,绘制药物浓度与平均生物体响应之间的关系图: ```R ggplot(result, aes(x = DrugConcentration, y = AvgResponse)) + geom_line() + labs(x = "Drug Concentration", y = "Average Response") ``` 以上就是药物敏感性分析的详细代码示例。通过加载所需的R包、读取数据、预处理数据、进行分析和可视化,可以对药物敏感性进行分析和展示。当然,具体的代码可能根据你的数据和分析需求做一些调整。 ### 回答3: 药物敏感性分析是用来评估不同药物对个体的药物反应差异。R语言是一种适合处理数据分析的编程语言,可以用来进行药物敏感性分析。 以下是一个简单的药物敏感性分析的R语言代码示例: ```R # 安装和加载所需的R包 install.packages("dplyr") # 安装dplyr包 install.packages("tidyr") # 安装tidyr包 install.packages("ggplot2") # 安装ggplot2包 # 加载所需的包 library(dplyr) library(tidyr) library(ggplot2) # 读取和处理数据 data <- read.csv("drug_data.csv") # 读取数据文件 data <- data %>% select(Patient, Drug, Sensitivity) # 选择需要的变量 # 创建药物敏感性汇总表格 summary_table <- data %>% group_by(Drug) %>% summarise(Mean_Sensitivity = mean(Sensitivity), Median_Sensitivity = median(Sensitivity), Min_Sensitivity = min(Sensitivity), Max_Sensitivity = max(Sensitivity)) # 创建药物敏感性箱线图 boxplot <- ggplot(data, aes(x = Drug, y = Sensitivity)) + geom_boxplot() + labs(title = "药物敏感性分析", x = "药物", y = "敏感性") # 展示结果 print(summary_table) print(boxplot) ``` 上述代码假设数据存储在名为 "drug_data.csv" 的CSV文件中,包含三列变量:病人编号(Patient)、药物名称(Drug)和敏感性(Sensitivity)。代码首先读取数据文件,然后根据药物名称分组,计算每个药物敏感性指标(平均值、中位数、最小值和最大值)。接着,代码使用ggplot2包创建了一个药物敏感性的箱线图,用于可视化药物敏感性的分布情况。 请根据具体需求和数据格式进行相应调整,上述代码仅为示例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值