R语言生存分析01

作者: 医科研 | 来源:发表于2019-07-10 11:08 被阅读85次

R语言生存分析

生存分析是医学数据挖掘中的重要内容 R语言中用于生存分析的包主要有survival与survminer

library(survival)
library(survminer)
library(RTCGA.clinical)

提取生存信息

应用RTCGA.clinical包

Sys.setlocale('LC_ALL','C')
## [1] "C"
survivalTCGA(BRCA.clinical, OV.clinical,
             extract.cols = "admin.disease_code") -> BRCAOV.survInfo
head(BRCAOV.survInfo)
##   times bcr_patient_barcode patient.vital_status admin.disease_code
## 1  3767        TCGA-3C-AAAU                    0               brca
## 2  3801        TCGA-3C-AALI                    0               brca
## 3  1228        TCGA-3C-AALJ                    0               brca
## 4  1217        TCGA-3C-AALK                    0               brca
## 5   158        TCGA-4H-AAAK                    0               brca
## 6  1477        TCGA-5L-AAT0                    0               brca

Surv(OS_time,status)~factor(分组因素)

构建生存对象需要生存时间,生存状态,data

fit <- survfit(Surv(times, patient.vital_status) ~ admin.disease_code,
               data = BRCAOV.survInfo)
fit
## Call: survfit(formula = Surv(times, patient.vital_status) ~ admin.disease_code, 
##     data = BRCAOV.survInfo)
## 
##                            n events median 0.95LCL 0.95UCL
## admin.disease_code=brca 1098    104   3472    3126    4456
## admin.disease_code=ov    576    297   1354    1229    1470

survminer包可视化:生存对象,data,risk.table是风险表

survminer::ggsurvplot(fit, data = BRCAOV.survInfo, risk.table = TRUE)
Fig1

对生存曲线进一步细节控制美化

调整参数

ggsurvplot(
   fit,                     # 生存对象
   data = BRCAOV.survInfo,  # data. 
   risk.table = TRUE,       # 风险表.
   pval = TRUE,             # p-value of log-rank test.
   conf.int = TRUE,         # 95%CI 
                            # 生存曲线的点估计.
   xlim = c(0,2000),        # present narrower X axis, but not affect
                            # survival estimates.
   break.time.by = 500,     # break X axis in time intervals by 500.
   ggtheme = theme_minimal(), # 主题定制.
 risk.table.y.text.col = T, # colour risk table text annotations.
  risk.table.y.text = FALSE # show bars instead of names in text annotations
                            # in legend of risk table
)
image.png

基础版本的生存曲线

library("survival")
head(lung)
##   inst time status age sex ph.ecog ph.karno pat.karno meal.cal wt.loss
## 1    3  306      2  74   1       1       90       100     1175      NA
## 2    3  455      2  68   1       0       90        90     1225      15
## 3    3 1010      1  56   1       0       90        90       NA      15
## 4    5  210      2  57   1       1       90        60     1150      11
## 5    1  883      2  60   1       0      100        90       NA       0
## 6   12 1022      1  74   1       1       50        80      513       0
fit<- survfit(Surv(time, status) ~ sex, data = lung)

绘图

ggsurvplot(fit, data = lung)
image.png

定制版的生存曲线

ggsurvplot(fit, data = lung,
   title = "Survival curves", subtitle = "Based on Kaplan-Meier estimates",#标题
   caption = "created with survminer",#说明-右下角
   font.title = c(16, "bold", "darkblue"),#标题字体
   font.subtitle = c(15, "bold.italic", "purple"),#副标题字体
   font.caption = c(14, "plain", "orange"),#说明字体
   font.x = c(14, "bold.italic", "red"),#x轴字体
   font.y = c(14, "bold.italic", "darkred"),#y轴字体
   font.tickslab = c(12, "plain", "darkgreen"))#
image.png

风险表risk.table

ggsurvplot(fit, data = lung, risk.table = TRUE)
image.png

ncens plot-展示删失数据的情况 这个功能在文章里面见得比较少,但是也能画

ggsurvplot(fit, data = lung, risk.table = TRUE, ncensor.plot = TRUE)
image.png

本期内容就到这里,我是白介素2,下期再见

相关阅读:
R语言生存分析-01(本文)
生存曲线
R语言GEO数据挖掘01-数据下载及提取表达矩阵
R语言GEO数据挖掘02-解决GEO数据中的多个探针对应一个基因
R语言GEO数据挖掘03-limma分析差异基因
R语言GEO数据挖掘04-功能富集分析

如果没有时间精力学习代码,推荐了解:零代码数据挖掘课程

转载请注明出处

相关文章

网友评论

    本文标题:R语言生存分析01

    本文链接:https://www.haomeiwen.com/subject/icyzhctx.html