在上一篇文章:单基因泛癌表达箱线图和配对箱线图展示 中,我们讲解了如何绘制单基因泛癌表达箱线图和配对箱线图。在做完泛癌表达箱线图和配对箱线图之后,往往会跟着显示下单基因或多基因的诊断ROC曲线表明它的诊断性能。
先上效果图
第一步是得到泛癌矩阵。
接下来我们来绘制单基因ROC曲线,以BRCA肿瘤中的PUM1为例:
library(pROC)
library(ggplot2)
BRCA=subset(pandata,Cancer=="BRCA") # 提取BRCA数据
res<-roc(Type~PUM1,data=BRCA,aur=TRUE,
ci=TRUE, # 显示95%CI
#percent=TRUE, # 是否需要以百分比显示
smooth=TRUE,# 是否平滑曲线
levels=c('Normal','Tumor'),direction=">" #设置分组方向
)
p<- ggroc(res, color ="red",legacy.axes = TRUE)+
geom_segment(aes(x = 0, xend = 1, y = 0, yend = 1), color="darkgrey", linetype=4)+
theme_bw() + # 设置背景
ggtitle("PUM1 ROC Curve")+
theme(plot.title = element_text(hjust = 0.5,size = 16),
axis.text=element_text(size=12,colour = "black"),
axis.title.x = element_text(size = 14),
axis.title.y = element_text(size = 14))
p+annotate("text",x=0.75,y=0.25,label=paste("AUC = ", round(res$auc,3)))+
annotate("text",x=0.75,y=0.20,label=paste("95%CI: ", round(res$ci[1],3),'-',round(res$ci[3],3)))
再来个多基因的ROC曲线图:
BRCA=subset(pandata,Cancer=="BRCA")
library(pROC)
res<-roc(Type~PUM1+PERM1+TTLL10,data=BRCA,aur=TRUE,
ci=TRUE, # 显示95%CI
#percent=TRUE, # 是否需要以百分比显示
smooth=TRUE,# 是否平滑曲线
levels=c('Normal','Tumor'),direction=">" #设置分组方向
)
library(ggplot2)
p<- ggroc(res, legacy.axes = TRUE)+
geom_segment(aes(x = 0, xend = 1, y = 0, yend = 1), color="darkgrey", linetype=4)+
theme_bw() + # 设置背景
ggtitle("BCA ROC Curve")+
theme(plot.title = element_text(hjust = 0.5,size = 16),
axis.text=element_text(size=12,colour = "black"),
axis.title.x = element_text(size = 14),
axis.title.y = element_text(size = 14))
p+annotate("text",x=0.85,y=0.055,label=paste("PUM1-AUC = ", round(res$PUM1$auc,3)))+
annotate("text",x=0.85,y=0.15,label=paste("PERM1-AUC = ", round(res$PERM1$auc,3)))+
annotate("text",x=0.85,y=0.25,label=paste("TTLL10-AUC = ", round(res$TTLL10$auc,3)))