[daa031]: / run_survival_analysis.R

Download this file

71 lines (59 with data), 3.9 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
library(ggplot2)
require(survival)
require(survminer)
setwd(dirname(rstudioapi::getSourceEditorContext()$path))
######## read survival data #########
surv_data = read.csv("data/Survival_analysis_data.csv")
######## postsurgical ctDNA #########
surv_data.postsurg = subset(surv_data,!is.na(Postsurgical_detection))
## KM plot
# all patients ~ Fig 2a
getsurvplot("Postsurgical_detection","Postsurgical ctDNA",surv_data.postsurg)
# AD patients ~ Supplementary Fig 5a
getsurvplot("Postsurgical_detection","Postsurgical ctDNA, AD",subset(surv_data.postsurg,PathologicalType=="AD"))
# SqCC patients ~ Supplementary Fig 5b
getsurvplot("Postsurgical_detection","Postsurgical ctDNA, SqCC",subset(surv_data.postsurg,PathologicalType=="SqCC"))
## cox
covariates <- c("Sex","Smoking","Age","PathologicalType","Stage","T_stage","N_stage","Differentiation","TP53","EGFR","Postsurgical_detection")
univ_formulas <- sapply(covariates,function(x) as.formula(paste('Surv(DFS,DFS_status)~', x)))
res.postsurg <- lapply( univ_formulas, function(x){summary(coxph(x, data = surv_data.postsurg))})
## multivariate cox regression
summary(coxph(Surv(DFS,DFS_status)~PathologicalType+TP53+T_stage+Postsurgical_detection,subset(surv_data.postsurg,AdjuvantTherapy_status==1)))
####### post-ACT ctDNA ###########
surv_data.ACT = subset(surv_data,AdjuvantTherapy_status==1& !is.na(PostACT_detection))
## KM plot
# all patients ~ Fig 2b
getsurvplot("PostACT_detection","Post-ACT ctDNA",surv_data.ACT)
# AD patients ~ Supplementary Fig 5c
getsurvplot("PostACT_detection","Post-ACT ctDNA, AD",subset(surv_data.ACT,PathologicalType=="AD"))
# SqCC patients ~ Supplementary Fig 5d
getsurvplot("PostACT_detection","Post-ACT ctDNA, SqCC",subset(surv_data.ACT,PathologicalType=="SqCC"))
## cox
covariates <- c("Sex","Smoking","Age","PathologicalType","Stage","T_stage","N_stage","Differentiation","TP53","EGFR","PostACT_detection")
univ_formulas <- sapply(covariates,function(x) as.formula(paste('Surv(DFS,DFS_status)~', x)))
res.postsurg <- lapply( univ_formulas, function(x){summary(coxph(x, data = surv_data.ACT))})
## multivariate cox regression
summary(coxph(Surv(DFS,DFS_status)~PathologicalType+Stage+T_stage+N_stage+PostACT_detection,subset(surv_data.ACT,AdjuvantTherapy_status==1)))
######### longitudinal ctDNA ##########
surv_data.long = subset(surv_data,! PatientID %in% c("P098","P103")) # exclude 2 patients with only pretreatment and postsurgical ctDNA
## KM plot
# all patients ~ Fig 2d
getsurvplot("Longitudinal_Detection","Post-ACT ctDNA",surv_data.long)
# AD patients ~ Supplementary Fig 5e
getsurvplot("Longitudinal_Detection","Post-ACT ctDNA, AD",subset(surv_data.long,PathologicalType=="AD"))
# SqCC patients ~ Supplementary Fig 5f
getsurvplot("Longitudinal_Detection","Post-ACT ctDNA, SqCC",subset(surv_data.long,PathologicalType=="SqCC"))
## cox
covariates <- c("Sex","Smoking","Age","PathologicalType","Stage","T_stage","N_stage","Differentiation","TP53","EGFR","Longitudinal_Detection")
univ_formulas <- sapply(covariates,function(x) as.formula(paste('Surv(DFS,DFS_status)~', x)))
res.postsurg <- lapply( univ_formulas, function(x){summary(coxph(x, data = surv_data.long))})
## multivariate cox regression
summary(coxph(Surv(DFS,DFS_status)~PathologicalType+TP53+T_stage+Stage+Longitudinal_Detection,subset(surv_data.long,AdjuvantTherapy_status==1)))
####### postsurgical ctDNA and ACT treatment ##########
## KM plot
# all patients ~ Fig 2c
getATplot('Postsurgical ctDNA and ACT status',surv_data)
# AD patients ~ Supplementary Fig 8a
getATplot("Postsurgical ctDNA and ACT status, AD",subset(surv_data,PathologicalType=="AD"))
# SqCC patients ~ Supplementary Fig 8b
getATplot("Postsurgical ctDNA and ACT status, SqCC",subset(surv_data,PathologicalType=="SqCC"))