survivalAnalysis:生存分析和相关图的高级接口

导语

右删失数据:在随访中,观察起始时间已知,但终点事件的发生时间未知,无法获取具体的生存时间,这种类型的生存时间称为右删失。右删失是实际研究中最常见的数据删失类型。进行生存分析需要标准的分析方法,常见于临床肿瘤学的试验报告论文中。

协变量:在实验的设计中,协变量是一个独立变量(控制变量),不为实验者所操纵,但仍影响实验结果,如年龄。

survivalAnalysis包介绍
#Depends: R (>= 3.3.0)#Date/Publication: 2020-04-17
install.packages("survivalAnalysis")library("survivalAnalysis")help(package="survivalAnalysis")#全是套路~~~
1. analyse_multivariate:使用多重协变量对右删失数据进行Cox回归。
library(magrittr);library(dplyr)survival::colon %>% analyse_multivariate(vars(time, status), vars(rx, sex, age, obstruct, perfor, nodes, differ, extent)) %>% forest_plot()#%>%:dplyr包中的管道传参
data=survival::colonhead(data)#数据要求非常简单,包含“time”&“status”列和其他病例信息的数据框aa1=analyse_multivariate(data=data,time_status=c("time","status"),  covariates=c("rx", "sex", "age", "obstruct", "perfor", "nodes", "differ", "extent"));print(aa1)#sort_frame_by:包含一个或多个符号列名的vars()列表。可以指定应该根据输出结果中哪些变量排序,默认HR。
forest_plot(aa1)

 

2. analyse_survival:使用单协变量或无协变量对右删失数据进行生存分析。

data=survival::colonhead(data)
aa2=analyse_survival(data=data,time_status=c("time","status"),by="sex"#by_label_map = NULL,#by_order_vector = NULL,#cox_reference_level = NULL,#p_adjust_method = "none")
forest_plot(aa2,use_one_hot=T)

adhere:黏附临近组织,显著的风险因素

 

3. forest_plot :根据生存分析结果创建森林图。单变量结果和多变量均可。

#aa1=analyse_multivariate(data=data,time_status=c("time","status"),covariates=c("rx", "sex", "age", "obstruct", "perfor", "nodes", "differ", "extent"))
forest_plot(aa1,use_one_hot = F,#如果为TRUE,将接受来自analyse_survival的单变量结果。relative_widths=c(2,1,2),#图、标签、图、值的宽度的关系,默认c(1,1,1)。labels_displayed=c("endpoint","factor","n"),#确定左表中显示的内容和顺序label_headers=c(endpoint="Endpoint",factor="Subgroup",n="n"),values_displayed=c("HR","CI","p"),#确定右表中显示的内容和顺序value_headers=c(HR="HR",CI="CI",p="p",n="n",subgroup_n="n"),p_lessthan_cutoff=0.001,#p值title="Survival analysis forest plot",#加标题title_relative_height=0.8)

 

4. forest_plot_grid:在一个画板上创建多个森林图。

pp=forest_plot(aa1)forest_plot_grid(list(pp,pp,pp),nrow = NULL, ncol = NULL,#行列的数目)

 

5. kaplan_meier_plot:根据生存结果绘制Kaplan Meier图。

kaplan_meier_plot(aa2,#analyse_survival生存分析结果break.time.by="breakByMonth",#breakByYear,breakByHalfYear,breakByQuarterYear,xlab=".OS.months",#xlab: {.OS,.PFS,.TTF,.DFS}.{years,months,days}hazard.ratio=TRUE,risk.table=TRUE,ggtheme=ggplot2::theme_bw(10),#table.layout="clean",)

看这密密麻麻的数字,陷入了自我怀疑……其实修改一个参数就好了

kaplan_meier_plot(aa2,#break.time.by="breakByYear",#改了这个参数值xlab=".OS.years",hazard.ratio=TRUE,risk.table=TRUE,ggtheme=ggplot2::theme_bw(10),table.layout="clean",#去掉多余的网格边框)

6. kaplan_meier_grid:kaplan meier的网格图。

aa2=analyse_survival(data=data,time_status=c("time","status"),by="sex")aa3=analyse_survival(data=data,time_status=c("time","status"),by="node4")aa4=analyse_survival(data=data,time_status=c("time","status"),by="adhere")
kmg=kaplan_meier_grid(list(aa2,aa3,aa4),break.time.by="breakByYear",nrow = 1,# ncol = NULL,行列数目legend.title=c("sex","node4","adhere"),#图例,其他ggsurvplot支持的所有参数都可以传递给kaplan_meier_grid  title = "kaplan_meier_plot",surv.plot.height = 5,risk.table=TRUE,risk.table.height = 3,ncensor.plot.height = 1,)
print(kmg)#展示图片ggsave("kaplan_meier_grid.pdf", kmg)#保存

管道函数%>%

不知道大家是否注意到1.中有这样一行代码

library(dplyr)
survival::colon %>%analyse_multivariate(vars(time, status), vars(rx, sex, age, obstruct, perfor, nodes, differ, extent)) %>%forest_plot()
####简单解释一下#第一个%>%data=survival::colon#传递给vars()提取需要的数据列,为analyse_multivariate()提供参数am=analyse_multivariate(data=data,time_status=c("time","status"),  covariates=c("rx", "sex", "age", "obstruct", "perfor", "nodes", "differ", "extent"))#第二个%>%#将上一步Cox回归分析结果传递给forest_plot()用于做图forest_plot(am)

%>%是dplyr包的管道函数,能够将上一步的结果传递给下一步的函数作为参数,具体用法就是 x %>% f(y)—> f(x, y)。省略中间步骤,看起来更加简洁,省空间省内存啊有没有。

小编总结

survivalAnalysis包是一个进行生存分析的高级接口,包括Kaplan-Meier分析和log-rank检验以及(多重协变量(analyse_multivariate())Cox回归等。在’survminer’包的基础上构建Kaplan-Meier绘图功能,实现可定制的forest绘图。上周我们介绍过survminer包,主要功能函数ggsurvplot()中的参数时可以在survivalAnalysis包中kaplan_meier_plot(),kaplan_meier_grid()进行传递使用。且支持在管道中使用

生物信息学

R包survminer画生存曲线的实用技能

2020-8-28 0:53:30

生物信息学

单细胞测序:scRNA-seq数据的标准化处理

2020-8-28 0:59:25

加入Q群
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索