小果教你三分钟看懂多条线共存的ROC图的R语言画法
尔云间 一个专门做科研的团队

小果以前画过ROC图,挺简单的,就是读入样本分组信息和基因表达量,就可以画出曲线图,并计算出ROC值了,但有时后小果想要在一张图上展示多个基因,那应该怎么做呢,小果去查了一下资料,发现其实也挺简单的,下面就跟着小果一起来看看吧。
首先是启动包,读入文件,文件大概长这样

代码如下:
data=read.table("乳腺癌铁丝网/ROC/15852_ROC.txt", sep="\t",row.names = 1,header = T)
library(pROC)
roc1=roc(data$group,data$EGFR) #根据分组信息和基因表达量计算曲线信息
#Setting levels: control = cancer, case = normal
#Setting direction: controls < cases
plot(roc1,col="red",legacy.axes=T) #画出ROC曲线,legacy.axes=T可以改变坐标轴,就是把横坐标改成1-specificity的形式
roc2=roc(data$group,data$ATF3)
#Setting levels: control = cancer, case = normal
#Setting direction: controls < cases
roc3=roc(data$group,data$ALDH3A2)
#Setting levels: control = cancer, case = normal
#Setting direction: controls < cases
roc4=roc(data$group,data$ADIPOQ)
#Setting levels: control = cancer, case = normal
#Setting direction: controls < cases
roc5=roc(data$group,data$RBMS1)
#Setting levels: control = cancer, case = normal
#Setting direction: controls < cases
plot(roc2,col="blue",add=T) #添加ROC曲线,add=T就表示在原来的基础上添加曲线而不是重画一张。Col参数是用来设置颜色的,一般情况下为了区分,不同的曲线要用不同的颜色。
plot(roc3,col="green",add=T)
plot(roc4,col="black",add=T)
plot(roc5,col="yellow",add=T)
round(auc(roc1),3)##AUC
[1] 0.96
round(ci(roc1),3)##95%CI
[1] 0.949 0.960 0.972
round(auc(roc2),3)##AUC
[1] 0.87
round(ci(roc2),3)##95%CI
[1] 0.831 0.870 0.908
round(auc(roc3),3)##AUC
[1] 0.79
round(ci(roc3),3)##95%CI
[1] 0.758 0.790 0.821
round(auc(roc4),3)##AUC
[1] 0.929
round(ci(roc4),3)##95%CI
[1] 0.902 0.929 0.957
round(auc(roc5),3)##AUC
[1] 0.884
round(ci(roc5),3)##95%CI
[1] 0.855 0.884 0.912
legend("bottomright", legend=c("EGFR-AUC0.96(0.949-0.972)","ATF3-AUC0.87(0.831-0.908)","ALDH3A2-AUC0.79(0.758-0.821)","ADIPOQ-AUC0.929(0.902-0.957)","RBMS1-AUC0.884(0.855-0.912)"), col=c("red","blue","green","black","yellow"),lty=1) #添加坐标,主要是上面计算出的AUC值等信息
这样一个有多条ROC曲线共存的ROC图就画好了,小伙伴们看看,是不是挺简单的,有需要的赶紧去画一张吧!

好了,今天的内容就是这样了,小伙伴们有什么问题的话欢迎来和小果分享讨论哟。
推荐阅读
