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

Switch to side-by-side view

--- a
+++ b/run_survival_analysis.R
@@ -0,0 +1,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"))
+