我们经常会在SCI文章里面看到下面这样的图来,展示体细胞突变(somatic mutation)的数据。

这个图叫瀑布图,展示每一样本中的各种类型的突变,包括错义突变,移码突变,无义突变,插入缺失等等。要想画出这张图,首先我们必须要准本好数据。今天小编就来跟大家聊聊怎么从TCGA数据库下载体细胞突变(somatic mutation)数据。
1.打开TCGA网站,输入需要下载的肿瘤类型

2.点击WXS后面的数字51

3.点击左上角File

4.选择WXS,Masked Somatic Mutation,maf,simple nucleotide variation,Aliquot Ensemble Somatic Variant Merging and masking,然后Add all files to cart

5.这51个文件就加入右上角的购物车里面了

6.下载Download下拉框里里面的Cart

得到gdc_downloa_****.tar.gz.文件
7. 解压该文件


8. 合并所有数据
setwd("G:\\test\\gdc_download_20221025_103238.659115")
files <- list.files(pattern = '*.gz',recursive = TRUE)
all_mut <- data.frame()
for (file in files) {
mut <- read.delim(file,skip = 7, header = T, fill = TRUE,sep = "\t")
all_mut <- rbind(all_mut,mut)
}
9. 数据整理
all_mut <- read.maf(all_mut)
a <- all_mut@data %>%
.[,c("Hugo_Symbol","Variant_Classification","Tumor_Sample_Barcode")] %>%
as.data.frame() %>%
mutate(Tumor_Sample_Barcode = substring(.$Tumor_Sample_Barcode,1,12))
gene <- as.character(unique(a$Hugo_Symbol))
sample <- as.character(unique(a$Tumor_Sample_Barcode))
mat <- as.data.frame(matrix("",length(gene),length(sample),
dimnames = list(gene,sample)))
mat_0_1 <- as.data.frame(matrix(0,length(gene),length(sample),
dimnames = list(gene,sample)))
for (i in 1:nrow(a)){
mat[as.character(a[i,1]),as.character(a[i,3])] <- as.character(a[i,2])
}
for (i in 1:nrow(a)){
mat_0_1[as.character(a[i,1]),as.character(a[i,3])] <- 1
}
#所有样本突变情况汇总/排序
gene_count <- data.frame(gene=rownames(mat_0_1),
count=as.numeric(apply(mat_0_1,1,sum))) %>%
arrange(desc(count))
gene_top <- gene_count$gene[1:20] # 修改数字,代表TOP多少,也可选择自己感兴趣的
##保存
save(mat,mat_0_1,file = "TMB.rda") ##保存为RData
write.csv(mat,"all_mut_type.csv")
write.csv(mat_0_1,"all_mut_01.csv")


10. 绘制瀑布图oncoplot
oncoplot(maf = all_mut,
top = 30, #显示前30个的突变基因信息
fontSize = 0.6, #设置字体大小
showTumorSampleBarcodes = F) #不显示病人信息

11. 计算tmb值
tmb_table = tmb(maf = all_mut) #默认以log10转化的TMB绘图
tmb_table = tmb(maf = all_mut,logScale = F) #不log
write.csv(tmb_table,"tmb_results.csv")

想请问,TCGA-GBMLGG(GBM和LGG合并)
现在合并后659个样本,给出样本的亚型(659个样本分为高风险组和低风险组)
做这两个组之间的差异瀑布图,可以做到吗按照您的方法?
你好,两组的差异瀑布图?就把两组拆分开分别画就好了,是这个意思吗?
659个样本分为高风险组和低风险组,比如有250个高风险样本,419个低风险样本,分析这两组之间突变基因的差异,并绘制瀑布图,放在一张图里,只不过是高低风险这两组分面展示了,左侧列了差异基因(在高低风险组之间的突变情况是有差异不同的),并且标注了p值
想请教一下绘制瀑布图那里,需要怎么更改代码可以绘制自己的基因
gene_top <- gene_count$gene[1:20] # 修改数字,代表TOP多少,也可选择自己感兴趣的
选择自己感兴趣的基因代码怎么写
这个代码是提取前20个基因名称 如果你有自己感兴趣的 直接gene_top <- c(your genelist)
想请教一下为什么整合完之后样本变少了,415个变成了406个
这是不应该的 如果却是 检查一下代码中的filelist有没有确实 也有可能部分样本没有突变数据