糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > Cox比例风险回归模型单因素多因素生存分析

Cox比例风险回归模型单因素多因素生存分析

时间:2023-06-24 19:31:12

相关推荐

Cox比例风险回归模型单因素多因素生存分析

TCGA

Cox比例风险回归模型临床应用非常广泛,Cox分析得到的结果是可以直接运用到临床应用的,所以这个分析对癌症临床诊断有非常关键的作用,检测高低风险的关键基因,就可以预测病人5年生存率。

Cox比例风险回归模型,简称Cox回归模型。该模型又英国统计学家D.R.Cox于1972年提出,主要用于肿瘤和其他慢性病的预后分析,也可用于队列研究的病因探索。Cox回归模型能处理多个因素对生存时间影响的问题。

这里用到的癌症是:宫颈鳞状细胞癌CESC(临床307个样本,基因表达有304个样本)

1.TCGA数据库下载宫颈鳞状细胞癌数据

首先需要合并差异基因得到的表达量和临床信息

这个步骤非常重要,也是让很多人感觉麻烦的地方,TCGA数据库样本量大,一个重要的癌症样本300-500个,临床信息又是独立存在,这里用到的是总生存时间和生存状态,得到一个行名是样本,列名包括总生存时间、生存状态、以及所有差异基因,对应的数据是差异基因的表达量,当然这个表达量是处理过的,不是TCGA下载下载下来的原始数据。

如果还没有得到生存时间、生存状态的文件,也没有得到差异基因的表达量,那就要先做差异分析,提取生存时间。简单回顾一下,提取生存时间会用到TCGA数据库下载的metadata.txt文件,这个文件大家很熟悉,可以直接在TCGA数据库下载的;差异分析涉及的内容就比较多,首先要从TCGA数据库下载基因表达数据,然后用perl脚本合并所有样本的表达矩阵,得到矩阵之后,要对ID进行转换,TCGA数据库用的是ensmbol ID,需要转换gene symobl,得到gene symobl的矩阵之后,就可以做差异分析,做了差异分析,就可以接着我们上面的合并工作了。

TCGA临床数据于表达数据合并

2.单因素Cox分析

有了生存时间和表达量合并的文件,就可以做单因素Cox分析,直接用我们的R做分析,得到这样一个表格文件。

单因素cox分析

3.提取单因素P值

Cox单因素分析得到了单个基因的风险比和P值,可以筛选P值一个标准的基因,拿到这些基因,然后把这些基因的表达量筛选出来,还有样本的生存时间和生存状态,放在一个文件里面,用来做这些基因的多因素分析,当然了,筛选的基因不要多,控制在20个左右。简单点说,就是筛选这20个左右基因如同步骤一的文件。

4.多因素Cox分析

利用上面得到的关键基因的表达量做多因素分析,方法和单因素的差不多,只是这时用到了所有基因,而单因素是对每个基因做分析,多因素是用这些关键基因一起分析。可以得到风险值和高低风险分类。

风险表格

5.绘制生存曲线、ROC曲线

用到的都是上面多因素分析得到的数据,用所有样本的风险比例,生存时间,就可以做生存曲线,ROC曲线。风险生存曲线

ROC曲线

6.高低风险热图绘制

这里需要用到两个数据,一个是Cox多因素分析得到的基因,这个是根据Cox公式计算得到的,这里我们得到了7个,提取这7个基因的表达量,还有这7个基因在高低风险的分类,就可以绘制一张热图,热图从左到右的样本是风险分值以此从低到高的。

R语言实例练习:

单因素回归分析:

library("survival")#install.packages('survminer')library("survminer")data("lung")#Surv()函数创建生存数据对象(主要输入生存时间和状态逻辑值),再用survfit()函数对生存数据对象拟合生存函数#Surv:用于创建生存数据对象#survfit:创建KM生存曲线或是Cox调整生存曲线fit <- survfit(Surv(time, status) ~ sex, data = lung)#survdiff:用于不同组的统计检验survdiff(Surv(time, status) ~ sex, data = lung)#三种作图方法:plot(fit)ggsurvplot(fit,pval = TRUE, conf.int = TRUE,risk.table = TRUE, # Add risk tablerisk.table.col = "strata", # Change risk table color by groupslinetype = "strata", # Change line type by groupssurv.median.line = "hv", # Specify median survivalggtheme = theme_bw(), # Change ggplot2 themepalette = c("#E7B800", "#2E9FDF"))plot(fit,xlab="Time(Days)",ylab="Survival",main="title",col=c("blue","red"),lty=2,lwd=2) legend("topright",c("A","B"),col=c("blue","red"),lty=2,lwd=2,cex=0.7)

第一个作图语句输出:

Cox回归分析:

library("survival")library("survminer")#Cox模型主要用到的是coxph()函数,但需要先用Surv()函数产生一个生存对象;#另外coxph()函数支持的方法有:exact,breslow以及exact,默认是exactdata("lung")# res.cox <- coxph(Surv(time, status) ~ sex, data = lung)# summary(res.cox)#coef就是公式中的回归系数b(有时也叫做beta值)#因此exp(coef)则是Cox模型中最主要的概念风险比(HR-hazard ratio)# HR = 1: No effect# HR < 1: Reduction in the hazard# HR > 1: Increase in Hazard# 在癌症研究中:# hazard ratio > 1 is called bad prognostic factor# hazard ratio < 1 is called good prognostic factorres.cox <- coxph(Surv(time, status) ~ age + sex + ph.ecog, data = lung)summary(res.cox)# Create the new data sex_df <- with(lung,data.frame(sex = c(1, 2), age = rep(mean(age, na.rm = TRUE), 2),ph.ecog = c(1, 1)))fit <- survfit(res.cox, newdata = sex_df)ggsurvplot(fit, data = sex_df, conf.int = TRUE, legend.labs=c("Sex=1", "Sex=2"),ggtheme = theme_minimal())

如果觉得《Cox比例风险回归模型单因素多因素生存分析》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。