|
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 |
|