在前面的教程 指定病人的指定基因的突变全景瀑布图,和 带临床信息的肿瘤突变maf文件分析维度更多,我们初步认识了TCGA数据库的33个癌症类型里面病人的临床信息,基本上都是在 TCGA-Clinical Data Resource (CDR) Outcome 文件里面。
在 https://gdc.cancer.gov/about-data/publications/pancanatlas 页面下载 即可,简单的归纳整理后:
代码语言:javascript复制> table(phe$type,phe$new_stage)
other s1 s2 s3 s4
ACC 2 9 44 19 18
BLCA 2 2 131 141 136
BRCA 24 183 621 249 20
CESC 307 0 0 0 0
CHOL 0 20 11 4 10
COAD 11 76 178 129 65
DLBC 48 0 0 0 0
ESCA 23 18 79 56 9
GBM 596 0 0 0 0
HNSC 75 27 74 82 270
KICH 0 54 33 19 7
KIRC 3 269 57 125 83
KIRP 30 173 21 52 15
LAML 200 0 0 0 0
LGG 515 0 0 0 0
LIHC 24 175 87 86 5
LUAD 8 279 124 85 26
LUSC 4 245 163 85 7
MESO 0 10 16 45 16
OV 587 0 0 0 0
PAAD 3 21 152 4 5
PCPG 179 0 0 0 0
PRAD 500 0 0 0 0
READ 9 33 51 52 25
SARC 261 0 0 0 0
SKCM 59 77 140 171 23
STAD 27 59 130 183 44
TGCT 53 55 12 14 0
THCA 2 285 52 113 55
THYM 124 0 0 0 0
UCEC 548 0 0 0 0
UCS 57 0 0 0 0
UVM 1 0 39 36 4
可以看到并不是所有的癌症类型都有 临床指标 ajcc_pathologic_tumor_stage ,有几个癌症需要去看 clinical_stage 信息 。
对于表格末端,比如SARC,THYM和UCEC以及UCS癌症,就没有区分好的ajcc_pathologic_tumor_stage ,因为肿瘤背景知识不够,所以这里我也不清楚为什么!
认识一下TNM分期
TNM分期系统首先由法国人Pierre Denoix于1943年至1952年间提出,后来美国癌症联合委员会(AJCC,American Joint Committee on Cancer)和国际抗癌联盟(UICC,Union for International Cancer Control)逐步开始建立国际性的分期标准,并于1968年正式出版了第1版《恶性肿瘤 TNM分类法》手册。
权威性毋庸置疑了!TNM分类法在《百度百科》详解如下:
- T(“T”是肿瘤一词英文“Tumor”的首字母)指肿瘤原发灶的情况,随着肿瘤体积的增加和邻近组织受累范围的增加,依次用T1~T4来表示。
- N(“N”是淋巴结一词英文“Node”的首字母)指区域淋巴结(regional lymph node)受累情况。淋巴结未受累时,用N0表示。随着淋巴结受累程度和范围的增加,依次用N1~N3表示
- M(“M”是转移一词英文“metastasis”的首字母)指远处转移(通常是血道转移),没有远处转移者用M0表示,有远处转移者用M1表示。
在此基础上,用TNM三个指标的组合(grouping)划出特定的分期(stage)。
批量针对stage这样的分组做生存分析
再次回顾一下前面的代码:
代码语言:javascript复制phe$new_stage = ifelse(phe$ajcc_pathologic_tumor_stage %in% c( 'Stage I','Stage IA','Stage IB'),'s1',
ifelse(phe$ajcc_pathologic_tumor_stage %in% c('Stage II' ,'Stage IIA','Stage IIB','Stage IIC'),'s2',
ifelse(phe$ajcc_pathologic_tumor_stage %in% c('Stage III','Stage IIIA','Stage IIIB','Stage IIIC'),'s3',
ifelse(phe$ajcc_pathologic_tumor_stage %in% c( 'Stage IV','Stage IVA' ,'Stage IVB','Stage IVC'),'s4','other'
) ) ) )
因为前面指出来了,有一些癌症 比如SARC,THYM和UCEC以及UCS癌症,就没有区分好的ajcc_pathologic_tumor_stage , 所以剔除它们:
代码语言:javascript复制library(survminer)
library(survival)
load(file = 'phe_stage.Rdata')
phe=phe[phe$new_stage != 'other',]
table(phe$type,phe$new_stage)
tp=unique(phe$type)
tp
stage_sur_list <- lapply(tp, function(x){
#x=tp[1]
this_phe=phe[phe$type==x,]
# 这里先看 os
survival_dat=this_phe[,c('new_stage','OS','OS.time')]
colnames(survival_dat)=c('group','event','time')
survival_dat$time = survival_dat$time/365
fit <- survfit(Surv(time, event) ~ group,
data = survival_dat)
survp=ggsurvplot(fit,data = survival_dat, #这里很关键,不然会报错
legend.title = x,
pval = T, #在图上添加log rank检验的p值
risk.table = F, #在图下方添加风险表
xlab = "Time in years", #x轴标题
xlim = c(0, 10), #展示x轴的范围
break.time.by = 1, #x轴间隔
size = 1.5#线条大小
)
return(survp)
})
x=3;y=7
all_plot <- arrange_ggsurvplots(stage_sur_list,
print = F,
ncol =x, nrow = y)
all_plot
x=15;y=35
ggsave(all_plot,filename = 'stage_sur_plot.pdf',
width = x,height = y)
可以看到 ajcc_pathologic_tumor_stage 这个临床信息还是很容易区分病人生存情况的啊:
ajcc_pathologic_tumor_stage 区分生存
以及:
ajcc_pathologic_tumor_stage 区分生存效果好
简单肉眼看了看,在 MESO 不显著,挺奇怪的:
MESO 的ajcc_pathologic_tumor_stage 无法区分生存
是不是意味着 MESO 的ajcc_pathologic_tumor_stage 这个临床信息判断方式有问题,需要更新了?
另外,既然这么多癌症, 每个都需要出图,看起来也很麻烦,实际上我们需要的仅仅是p值,是否统计学显著而已,所以理论上我们不需要出图,可以survdiff代替 survfit ,直接计算p值和HR值。我们下一讲继续哈!