multi-ROC

作者: 天道昭然 | 来源:发表于2020-02-28 16:28 被阅读0次
library(survivalROC)


rocFilter=0.5                                                                          #ROC过滤值
rt=read.table("Independant",header=T,sep="\t",check.names=F,row.names=1)      #读取输入文件

outTab=data.frame()
sigGenes=c("futime","fustat")
for(i in colnames(rt[,3:ncol(rt)])){
       roc=survivalROC(Stime=rt$futime, status=rt$fustat, marker = rt[,i], predict.time =5, method="KM")
       if(roc$AUC>0.5){
            sigGenes=c(sigGenes,i)
            outTab=rbind(outTab,cbind(gene=i,roc=roc$AUC))
            
            rocCol=c("red","green","blue")
                    aucText=c()
                    #绘制5年的ROC曲线
                    pdf(file=paste0("ROC.",i,".pdf"),width=6,height=6)
                    par(oma=c(0.5,1,0,1),font.lab=1.5,font.axis=1.5)
                    roc=survivalROC(Stime=rt$futime, status=rt$fustat, marker = rt[,i], predict.time =5, method="KM")
                    plot(roc$FP, roc$TP, type="l", xlim=c(0,1), ylim=c(0,1),col=rocCol[1], 
                      xlab="False positive rate", ylab="True positive rate",main=i,
                      lwd = 2, cex.main=1.2, cex.lab=1.2, cex.axis=1.2, font=1.2)
                    aucText=c(aucText,paste0("five year"," (AUC=",sprintf("%.3f",roc$AUC),")"))
                    abline(0,1)
                    #绘制3年的ROC曲线
                    roc=survivalROC(Stime=rt$futime, status=rt$fustat, marker = rt[,i], predict.time =3, method="KM")
                    aucText=c(aucText,paste0("three year"," (AUC=",sprintf("%.3f",roc$AUC),")"))
                    lines(roc$FP, roc$TP, type="l", xlim=c(0,1), ylim=c(0,1),col=rocCol[2],lwd = 2)
                    #绘制1年的ROC曲线
                    roc=survivalROC(Stime=rt$futime, status=rt$fustat, marker = rt[,i], predict.time =1, method="KM")
                    aucText=c(aucText,paste0("one year"," (AUC=",sprintf("%.3f",roc$AUC),")"))
                    lines(roc$FP, roc$TP, type="l", xlim=c(0,1), ylim=c(0,1),col=rocCol[3],lwd = 2)
          #绘制图例
                    legend("bottomright", aucText,lwd=2,bty="n",col=rocCol)
                    dev.off()
       }
}

相关文章

网友评论

      本文标题:multi-ROC

      本文链接:https://www.haomeiwen.com/subject/ztvlhhtx.html