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()
}
}
网友评论