工欲善其事必先利其器 1vcf2maf vcf2maf 是由 Cyriac Kandoth 主导开发的一款用于将 VCF (Variant Call Format) 文件转换为 MAF (Mutation MAF文件 MAF(Mutation Annotation Format)文件是一种用于描述癌症基因组变异信息的格式,广泛用于生物信息学和医学研究中。 vcf2maf.pl —— 将 VCF 文件转换为 MAF 文件。 maf2maf.pl ——用于重新注释 MAF文件中的变异信息,它通过 maf2vcf 将 MAF 文件转换为 VCF 文件,然后使用 vcf2maf 对每个 VCF 进行重新注释,以生成新的合并后的 MAF 文件 5最小化使用 perl vcf2maf.pl --input-vcf INPUT.vcf --output-maf OUTPUT.maf --tumor-id TUMOR_ID --normal-id
Mutation Annotation Format, 简称MAF, 是由TCGA制定的一种文件格式,用来存储突变注释信息。 MAF和VCF类似,也是一个纯文本的格式,由\t分隔的许多列构成,从GDC下载的MAF文件的截图如下 第1列, Hugo_Symbol, 由HUGO提供的gene symbol, 表示SNV所在的基因名称 17列,Tumor_Normal_Barcode,配对的正常样本的barcode 完整的每一列的解释可以参考 https://docs.gdc.cancer.gov/Data/File_Formats/MAF_Format
一只对于MAF框架很是好奇,本想细细研究一下的,奈何网上有关MAF的资料甚少,而且这个框架是如此的复杂,以至于我无法在这里详细介绍它,只能是简介。希望对MAF感兴趣的朋友有些帮助。 关于Oracle更多 MAF(Mobile Application Framework ),又名Oracle MAF Oracle移动应用框架(Oracle MAF)是一种混合的移动框架,使开发人员能够快速开发单源应用和部署到苹果的 等Oracle MAF成长为一个权威的移动解决方案时还是需要一些时日的。 基于MAF开发的应用属于Hybird应用(混合应用),能够在iOS设备以及基于Android的设备上运行。 由于比较复杂感兴趣,有需要的朋友可以移步到以下文章: 比较精彩的文章 MAF , Hello World!
, 文件后缀为maf.gz Masked Somatic Mutation, open access的突变注释文件,免费下载的,格式为MAF, 文件后缀为maf.gz 在TCGA中,VCF通常用于记录单个样本的体细胞突变相关结果 ,MAF用于整合所有样本的体细胞突变注释结果,所以称MAF格式为project-level, 根据数据的开放性,又分为protected和open access, 其中open access就是我们可以直接下载得到的 MAF文件, 以乳腺癌为例,在TCGA中提供了4个MAF文件 ? MAF和VCF类似,也是一个纯文本的格式,由\t分隔的许多列构成,从GDC下载的MAF文件的截图如下 ? 在实际使用中, 对于VCF文件,可以通过vcf2maf将其转换为MAF格式,在后续文章中会具体介绍该软件的用法。
「为什么要根据MAF去筛选?」 ❝最小等位基因频率怎么计算? 更有甚者MAF为0,那就是所有位点只有一种基因型,这些位点没有贡献信息,放在计算中增加计算量,没有意义,所以要根据MAF进行过滤。 ❞ 1. plink --bfile HapMap_3_r3_7 --freq --out MAF_check 结果文件:MAF_check.frq预览: ? 4. 对基因频率作图 「R代码:」 maf_freq <- read.table("MAF_check.frq", header =TRUE, as.is=T) pdf("MAF_distribution.pdf ") hist(maf_freq[,5],main = "MAF distribution", xlab = "MAF") dev.off() 「图形如下:」 ?
/maftools/inst/doc/maftools.html 提供了非常多的可视化方案,用法也比较简便,首先读取MAF文件,代码如下 > library(maftools) > maf <- "TCGA.LAML.somatic.maf.gz " > laml = read.maf(maf = maf) 1. summary 统计样本水平,基因水平的不同突变类型的个数,代码如下 # 样本水平 > getSampleSummary(laml) summary的结果进行可视化 > plotmafSummary(maf = laml) 可视化结果示意如下 ? 2. oncoplot oncoplot是肿瘤研究中常见的可视化方式,通过以下代码可以实现 > oncoplot(maf = laml) 可视化结果示意如下 ? 3. oncostrip 和oncoplot类似,只展示其中的热图部分,代码如下 > oncostrip(maf = laml) 可视化结果示意如下 ? 4.
而带临床信息的肿瘤突变maf文件分析维度更多。 - mc3.v0.2.8.PUBLIC.maf.gz MC3 Controlled MAF - mc3.v0.2.8.CONTROLLED.maf.gz mc3.v0.2.8.BROAD_VALIDATIONv2 .maf.gz mc3.v0.2.9.CONTROLLED_lt3_b.maf.gz 目前只有第一个文件 mc3.v0.2.8.PUBLIC.maf.gz 是公开可以下载的,718M的文件, MC3 这个项目 代码如下: rm(list = ls()) require(maftools) laml=read.maf('mc3.v0.2.8.PUBLIC.maf.gz') laml save(laml,file <- mafCompare(m1 = s1.maf, m2 = s3.maf, m1Name = 'stage1', m2Name = 'stage3',
因为mskcc的vcf2maf运行的时候也是会调用VEP,所以需要先测试VEP软件是否成功,然后使用下面的脚本: conda activate vep vcf2maf.pl --help # 注意下面的 这样的mskcc的vcf2maf流程通常是针对somatic的突变信息。 有一个小麻烦,就是conda 安装软件呢,容易造成版本不匹配,mskcc的vcf2maf的VEP如果不匹配,会报错,需要手动编辑文件 vcf2maf.pl : $which vcf2maf.pl ~/miniconda3 /envs/vep/bin/vcf2maf.pl 参考 https://github.com/mskcc/vcf2maf/blob/master/vcf2maf.pl 定位到下面的代码,注释掉里面的专门针对 " --af_1kg --af_esp --af_gnomad" : " --maf_1kg --maf_esp" ) unless( $online ); } 这样你的vcf文件就全部转为maf
才sanger研究所已经做好了这个分析,但是值得我们重复一下,效果如下: TCGA所有癌症的mutation signature 首先TCGA所有癌症的maf文件 maf格式的mutation记录文件在 总共是2.19GB的文件,每个癌症种类都有4种maf文件,分别是用mutect,muse,vanscan,somaticsniper这4款软件call 到的somatic mutation文件。 是hg38版本的,所以代码虽然是对的,但实际上做出的结果是不对的,需要把下载的TCGA的maf文件进行坐标转换。 注意事项,下载的MAF文件可能有两种格式 ,可能是47列,或者120列,第一行一般都是 头文件,注释着每一列的信息,的确,信息量有点略大。 80 AMR_MAF 81 ASN_MAF 82 EAS_MAF 83 EUR_MAF 84 SAS_MAF 85 AA_MAF
首先maf格式的somatic突变数据制作成为annovar软件的输入格式: cut -f 5-7,12,13,1,16 human_brca_all_mutect2.maf |cut -f 2-7 > 1 cut -f 5-7,12,13,1,16 human_brca_all_mutect2.maf |cut -f 1 > 2 paste 1 2 > for_annovar.input ### /human_brca_all_mutect2.maf |perl -alne '{if(/^1000/){$h{"$F[2]\t$F[3]"}=1}else{print unless exists $ wc -l *.maf 9955 filter_by_1000g_exac03_gnomeAD.maf 10588 filter_by_1000g_exac03.maf 12141 filter_by_1000g.maf 过滤后的maf作为肿瘤外显子分析结果应该是会更合理。
对于基因组变异位点的存储,除了VCF外,还有一种常见的文件格式——MAF,是专门针对human突变位点注释信息的存储而定义的一种文件格式,最早在TCGA项目中广泛使用,在一个文件中同时包含所有样本的SNV 和对应的注释信息,详细的格式介绍可以查看以下文章 MAF:Mutation Annotation Format格式简介 本文的重点是如何使用IGV来查看MAF文件, 之所以说查看,是因为对于MAF的可视化 ,有更专业的工具 maftools: 可视化maf文件的神器 IGV作为一款基因组浏览器,最大的特点是动态地查看基因组上各种信息的分布,对于MAF文件,导入IGV之后,首先会看到如下所示的柱状图 ? MAF文件中记录了多个样本的突变位点注释信息,上图中每一行表示一个样本,柱子的高低表示该区域突变位点的个数。进一步放大到单条染色体水平,可以看到如下所示的图 ? 对于MAF和VCF而言,IGV的长处都不是可视化,而是允许我们方便的查看任意基因组区域上突变位点的信息。
MAF文件的下载 但是现在我们有TCGAbiolinks,根本不需要自己动手,直接三步走即可得到我们需要的MAF文件。 maf <- read.maf(maf.coad) ## -Validating ## -Silent variants: 63597 ## -Summarizing ## --Mutiple centers 每个样本是一个文件夹,每个文件夹下面有一个.gz结尾的压缩文件,这个文件解压缩之后就是大家熟悉的.maf文件,但是只是一个样本的~ 压缩的maf文件 把这个.maf文件用VScode打开后是这样的: # lapply(maf.list, dim) maf.merge <- do.call(rbind,maf.list) 目前为止看似一切顺利,本以为即将结束,但是没想到横生枝节! maf1 <- read.maf(maf.merge) ## -Validating ## --Removed 5 duplicated variants ## --Non MAF specific
这个时候就需要格式转换,比如大名鼎鼎的 maftools 工具,要求输入 MAF 文件。 那如何将 VCF 转为 MAF 呢? 这就是我们今天要介绍的 vcf2maf 工具的作用了:输入VCF,输出 MAF,然后再与 maftools 无缝对接。瞬间各种高大上的统计图形便唾手可得。 vcf2maf简介 vcf2maf是一款用于将VCF(Variant Call Format)文件转换为MAF(Mutation Annotation Format)文件的生信分析工具。 MAF格式VCF文件通常包含基因组中的变异信息,而MAF文件则是对这些变异进行注释和整理后的格式,是一种标准化的突变注释格式,广泛应用于肿瘤基因组学研究中。 vcf2maf的功能特点 1. Galaxy生信云平台(usegalaxy.cn)为我们提供了一个便捷的使用vcf2maf和Maftools的环境,而Maftools又高效地汇总、分析、注释和可视化肿瘤基因突变MAF文件。
数据部分 #载入R包和数TCGA-LIHC的maf数据 library(maftools) laml.maf = read.csv("TCGA.LIHC.mutect.maf.csv",header=TRUE ) #本次只展示maf的一些统计绘图,只读入组学数据,不添加临床数据 laml = read.maf(maf = laml.maf) #查看数据的基本情况 laml An object of class 分析,可视化 1,绘制MAF文件的整体结果图 plotmafSummary(maf = laml, rmOutlier = TRUE, addStat = 'median', dashboard = #输入另一个 MAF 文件 Our_maf <- read.csv("Our_maf.csv",header=TRUE) our_maf = read.maf(maf = Our_maf) #比较最少 好了,以上就是使用maftools包对MAF格式的组学数据的汇总,分析,可视化。
maftools软件包可以用有效的方式从TCGA及其他来源汇总,分析,注释和可视化MAF文件,只要数据为MAF格式即可。 maftools函数可以主要分为可视化和分析模块,用法很简单,只需使用read.maf读取我们的MAF文件(以及可用的副本数据),然后将生成的MAF对象传递给所需的函数进行绘图或分析。 数据 #TCGA maf文件路径 laml.maf = system.file('extdata', 'tcga_laml.maf.gz', package = 'maftools') #载入临床信息 (maf = laml.maf, clinicalData = laml.clin) laml #展示样本信息 getSampleSummary(laml) #展示基因信息 getGeneSummary ##tcga乳腺癌数据 brca <- system.file("extdata", "brca.maf.gz", package = "maftools") brca = read.maf(maf =
那我这里使用TCGA数据库的CRC的MAF文件举例,安排给了学徒进行探索,并且整理成为笔记供大家学习: 先介绍一下MSI知识和MAF文件格式: MSI(Microsatellite instability (2)下载CRC的MAF文件和reference file TCGA官网下载CRC的MAF文件: ? 文件预测MSI状态 下面都是python代码了: #导入maf文件 >python >import MSIpred as mp >crc_maf = mp.Raw_Maf(maf_path='CRC.maf ,需要耐心等待 >crc_maf.create_tagged_maf(ref_repeats_file='simpleRepeat.txt',tagged_maf_file = 'tagged_crc.maf ') #使用在上一步生成的带注释的MAF文件(tagged_crc.maf),初始化 >tagged_crc_maf = mp.Tagged_Maf(tagged_maf_path='tagged_crc.maf
read.maf 函数用于读取 MAF 文件,以多种方式对其进行总结,并将其存储为一个 MAF 对象。 rm(list=ls()) library(maftools) # path to TCGA LAML MAF file laml.maf = system.file('extdata', 'tcga_laml.maf.gz (maf = laml.maf, clinicalData = laml.clin) # Typing laml shows basic summary of MAF file. laml 现在是一个 MAF对象,MAF对象包含主要的MAF文件、总结数据以及任何相关的样本注释。 brca <- system.file("extdata", "brca.maf.gz", package = "maftools") brca brca = read.maf(maf = brca,
| cut -d\" -f4` curl -L -o mskcc-vcf2maf.tar.gz $VCF2MAF_URL; tar -zxf mskcc-vcf2maf.tar.gz; cd mskcc-vcf2maf -* mv * ../ perl ~/biosoft/vcf2maf/vcf2maf.pl --man 帮助文档如下: [jianmingzeng@jade mskcc-vcf2maf-747a1bb ]$ perl vcf2maf.pl --help Usage: perl vcf2maf.pl --help perl vcf2maf.pl --input-vcf WD4086 /vcf2maf.pl --input-vcf somatic.vcf --output-maf test.maf \ --ref-fasta ~/.vep/homo_sapiens/86_GRCh38 745K May 30 14:01 OSCC_04.maf 576K May 30 14:01 OSCC_06.maf 730K May 30 14:02 OSCC_09.maf 默认调用5个线程,所以注释速度非常快
前面给大家介绍了MAF文件格式 ☞ MAF格式(mutation annotation format) 以及如何从TCGA数据库下载MAF格式的突变数据。 ☞ 如何从TCGA数据库下载体细胞突变数据(somatic mutation) 今天我们来讲讲,怎么用R的maftools包来分析MAF格式的突变数据,并用瀑布图来展示结果。 #安装maftools包 BiocManager::install("maftools") #加载maftools包 library(maftools) #指定maf文件的路径和名字 laml.maf = system.file('extdata', 'tcga_laml.maf.gz', package = 'maftools') #读取maf文件 laml = read.maf(maf = laml.maf 信息进行可视化 pdf(file="maf_summary.pdf",width =12,height=7) plotmafSummary(maf = laml,addStat = 'median')
https://xenabrowser.net/datapages/ ,找到 GDC TCGA Breast Cancer (BRCA) (20 datasets) ,数据库提供了4种somatic突变的maf 软件拿到的somatic突变数据文件; MuTect2 Variant Aggregation and Masking (n=986) GDC Hub 这个时候呢,你会发现下载的突变数据是tsv格式,并不是maf Tumor_Seq_Allele2 %in% c('A','C','T','G'), 'SNP','INDEL' ) table(tmp$Variant_Type ) tcga.brca = read.maf (maf = tcga.brca, top = 10) # 高频突变的前10个基因 出图如下所示: 高频突变的前10个基因 其实主要就是对maftools 这个包的read.maf函数的理解,以及对 maf文件格式的理解。