聊一聊TCGA那些生存期

一点背景知识

其实生存分析不只有总生存期,TCGA可以很方便的分析的有:

  1. OS (Overall Survival) 总生存期:
  • 0 = 患者存活
  • 1 = 患者死亡(任何原因导致的死亡)
  1. DSS (Disease-Specific Survival) 疾病特异性生存期:
  • 0 = 患者存活或死于其他原因
  • 1 = 患者死于特定疾病(如癌症)
  1. DFI (Disease-Free Interval) 无病间期:
  • 0 = 患者无复发
  • 1 = 患者出现疾病复发
  1. PFI (Progression-Free Interval) 无进展间期:
  • 0 = 患者疾病未进展

  • 1 = 患者疾病进展或死亡

  • 这些生存指标反映了不同的临床终点事件

  • OS是最终的评估指标,但需要较长的随访时间

  • PFI和DFI常用于临床试验中作为早期疗效评估指标

  • DSS专注于疾病相关死亡,排除其他原因导致的死亡

在官网下载并整理的临床信息中,可以方便的获取OS,但没有其他的生存期,但我们遇到了善良的xena,下面的数据出自xena整理的泛癌资料:

下载链接:
https://tcga-pancan-atlas-hub.s3.us-east-1.amazonaws.com/download/Survival_SupplementalTable_S1_20171025_xena_sp

这里面虽然也有一些临床信息,性别分期啥的,但我们还是更习惯用原来的(每一个单独的癌种给出的clinical),不然还得改整理数据的代码。

可以看到该表格的第26~33列就是各种生存期咯。

rm(list = ls())
clinical = read.delim("Survival_SupplementalTable_S1_20171025_xena_sp")
colnames(clinical)[26:33]
## [1] "OS"       "OS.time"  "DSS"      "DSS.time" "DFI"      "DFI.time" "PFI"     
## [8] "PFI.time"
clinical = clinical[,c(1,26:33)]

然后和单独某个癌种的表达矩阵、临床信息放到一起,就可以用于做生存分析咯。

TCGA-KIRC_sur_model.Rdata是整理好的 cpm矩阵exprSet和对应的临床信息表格meta。

load("TCGA-KIRC_sur_model.Rdata")
#这里的id只有15位,我们的数据有16位,需要统一起来才能连接到一起。
meta$short_id = stringr::str_sub(meta$ID,1,15)
library(dplyr)
meta = left_join(meta,clinical,by = c("short_id"="sample"))

library(survival)
library(survminer)
sfit=survfit(Surv(PFI.time, PFI)~stage, data=meta)
ggsurvplot(sfit,pval =TRUE, data = meta,palette = "jco")

基因的KMplot也可以画。

g = rownames(exprSet)[1];g
## [1] "WASH7P"
meta$gene = ifelse(exprSet[g,]> median(exprSet[g,]),'high','low')
table(meta$gene)
## 
## high  low 
##  257  258
sfit=survfit(Surv(PFI.time, PFI)~gene, data=meta)
ggsurvplot(sfit,pval =TRUE, data = meta)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容