Diff of /run_survival_analysis.R [000000] .. [daa031]

Switch to unified view

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