基于R绘制好看的生存曲线
2020-07-24 本文已影响0人
TrigoHoang
基于R绘制好看的生存曲线
生存分析基本概念
对生存资料进行统计分析的方法都统称为生存分析(survival anaysis),生存分析是能将事件的发展结局(如病人死亡,肿瘤复发或转移等)以及其结局所发生的时间等俩个因素综合一起分析的方法(time to event)。
目前在生信分析中,同好们经常需要用到自己找到markers结合临床分析去观测该基因对临床病人的预后情况。此篇推文是基于log-Rank检验的生存分析的图形绘制
代码分享
以survival里封装的lung数据集为例子画图
rm(list=ls())
#载入生存分析常用的包
library('survival')
library('survminer')
########因为R里的lung数据框很多,
########有的时候出来的lung不是survival封装的,重启再查看即可
data("lung")
view(lung)
因为R里的lung数据框很多,有的时候,它出来的时候不是survival封装的,需要重启再查看,如下是lung数据框:
UvSVLd.png#查看一下lung中各列代表了什么
??lung
UvSEsH.png
大致了解了一下 time是生存时间,status是生存状态,age年龄,sex性别,ph.ecog是ECOG分数,ph.karno是Karnofsky分数,meal.cal是每顿消耗的卡路里,wt.loss是最近六个月消耗的体重
#尝试对性别进行生存分析,看一下男女性别生存是否有差别
attach(lung)
fit <- survfit(Surv(time, status) ~ sex)
#查看一下生存分析的详细的结果
summary(fit)
UvSFzD.png
UvSAQe.png
简单画一下图
plot(fit)
UvSPJK.png
太简陋了,俩线也不知道代表什么,也没有相关P值注释,运用基础包注释一下
plot(fit, lty = c(2,1), col = c(2,1))
legend('bottomright', legend = c('Male','Female'), lty = c(2,1), col = c(2,1))
UvSeeA.png
也还是一般,为了让图秀起来,可以运用封装了ggplot的survminer包
ggsurvplot(fit, data = lung,
pval = T, # 在图上添加log rank检验的p值
conf.int = T,# 添加置信区间
risk.table = T, # 在图下方添加风险表
legend.labs=c("Male","Female"), #表头标签注释男女
legend.title="strata",#表头标签
title="Overall survival",#改一下整体名称
ylab="Cumulative survival (percentage)",xlab = " Time (Days)",#修改X轴Y轴名称
risk.table.col = "strata", # 风险表加颜色
linetype = "strata", # 生存曲线的线型
surv.median.line = "hv", # 标注出中位生存时间
ggtheme = theme_bw(), #背景布局
palette = c("red", "blue")) # 图形颜色风格
这样就绘制了好看有颜值的生存曲线
UvSmdI.png