引入肿瘤分子分型能提供临床分期的预后能力吗
前面的教程 是否所有的癌症的TNM分期都有生存预测意义 ,我们指出来了的 MESO 的ajcc_pathologic_tumor_stage 这个临床指标居然是无法区分生存的,引起了大家的热烈讨论!
天津医科大学的施医生指出来了:
胸膜间皮瘤还是要看病理类型的,他分上皮型,肉瘤型和双向型,其中肉瘤型就是明确的预后不良因素。即使是早期他的预后可能也会比上皮型的晚期差。就像局限期的小细胞肺癌一开始看着比晚期那种大肺腺癌轻。但小细胞一般活不过1年。所以可以试试按病理类型分开再看看。tcga应该有这个数据。还有间皮瘤有个特殊情况就是石棉暴露史。因石棉暴露导致的间皮瘤和正常得的间皮瘤这种病因学的差异也有可能导致这种结果
另外一位杨姓网友留言发表自己的看法:
1.由于间隔淋巴结的复杂性,内皮瘤的N分期参考的是非小细胞肺癌的分期标准,由于两者生物学特性差别较大,因此分期对于判断预后肯定是有误差的。 2.样本量不够。 3.间皮瘤预后极差,中位生存时间仅在一年左右,临床分期不能有效区分预后,同时该疾病进展率不同个体差异较大,可能也存在影响
首先查看MESO 的临床情况
可以看到,确实是有Biphasic和Epithelioid两个亚型:
> table(phe$histological_type,phe$new_stage)
s1 s2 s3 s4
Biphasic mesothelioma 3 3 13 4
Diffuse malignant mesothelioma - NOS 0 1 2 2
Epithelioid mesothelioma 6 12 29 10
Sarcomatoid mesothelioma 1 0 1 0
我们首先看看 Biphasic mesothelioma 内部的stage是否有生存意义 ,代码如下所示:
this_phe=phe[phe$histological_type=='Biphasic mesothelioma',]
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#线条大小
)
print(survp)
出图如下所示:
然后看 Epithelioidmesothelioma 内部的stage是否有生存意义 ,代码如下所示:
this_phe=phe[phe$histological_type=='Epithelioid mesothelioma',]
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#线条大小
)
print(survp)
出图如下所示:
也就是说,在主要的两个亚型里面,其实stage都无法区分生存。那么这个癌症的临床分期无法区分生存的主要原因应该是出在样品数量太少?或者说病人死的太快了?
接下来群友讨论部分癌症其实是有分子分型的,也引出来了一个很有意思的话题,就是引入肿瘤分子分型能提高临床分期的预后能力吗?
以乳腺癌为例子
在使用gdc客户端命令行工具根据文件 :https://gdc.cancer.gov/files/public/file/PanCan-panimmune_Open_GDC-Manifest_1.txt ,可以下载:
TCGASubtype.20170308.tsv
首先查看其病理分型:
rm(list = ls() )
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
phe=phe[phe$type=='BRCA',]
table(phe$histological_type,phe$new_stage)
# s1 s2 s3 s4
# Infiltrating Ductal Carcinoma 140 454 156 17
# Infiltrating Lobular Carcinoma 23 110 66 1
可以看到主要是Ductal和Lobular起源的乳腺癌,但是我们这个时候想看分子分型。代码是:
sub=read.table('../PanCacner/files/TCGASubtype.20170308.tsv',
header = T)
head(sub)
sub=sub[sub$cancer.type=='BRCA',]
sub$bcr_patient_barcode = substring(sub$pan.samplesID,1,12)
table(sub$Subtype_mRNA)
Basal Her2 LumA LumB Normal
193 82 581 219 143
bd=substring(sub$pan.samplesID,14,16)
table(bd)
sub=sub[bd=='01A',]
table(sub$Subtype_mRNA)
Basal Her2 LumA LumB Normal
192 81 560 212 39
可以看到,这里面把正常样品表达量矩阵也进行了分子分型,其实呢,我们应该是以病人为单位,进行分子分型!所以我们仅仅是保留01A类型的病人即可:
接下来把分子分型信息和病人生存情况合并:
brca_phe = merge(phe,sub,
by = 'bcr_patient_barcode' )
brca_phe=brca_phe[,c('new_stage','Subtype_mRNA',
'OS','OS.time')]
table(brca_phe$new_stage,brca_phe$Subtype_mRNA)
Basal Her2 LumA LumB Normal
s1 25 7 116 25 6
s2 132 49 292 118 21
s3 27 20 128 61 11
s4 3 3 8 5 1
所以接下来我们会做四次生存分析,代码如下所示:
tp=unique(brca_phe$Subtype_mRNA)
tp
brca_subtype_sur_list <- lapply(tp, function(x){
# x=tp[1]
this_phe=brca_phe[brca_phe$Subtype_mRNA==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=2;y=2
all_plot <- arrange_ggsurvplots(brca_subtype_sur_list,
print = F,
ncol =x, nrow = y)
all_plot
x=10;y=10
ggsave(all_plot,filename = 'brca_subtype_sur_plot.pdf',
width = x,height = y)
出图如下:
不过,大家其实可能更想看分子分型本身是否有生存意义,或者前面的 Ductal和Lobular起源的乳腺癌 是否有生存差异!
也是很有意思:
总体上来说,这个分子分型还是可以区分生存的,在stage2和stage3以及stage4里面都是 Her2和Basal的病人死得快,符合大家的认知。
这样的组合探索,实在是太多了, TCGASubtype.20170308.tsv 文件里面的信息很丰富!当然了,分子分型本身就是一个很大的话题了,这个 TCGASubtype.20170308.tsv 文件信息也不一定足够,也可以去看TCGAbiolinks包的数据,参考 : https://www.bioconductor.org/packages/release/bioc/html/TCGAbiolinks.html
HTML R Script 1. Introduction
HTML R Script 2. Searching GDC database
HTML R Script 3. Downloading and preparing files for analysis
HTML R Script 4. Clinical data
HTML R Script 5. Mutation data
HTML R Script 6. Compilation of TCGA molecular subtypes
HTML R Script 7. Analyzing and visualizing TCGA data
HTML R Script 8. Case Studies
HTML R Script 9. Graphical User Interface (GUI)
HTML R Script 10. Classifiers
HTML R Script 10. TCGAbiolinks_Extension