maftools画棒棒糖图 (Lollipop chart)-基因突变可视化

maftools是一个很强大的R语言可视化包,上篇“maftools画瀑布图(oncoplot)”(https://www.jianshu.com/p/6cccf7c4bb05)小编给大家介绍了如何利用该包对变异进行样本和基因层面的展示,今天小编就介绍一下如何对单个基因上的变异进行可视化。
注:maftools安装,ANNOVAR注释文件转换成maf文件的步骤与瀑布图一样,对这几步已经熟悉的亲可以跳过这几步直接看下面画图的部分。

1.安装包,加载包

> source("http://bioconductor.org/biocLite.R")
> biocLite("maftools")
> library(maftools)

注:安装比较耗时(网速好的话会快些),R版本要求3.3以上。个人经验最好也不要使用最新版本,新版R总会对那么一些“老包”不够友好。亲测3.6.1可行。

2.数据准备

其实如果你对MAF格式足够了解,并且熟练一门文本处理语言,那么无论你的变异数据(已完成基本的注释)用什么格式存储都无所谓,自己写个脚本处理就好。但实际上变异一般以VCF格式存储,而我们最常用的变异注释工具还是ANNOVAR。那么我们今天就仅介绍适合大多数人的情况--从ANNOVAR注释的结果文件开始。需要注释以下几点:
1,ANNOVAR注释的结果相信大家都见过,我们这里用TXT格式的而不是vcf格式的!
2,maftools仅能识别注释为insertion或者deletion的InDel,substitution则不能有效识别,所以如果substitution丢了别感到意外。
3,注释文件需要额外加一列样本名(head可以为Tumor_Sample_Barcode,当然你不用样本名称而用其他ID来区分样本也可以),如果多个样本中都有这个变异,那么分成多行展示。
3,对于InDel的注释还要注意一点,如果ANNOVAR注释是输入的不是VCF文件而是“avinput”,那么需要注意ref和alt的书写。VCF文件一般ref和alt两列都是碱基,但如果avinput也这么写的话注释结果都将是substitution,而没有insertion和deletion。所以对于insertion来说ref列应为“-”,而deletion的alt列应为“-”,坐标位置也要相应的调整。
4,还有一个坑,在ANNOVAR注释完大家看看Func_refGene列和ExonicFunc_refGene列有没有出现用“;”隔开重复多次的现象(如下图),如果有一定要去掉这种重复,否则会把这样的变异都处理成RNA。


image.png

3.maf格式转换

将加上“Tumor_Sample_Barcode”,的注释文件转换成maf格式:

library("maftools")
annovarToMaf("MyData.anno.hg19_multianno.txt",  Center = NULL,  refBuild = "hg19",  tsbCol = 'Tumor_Sample_Barcode',  table = "ensGene",  ens2hugo =TRUE,  basename = "MyData",  sep = "\t",  MAFobj = FALSE,  sampleAnno = NULL)
annovarToMaf("TCGA.pathogenic.anno.hg19_multianno.txt",  Center = NULL,  refBuild = "hg19",  tsbCol = 'Tumor_Sample_Barcode',  table = "ensGene",  ens2hugo = TRUE,  basename = "TCGA",  sep = "\t",  MAFobj = FALSE,  sampleAnno = NULL)
#说一下几个重要的参数:
#第一个参数是输入文件(处理后的注释文件)
# refBuild参考基因组版本
#tsbCol样本名那一列的列名
#table注释基因名使用的数据库,可以是refGene,也可以是ensGene(ensemble数据库)
#ens2hugo,如果table是refGene,这个参数给FALSE,如果是ensGene则需要给TRUE(将ensemble ID转换成hugo symbols)
#basename输出文件名前缀
#sep输出文件分隔符

4.画单个样本的棒棒糖图

laml = read.maf(maf = "MyData.maf")
lollipopPlot(maf = laml, gene = TP53', AACol = 'AAChange.refGene', showMutationRate = FALSE)

输出图片示例:


image.png

5.画两个样本的对比图

如果你想看一下自己的样本某个基因突变与TCGA该基因突变情况是否有差异,那么对比图将是个很好的选择

#将自己的样本注释结果转换成MAF格式
annovarToMaf("MyData.anno.hg19_multianno.txt",  Center = NULL,  refBuild = "hg19",  tsbCol = 'Tumor_Sample_Barcode',  table = "refGene",  ens2hugo = FALSE,  basename = "MyData",  sep = "\t",  MAFobj = FALSE,  sampleAnno = NULL)
#将TCGA注释结果转换成MAF
annovarToMaf("TCGA.pathogenic.anno.hg19_multianno.final.txt",  Center = NULL,  refBuild = "hg19",  tsbCol = 'Tumor_Sample_Barcode',  table = "ensGene",  ens2hugo = TRUE,  basename = "TCGA",  sep = "\t",  MAFobj = FALSE,  sampleAnno = NULL)
#加载maf文件
laml = read.maf(maf = "TCGA.maf")
lam2 = read.maf(maf = "MyData.maf")
#绘制棒棒糖图
lollipopPlot2(m1 = laml, m2 = lam2, gene = "TP53",AACol1 = "AAChange.refGene", AACol2 = "AAChange.refGene", m1_name = "TCGA", m2_name = "MyData",domainLabelSize = 1,labPosSize=10,legendTxtSize=1)

输出结果如下:


image.png

基因示例图上“头朝上的棒棒糖”是TCGA中该基因的突变情况,“头朝下的棒棒糖”是自己数据该基因的突变情况。且两个数据集的样本数和携带这些变异的样本比例都展示在图片上了。

6. 批量绘制

可能你关注的基因有多个,一个一个去画很浪费时间,那么可以借助于循环批量绘制:

library("maftools")
gene_list <- scan('common_gene.txt', list(''))[[1]]
#annovar to maf
annovarToMaf("MyData.hg19_multianno.final.txt",  Center = NULL,  refBuild = "hg19",  tsbCol = 'Tumor_Sample_Barcode',  table = "ensGene",  ens2hugo = TRUE,  basename = "cancer_related",  sep = "\t",  MAFobj = FALSE,  sampleAnno = NULL)
annovarToMaf("TCGA.pathogenic.anno.hg19_multianno.final.txt",  Center = NULL,  refBuild = "hg19",  tsbCol = 'Tumor_Sample_Barcode',  table = "ensGene",  ens2hugo = TRUE,  basename = "TCGA",  sep = "\t",  MAFobj = FALSE,  sampleAnno = NULL)
#加载maf文件
laml = read.maf(maf = "TCGA.maf")
lam2 = read.maf(maf = "MyData.maf")
#循环绘制棒棒糖图
for (gene in gene_list) {
pdf(paste(gene,".pdf",sep=""), width=6, height=6)
lollipopPlot2(m1 = laml, m2 = lam2, gene = gene,AACol1 = "AAChange.refGene", AACol2 = "AAChange.refGene", m1_name = "TCGA", m2_name = "MyData",domainLabelSize = 0.8,labPosSize = 9,legendTxtSize=1,axisTextSize = c(1, 1),labPosAngle=90)
dev.off()
}

注:上面提到的common_gene.txt文件格式示例如下:


image.png

可见产生了多个PDF文件:


image.png

你可能感兴趣的:(maftools画棒棒糖图 (Lollipop chart)-基因突变可视化)