R语言生存分析

欢迎来到医科研,这里是白介素2的读书笔记,跟我一起聊临床与科研的故事, 生物医学数据挖掘,R语言,TCGA、GEO数据挖掘。

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

(0)

相关推荐

  • 为何要劳民伤财做同样的数据

    文章<BRCA1 Promoter Methylation Status in 1031 Primary Breast Cancers Predicts Favorable Outcomes F ...

  • 生存分析就是一个任人打扮的小姑凉

    最近接到粉丝的TCGA分析需求,想看看指定基因在指定癌症是否具有临床意义(也就是生存分析是否有统计学显著效果咯!)其实很早以前我在生信技能树就号召粉丝讨论过这个问题:集思广益-生存分析可以随心所欲根据 ...

  • 对“不同数据来源的生存分析比较”的补充说明

    前面我的学徒的一个推文:不同数据来源的生存分析比较 , 代码细节和原理展现做的非常棒,但是因为学徒的TCGA数据库知识不熟悉,所以被捉到了一个bug,先更正一下: 有留言说:"TCGA里病人 ...

  • 集思广益-生存分析可以随心所欲根据表达量分组吗

    很久以前我们提到过TCGA的各种网页数据库的生存分析结果冲突的问题 TCGA数据库生存分析的网页工具哪家强 现在又有人提出来一个新的问题,如下:   根据基因表达量的中位值把样本分成高低表达量的组别, ...

  • 乳腺癌的IHC分类和PAM50分型的差异情况

    既然大家感兴趣学徒培养细节,就连载一些学徒任务细节吧! 生信技能树超级VIP入场券发放(点我领取) 拿到超级VIP入场券的学徒,就可以无限制参与全部生信技能树举办的线下课程,包括LINUX,R,GEO ...

  • 引入肿瘤分子分型能提供临床分期的预后能力吗

    前面的教程 是否所有的癌症的TNM分期都有生存预测意义 ,我们指出来了的 MESO 的ajcc_pathologic_tumor_stage  这个临床指标居然是无法区分生存的,引起了大家的热烈讨论! ...

  • R生存分析|关心的变量KM曲线不显著,还有救吗?

    如果想查看某些因素,如年龄,性别,分期,肿瘤数目,大小,实验室指标 或者 通过生信手(tao)段(lu)构建的模型和评分是否对预后有影响时候,经常会把连续变量变为分类变量,然后绘制KM曲线或者列线图等 ...

  • R语言生存分析: 时变竞争风险模型分析淋巴瘤患者

    原文链接:http://tecdat.cn/?p=22422 在本文中,我们描述了灵活的竞争风险回归模型.回归模型被指定为转移概率,也就是竞争性风险设置中的累积发生率.该模型包含Fine和Gray(1 ...

  • R语言生存分析可视化分析

    完整原文链接:http://tecdat.cn/?p=5438 生存分析指的是一系列用来探究所感兴趣的事件的发生的时间的统计方法. 生存分析被用于各种领域,例如: 癌症研究为患者生存时间分析, &qu ...

  • R语言生存分析-Cox比例风险模型诊断

    欢迎来到医科研,这里是白介素2的读书笔记,跟我一起聊临床与科研的故事, 生物医学数据挖掘,R语言,TCGA.GEO数据挖掘.    Cox比例风险模型诊断   Cox比例风险模型的建立是基于几个假设之 ...

  • 浅析R语言单因素方差分析中的多重比较

    浅析单因素方差分析中的多重比较 本脚本侧重于单因素方差分析中多重比较方法的运用; 就不展示数据正态性及齐次性的运算了(默认都符合,一般理化数据是都符合的); 有的人喜欢用Tukey检验,但会遇到一些不 ...

  • R语言meta分析(1)meta包

    介绍从广义上讲,meta分析是指将几项研究结果结合起来的统计分析.这一术语是由统计学家Gene V Glass在1976年向美国教育研究协会发表演讲中创造的.从那时起,meta分析不仅成为医学研究的重 ...

  • R语言GSEA分析(一)

    安装并导入要用到的R包 BiocManager::install("clusterProfiler") #感谢Y叔的clusterprofiler包 BiocManager::in ...

  • R语言GSEA分析(二)

    转换基因ID 如基因名是symbol,需要将基因ID转换为Entrez ID格式.Entrez ID实际上是指的Entrez gene ID,是对应于染色体上一个gene location的.每一个发 ...

  • R语言GSEA分析(三)

    GAEA df_all_sort <- df_all[order(df_all$logFC, decreasing = T),]#先按照logFC降序排序 gene_fc = df_all_so ...

  • 【R语言Meta分析】连续性变量的Meta分析

    系统评价/Meta分析指全面收集所有相关研究并逐个进行严格评价和分析,再用定性或定量合成的方法对资料进行处理得出综合结论的研究方法.实现Meta分析数据统计的软件种类繁杂,但以R最为著名,可实现多种类 ...