rm(list=ls())
setwd("D:/R/R-4.0.5/bin/project_writing/singleGene")
1. 数据处理:
原始数据与cox回归一致,生存时间、状态+相关变量
拟合cox回归模型:cph()
;coxph()
根据拟合模型计算模型预测风险值:predict()
predict(fit,type)
输入2个参数:fit
之前拟合的模型,type='lp'
为生存ROC特有的线性预测将风险值加入原始表格得到最终数据表
2. 建模:
survivalROC
建模,得到的对象包含ROC计算的各种结果,提取FP
、TP
用于做图
函数survivalROC(Stime,status,marker,predict.time,method)
包含五个参数:Stime
,status
生存时间和状态;marker
是之前算出来的预测值;predict.time
为想要计算ROC的时间;method='KM'
生存分析常用描述值KM
3. 绘图:
取x=roc_fit$FP
,y=roc_fit$TP
直接绘图(也可用ggplot);
设置线条属性、坐标轴、标题标签等
加入参考线abline()
加入legend(map,expression,col)
lines(x,y,col)
在原有图片的基础上再加线条,也可用plot(... , add=T)
#载入数据
load("NMG_data_surv.Rdata")
pdNMG <- na.omit(pdNMG)
#加载需要的R包
suppressMessages(library(survivalROC))
suppressMessages(library(rms))
## 建立模型
#建立cox回归模型
dd <- datadist(pdNMG)
options(datadist = "dd")
cph_fit <- cph(Surv(OS.time,OS)~AGE+gender+AJCC_N+AJCC_M+group,data = pdNMG)
#计算预测值
pdNMG$pre <- predict(cph_fit,type = "lp")
#计算真阳、假阳性率
cutoff <- 1095#设置时间
roc_fit <- survivalROC(Stime=pdNMG$OS.time,
status=pdNMG$OS,
marker = pdNMG$pre,
predict.time = cutoff,
method="KM")
## 图形绘制与美化
#install.packages("ggsci")
suppressMessages(library(ggsci))
suppressMessages(library(scales))
pal_jco("default")(10)
## [1] "#0073C2FF" "#EFC000FF" "#868686FF" "#CD534CFF" "#7AA6DCFF" "#003C67FF"
## [7] "#8F7700FF" "#3B3B3BFF" "#A73030FF" "#4A6990FF"
show_col(pal_jco("default")(10))
plot(roc_fit$FP, roc_fit$TP,
type="l",col="#CD534CFF",lwd=2, ##线条设置
xlim=c(0,1), ylim=c(0,1),
xlab=("1 - Specificity"), ##连接
ylab="Sensitivity",
main="Time dependent ROC \n 3years")## \n换行符
abline(0,1,col="gray",lty=2)##线条颜色
legend(0.75,0.25,c(paste("AUC =",round(roc_fit$AUC,3))),
#x.intersp=1, y.intersp=0.8,#行、列间距
lty= 1 ,lwd= 2,col="#CD534CFF",
bty = "n",# 边框的类型
seg.len=1,cex=0.8)
#lines函数在原有基础上继续绘图
#lines(ROC2$FP, ROC2$TP, type="l",col="#0072B5FF",xlim=c(0,1), ylim=c(0,1))
lrm
(logistic regression model),Cox Proportional Hazards:cph
,coxph
;*【注意】建模时只能用Surv(time,event)~val
,不可以使用计算出来的survdata
DCA(cot_fit,times=c())
不写times=
默认为中位数3.绘图:ggDCA
是基于ggplot2
的包
# 4.2.3 DCA 曲线
rm(list=ls())
gc()
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 2275772 121.6 4557192 243.4 2989547 159.7
## Vcells 3859880 29.5 8388608 64.0 8388602 64.0
## 加载R包
#install.packages("ggDCA")
suppressMessages(library(ggplot2))
suppressMessages(library(ggDCA))
suppressMessages(library(foreign))
#install.packages("rmda")
suppressMessages(library(rmda))
suppressMessages(library(rms))
suppressMessages(library(survival))
## 载入数据
load("NMG_data_surv.Rdata")
pdNMG <- na.omit(pdNMG)
dd = datadist(pdNMG)
options(datadist = "dd")
##建模
cox_fit <- cph(Surv(OS.time,OS)~AGE+gender+AJCC_N+AJCC_M+group,data = pdNMG)
DCA <- dca(cox_fit,times=1095)
##绘图
ggplot(DCA)
## Warning: Removed 17 row(s) containing missing values (geom_path).
suppressMessages(library(ggsci))#这个包有sci杂志的配色
#杂志名、色板名、颜色数
pal_jco("default")(10)
## [1] "#0073C2FF" "#EFC000FF" "#868686FF" "#CD534CFF" "#7AA6DCFF" "#003C67FF"
## [7] "#8F7700FF" "#3B3B3BFF" "#A73030FF" "#4A6990FF"
show_col(pal_jco("default")(10))
#有些里面的色板名需查看help
pal_npg("nrc")(10)
## [1] "#E64B35FF" "#4DBBD5FF" "#00A087FF" "#3C5488FF" "#F39B7FFF" "#8491B4FF"
## [7] "#91D1C2FF" "#DC0000FF" "#7E6148FF" "#B09C85FF"
show_col(pal_npg("nrc")(10))
可以使用的杂志有:pal_jco;pal_lancet;pal_npg;pal_nejm;pal_igv等;输出值为16进制色号
使用 show_col()
查看