R语言之生信④TCGA生存分析1

目录

R语言之生信①差异基因分析1
R语言之生信②差异基因分析2
R语言之生信③差异基因分析3
R语言之生信④TCGA生存分析1
R语言之生信⑤TCGA生存分析2
R语言之生信⑥TCGA生存分析3
R语言之生信⑦Cox比例风险模型(单因素)

=========================================================

正文

生存分析(Survival analysis)是指根据试验或调查得到的数据对生物或人的生存时间进行分析和推断,研究生存时间和结局与众多影响因素间关系及其程度大小的方法,也称生存率分析或存活率分析。简单来说生存分析是研究生存时间的分布规律,以及生存时间和相关因素之间关系的一种统计分析方法

生存分析应用场合

  • 某些临床特征对病人的影响有哪些
  • 病人个体三年存活率有多少
  • 两组病人之间的生存率有什么差异

生存分析使用的方法:

Kaplan-Meier plots to visualize survival curves(根据生存时间分布,估计生存率以及中位生存时间,以生存曲线方式展示,从而分析生存特征,一般用Kaplan-Meier法,还有寿命法)
Log-rank test to compare the survival curves of two or more groups(通过比较两组或者多组之间的的生存曲线,一般是生存率及其标准误,从而研究之间的差异,一般用log rank检验)
Cox proportional hazards regression to describe the effect of variables on survival(用Cox风险比例模型来分析变量对生存的影响,可以两个及两个以上的因素,很常用)
所以一般做生存分析,可以用KM(Kaplan-Meier)方法估计生存率,做生存曲线,然后可以根据分组检验一下多组间生存曲线是否有显著的差异,最后用Cox风险比例模型来研究下某个因素对生存的影响

基本术语:

Event(事件):在医学研究中可以使死亡、复发、进展等。
time(生存时间):一般指某个事件的开始到终止这段事件,如癌症研究中的疾病确诊到缓解或者死亡,其中有几个比较重要的肿瘤临床研试验终点:
OS(overall survival):指从开始到任意原因死亡的时间,我们一般见到的5年生存率、10年生存率都是基于OS的
progression-free survival(PFS,无进展生存期):指从开始到肿瘤发生任意进展或者发生死亡的时间;PFS相比OS包含了恶化这个概念,可用于评估一些治疗的临床效益
time to progress(TTP,疾病进展时间):从开始到肿瘤发生任意进展或者进展前死亡的时间;TTP相比PFS只包含了肿瘤的恶化,不包含死亡
disease-free survival(DFS,无病生存期):指从开始到肿瘤复发或者任何原因死亡的时间;常用于根治性手术治疗或放疗后的辅助治疗,如乳腺癌术后内分泌疗法等:
event free survival(EFS,无事件生存期):指从开始到发生任何事件的时间,这里的事件包括肿瘤进展,死亡,治疗方案的改变,致死副作用等(主要用于病程较长的恶性肿瘤、或该实验方案危险性高等情况下)
Censoring(删失):这经常会在临床资料中看到,生存分析中也有其对应的参数,一般指不是由死亡引起的的数据丢失,可能是失访,可能是非正常原因退出,可能是时间终止而事件未发等等,一般在展示时以‘+’号显示

左删失:只知道实际生存时间小于观察到的生存时间
右删失:只知道实际生存时间大于观察到的生存时间
区间删失:只知道实际生存时间在某个时间区间范围内

分类方法

生存分析的方法一般可以分为三类:

  • 参数法:知道生存时间的分布模型,然后根据数据来估计模型参数,最后以分布模型来计算生存率
  • 非参数法:不需要生存时间分布,根据样本统计量来估计生存率,常见方法Kaplan-Meier法(乘积极限法)、寿命法
  • 半参数法:也不需要生存时间的分布,但最终是通过模型来评估影响生存率的因素,最为常见的是Cox回归模型

而生存曲线(survival curve)则是将每个时间点的生存率连接在一起的曲线,一般随访时间为X轴,生存率为Y轴;曲线平滑则说明高生存率,反之则低生存率;中位生存率(median survival time)越长,则说明预后较好

  • 非参数法
    寿命表(Life Table)
    寿命表时描述一段时间内生存状况、终点事件和生存概率的表格,需计算累积生存概率即每一步生存概率的乘积,可完成对病例随访资料在任意指定时点的生存状况评价。survival包中包括了所有生存分析所必须的函数,生存分析主要是把数据放入Surv object,通过Surv()函数做进一步分析。Surv object是将时间和生存状况的信息合并在一个简单的对象内,Surv(time, time2, event,type=c(‘right’, ‘left’, ‘interval’, ‘counting’, ‘interval2’, ‘mstate’),origin=0),time为生存时间,time2为区间删失的结束时间,event为生存状况,生存状况变量必须是数值或者逻辑型的。如果时数值型,则有两个选项,0表示删失,1表示终点事件,或者1表示删失,2表示终点事件。如果时逻辑型的,则FALSE表示删失,True表示终点事件。type为删失的类型有右删失、左删失、区间删失、第一类区间删失、第二类区间删失。

示例:

使用一个包含免疫浸润以及复发随访记录的数据,探究该免疫指标具有无复发生存意义

setwd("E:\\multi")

imm_info <- read.csv("blca_immu.csv",header = T,row.names = 1)


library(survival)
library(survminer)
library(dplyr)
require("survival")

imm_info <- imm_info %>%
  dplyr::select(Lymphocyte_Infiltration_Signature.Score,PFI,PFI.Time)
names(imm_info)[1] <- 'infiltra'

整理数据,将代表复发时间,复发状态,以及想预测免疫指标提取出来。



imm_info <- na.omit( imm_info)
imm_info$infiltra <- ifelse(imm_info$infiltra   > median(imm_info[,"infiltra"]),
                         'high','low')

fit <- survfit(Surv(PFI.Time, PFI) ~ infiltra, data = imm_info)

将免疫指标二分类,以中位值为cutoff,将数据分为高表达和低表达


ggsurv <- ggsurvplot(fit, data = imm_info,
                     pval = T,
                     xlim = c(0,2000),  
                     break.time.by = 500,  
                     xlab = "Time in days",
                     palette = c("#E41A1C", "#377EB8"))

ggsurv <- ggpar( ggsurv,
                 font.y  = c(16, "bold"), 
                 font.x  = c(16, "bold"),
                 legend = "top",
                 font.legend = c(16, "bold"))

ggsurv

作图。


R语言之生信④TCGA生存分析1_第1张图片

你可能感兴趣的:(R语言之生信④TCGA生存分析1)