前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >生存分析时间点问题

生存分析时间点问题

作者头像
生信技能树
发布2019-08-26 16:50:34
8390
发布2019-08-26 16:50:34
举报
文章被收录于专栏:生信技能树生信技能树

以前下载TCGA数据,喜欢用使用UCSC的XENA数据库, 全部数据在:https://xenabrowser.net/datapages/ 这个时候有两个数据源,需要区分开来;

  • GDC TCGA Breast Cancer (BRCA) (18 datasets) 09-15-2017
  • TCGA Breast Cancer (BRCA) (30 datasets) 2016-04-27

前者数据是 IlluminaHiSeq TCGA hub表达矩阵,基因SYMBOL的表达矩阵,基因的表达信息,通常是用来把病人进行分组,然后还是需要下载临床信息,才能做生存分析。

分分钟对TCGA数据库的任意癌症种类做生存分析,并校验

发现TCGA数据库记录病人的生存事件的时候,区分Alive和Dead,但是呢,不同的事件本来是应该对应不同的时间记录字段,但是突然就发现了一个特例,虽然不清楚为什么,但是毫无疑问我们的代码需要注意这一点了。

推测可能是因为一个病人有多个样本,不同样本记混了。

现在我喜欢使用TCGAmutations下载突变数据和临床信息,代码如下:

代码语言:javascript
复制
library(TCGAmutations)
tcga_available() #查看可用的数据
tcga_load(study = "LGG") # 默认加载经过校正后的MC3 maf文件
tcga_mc3=tcga_lgg_mc3
laml <- tcga_mc3
phe=as.data.frame(laml@clinical.data)

初步下载得到的phe,就是上面那样的不合理数据,需要进行校正,更有趣的是这个信息其实要比XENA来说,过时一点,大家可以自行去比较。

构建生存分析需要的时间

我这里使用的代码好像很复杂:

代码语言:javascript
复制
table(phe$vital_status)
phe=phe[phe$vital_status %in% c('Alive' , 'Dead'),]
phe$time=0 
pos=which(phe$vital_status=='Dead')
phe$time[pos]=phe$days_to_death[pos]
pos=which(phe$vital_status=='Alive')
phe$time[pos]=phe$days_to_last_followup[pos]
phe=phe[,c("Tumor_Sample_Barcode","gender","vital_status",'time')]
phe$vital_status=ifelse(phe$vital_status=='Alive',0,1)

最后得到的phe如下所示:

需要留意的是,同一个病人因为有多个测序样品,如果不是12位的ID,比如15位的ID,就需要去冗余:

上面的例子就是一个病人被记录了两次临床信息,仅仅是因为他有两个转录组测序而已,这个时候一个病人的两个样本都被记录临床信息,好的情况是记录的都是一致的,因为大家共享一个病人ID。但是也有情况出现就是他们不一致,所以就出现了bugs

生存分析代码是

有了上面的数据, 就可以做生存分析并且绘制代码了。

代码语言:javascript
复制
library(survival)
library(survminer)
mySurv_OS=with(phe,Surv(time, vital_status))
sfit=survfit(mySurv_OS~gender,data=phe)
p=ggsurvplot(sfit,data = phe,
             pval =TRUE,
             xlab ="Time in days", 
             ggtheme =theme_light())
print(p)

可以看到,性别的生存差异不显著:

但是,其实是有些癌症的性别生存差异是显著的,大家猜猜看是哪一个呢?

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 构建生存分析需要的时间
  • 生存分析代码是
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档