临床医学中的生存分析|如何R作生存曲线图?|在线作生存曲线图
生信草堂
将会与更多的优秀微信公众号合作,把更优秀的微信推文呈现给大家,希望可以帮助读者更多的了解生信技术,培养和提高读者的生信分析能力!
号外,号外,号外
你想和生信分析大神做好朋友么?
你想认识更多爱好生信分析的小伙伴么?
你想让自己的生信分析走上快车道么?
那就赶快加入我们的生信交流微信群吧!
正确加入我们的模式是:
添加我们的微信bioinformatics88为好友
标注“加入生信草堂交流群”
在群里请大家注明自己本名,单位,研究领域
便于小编管理
生存分析起源于医学与生物科学,研究的“事件”是“生存与死亡”,生存分析因此为得名。如今生存分析被广泛应用到社会学、经济学、工程学等学科上,在不同学科也有不同的叫法:如事件历史分析、失效时间分析、或可靠性分析。例如,人们可以利用生存分析去预测信息在社交网络的传播程度,或者去预测用户流失的概率。 还可以预测某个系统或产品是否正常工作(相对于失效或故障)。
生信草堂专注于医学和生物科研领域的数据分析方法分享和科研思路探索,因此这里我们向大家介绍生存分析在医学和生物学中的应用。首先,什么是生存?生存的意义很广泛,它可以指人或动物的存活(相对于死亡),可以是患者的病情正处于缓解状态(相对于再次复发或恶化)等等。 其次,生存分析(survival analysis)顾名思义是用来研究个体的存活概率与时间的关系。 这里“个体的存活”可以推广抽象成某些关注的事件。所以生存分析就成了研究某一事件与它的发生时间的联系的方法。
生存分析的几个基本概念
生存时间: 广义的生存时间指从某个起始事件开始,到某个终点事件的发生所经历的时间,也称为失效时间。
生存结局:分为“死亡”与删失两类,“死亡”是感兴趣的终点事件,其它终点事件或生存结局都归类为删失(Censoring)。
注意:相比于logistics regression方法,生存分析有个很大的优点是可以处理缺失数据(只有个体的部分数据)。另外,生存分析研究中,删失值所占的比例不宜太大,且删失的模式应该是随机的。
生存分析的主要研究内容包括三个方面
1)对生存状况进行统计描述,例如生存概率、生存率、中位生存期等。
2)寻找影响生存时间的“危险因素”和“保护因素”。
3)估计生存率和生存时间的长短,进行预后估计分析
目前比较火的公共数据库挖掘,为我们的科学研究提供了很多便利之处。常用的数据库包括GEO、TCGA、Oncomine、ArrayExpress、SEER、MIMIC等。我们可以利用这些数据库,辅助我们的科研。例如,重新整合多个数据集发现新的现象;对自己的结果进行验证;基金申请的预实验;确定新的研究方向。例如,我们可以找到TCGA mRNA表达数据,进行差异基因的筛选,再进行预后随访数据处理,进行预后生存分析,确定目的基因。我们可以总结为三个步骤:1. 找差异基因;2. 分析相关性;3. 预后分析。
这里我们先给大家介绍一个在线的生存分析网站:Kaplan Meier Plotter(http://kmplot.com/analysis/),打开后页面如下:
这个网站包含了54,675个基因的10,461个癌症样本的生存数据。可以进行乳腺癌、肺癌、卵巢癌、胃癌和肝癌相关的mRNA和miRNA的生存分析。操作简单快捷,如点击
在线数据库操作方便快捷,但是比较死板,只能做出里面含有的数据。我们可以利用R语言进行灵活画图。
如下是R语言作图的例子:
install.packages("survival") #安装survival包
install.packages("KMsurv") #安装KMsurv包
library(survival)
library(KMsurv)
###输入研究数据
data(tongue)
attach(tongue)
###1)对于同一组数据,可以观察其生存曲线以及上下95%的置信区间
type<-tongue[,1]
my.surv <- Surv(time[type==1], delta[type==1])
fit<-survfit(my.surv~1)
plot(fit, main="Kaplan-Meier estimate with 95% confidence bounds",xlab="time", ylab="survival function")
###2)可以进行不同组之间的差异比较,得到卡方值以及pvalue
data(tongue)
attach(tongue)
my.surv <- Surv(time , delta )
fit<-survfit(my.surv~type)
plot(fit, main="Kaplan-Meier curves of two groups",xlab="time", ylab="survival function")
survdiff(formula = Surv(time, delta)~ type, data = tongue, rho = 0)
本文为生信草堂原创,欢迎个人转发分享,其它媒体或网站如需转载,请在正文前注明转自生信草堂并联系bioinformatics88