工欲善其事必先利其器
vcf2maf 是由 Cyriac Kandoth 主导开发的一款用于将 VCF (Variant Call Format) 文件转换为 MAF (Mutation Annotation Format) 文件的生信分析工具。广泛应用于癌症基因组研究中的变异数据处理,其具有以下特性:
vcf2maf
利用 VEP (Variant Effect Predictor) 从多个数据库(如 Ensembl, COSMIC, dbSNP)中提取信息,为每个突变提供详细的生物学背景和功能影响注释。vcf2maf
能够处理来自不同测序平台和分析流程的 VCF 文件,使其在不同的研究背景和技术条件下具有很高的适用性。编程语言:Perl GItHub:https://github.com/mskcc/vcf2maf?tab=readme-ov-file
VCF(Variant Call Format)文件是一种标准的格式,用于存储基因组测序数据中的变异信息,如单核苷酸多态性(SNPs)、插入和缺失(indels)等。它广泛用于生物信息学和基因组研究,以描述特定位置上的已知变异和新发现的变异。
VCF文件包括一个头部(header)和数据部分。头部包含文件的元数据,描述了数据的格式和解释相关信息。数据部分则列出了具体的变异信息,分别为:
.
表示。PASS
;如果没有通过,此列将显示没有通过的测试的代码。MAF(Mutation Annotation Format)文件是一种用于描述癌症基因组变异信息的格式,广泛用于生物信息学和医学研究中。MAF文件不仅记录了具体的突变信息,还包括了关于这些突变的详细注释。它是由癌症基因组图谱(The Cancer Genome Atlas, TCGA)项目中使用和发展起来的标准格式。
MAF文件的主要列及其内容包括:
额外的注释信息
推荐使用Conda安装,可以放在同一个小环境,方便管理
## conda create -n wes
conda activate wes
conda install -y vcf2maf
##同时需要搭配vep使用,如果没有安装也需要提前安装一下
conda install ensembl-vep
VEP之前也有介绍过,详见:
源码安装也很简单,下载解压即可使用。
wget -c https://github.com/mskcc/vcf2maf/archive/refs/tags/v1.6.22.tar.gz
tar -xf v1.6.22.tar.gz
一个将 VCF文件转换为 MAF(突变注释格式)文件的工具。在进行癌症基因组研究时非常有用,以便对突变进行详细注释并与其他癌症基因组数据整合。
vcf2maf.pl
—— 将 VCF 文件转换为 MAF 文件。maf2maf.pl
——用于重新注释 MAF文件中的变异信息,它通过 maf2vcf
将 MAF 文件转换为 VCF 文件,然后使用 vcf2maf
对每个 VCF 进行重新注释,以生成新的合并后的 MAF 文件perl vcf2maf.pl --input-vcf INPUT.vcf --output-maf OUTPUT.maf --tumor-id TUMOR_ID --normal-id NORMAL_ID
--input-vcf #指定输入文件,必须是vcf格式
--input-vcf #指定输出maf文件的路径
--tumor-id #在 MAF 文件中报告的肿瘤样本条码,默认值为 "TUMOR"
--normal-id #在 MAF 文件中报告的匹配正常样本条码,默认值为 "NORMAL"
--vcf-tumor-id #VCF 文件基因型列中使用的肿瘤样本 ID,与 `--tumor-id` 参数相同
--vcf-normal-id #VCF 文件基因型列中使用的匹配正常样本 ID,与 `--normal-id` 参数相同
--ref-fasta #指定参考 FASTA 文件的路径
--species #指定物种的 Ensembl 名称,例如对于小鼠是 `mus_musculus`,默认为 `homo_sapiens`(人类)
--ncbi-build # 指定变异 MAF 的 NCBI 参考组装版本,例如对于小鼠是 `GRCm38`,默认为 `GRCh37`
--cache-version # 使用 VEP 的离线缓存版本,例如 75、91、112 等,默认使用安装的版本
--inhibit-vep # 跳过运行 VEP,但如果在 VCF 中发现 VEP 注释,则提取这些注释
--vep-path #自定义调用vep路径
--vep-data #自定义vep cache 路径。默认 ~/.vep
perl ~/software/vcf2maf-1.6.22/vcf2maf.pl \
--input-vcf ../vcf/homo_test.filter.vcf \
--output-maf homo_test.vep.maf \
--vep-path /home/data/t020560/miniconda3/envs/wes/bin/ \
--vep-data ~/vep_data/homo \ #cache目录,目录下是homo_sapiens文件夹
--ref-fasta ../hg38/hg38.fa --ncbi-build GRCh38 --cache-version=111
运行示列
简单查看一行信息
##vcf文件
$cat ~/vcf/homo_test.filter.vcf |grep 69270
chr1 69270 . A G 1155.73 Filter AC=6;AF=1.00;AN=6;DP=42;ExcessHet=3.0103;FS=0.000;MLEAC=6;MLEAF=1.00;MQ=27.65;QD=28.19;SOR=7.476 GT:AD:DP:GQ:PL 1/1:0,15:15:45:428,45,0 1/1:0,11:11:32:287,32,0 1/1:0,15:15:45:454,45,0
## MAF文件
$cat homo_test.vep.maf |sed -n '2,3p'
Hugo_Symbol Entrez_Gene_Id Center NCBI_Build Chromosome Start_Position End_Position Strand Variant_Classification Variant_Type Reference_Allele Tumor_Seq_Allele1 Tumor_Seq_Allele2 dbSNP_RS dbSNP_Val_Status Tumor_Sample_Barcode Matched_Norm_Sample_Barcode Match_Norm_Seq_Allele1 Match_Norm_Seq_Allele2 Tumor_Validation_Allele1 Tumor_Validation_Allele2 Match_Norm_Validation_Allele1 Match_Norm_Validation_Allele2 Verification_Status Validation_StatusMutation_Status Sequencing_Phase Sequence_Source Validation_Method Score BAM_File Sequencer Tumor_Sample_UUID Matched_Norm_Sample_UUID HGVSc HGVSp HGVSp_Short Transcript_ID Exon_Number t_depth t_ref_count t_alt_count n_depth n_ref_count n_alt_count all_effects Allele Gene Feature Feature_type Consequence cDNA_position CDS_position Protein_position Amino_acids Codons Existing_variation ALLELE_NUM DISTANCE STRAND_VEP SYMBOL SYMBOL_SOURCE HGNC_ID BIOTYPE CANONICAL CCDS ENSP SWISSPROT TREMBL UNIPARC RefSeq SIFT PolyPhen EXON INTRON DOMAINS AFAFR_AF AMR_AF ASN_AF EAS_AF EUR_AF SAS_AF AA_AF EA_AF CLIN_SIG SOMATIC PUBMED MOTIF_NAME MOTIF_POS HIGH_INF_POS MOTIF_SCORE_CHANGE IMPACT PICK VARIANT_CLASS TSL HGVS_OFFSET PHENO MINIMISED GENE_PHENO FILTER flanking_bps vcf_id vcf_qual gnomADe_AF gnomADe_AFR_AF gnomADe_AMR_AF gnomADe_ASJ_AF gnomADe_EAS_AF gnomADe_FIN_AF gnomADe_NFE_AF gnomADe_OTH_AF gnomADe_SAS_AF vcf_pos
OR4F5 79501 . GRCh38 chr1 69270 69270 + Silent SNP A A G rs201219564 TUMOR NORMAL A A c.243A>G p.Ser81= p.S81= ENST00000641515 3/3 OR4F5,synonymous_variant,p.Ser81=,ENST00000641515,NM_001005484.2;,regulatory_region_variant,,ENSR00000918279,; G ENSG00000186092 ENST00000641515 Transcript synonymous_variant 303/2618 243/981 81/326 S tcA/tcG rs201219564,COSV58736820 1 1 OR4F5 HGNC HGNC:14825 protein_coding YES CCDS30547.2 ENSP00000493376 A0A2U3U0J3.21 UPI000D1938F0 NM_001005484.2 3/3 0,1 LOW 1 SNV 0,1 Filter;common_variant CAC . 1155.73 0.838 0.3591 0.7932 0.8482 0.9984 0.8821 0.9146 0.868 0.9005 69270
基本信息
OR4F5
。79501
。.
)。GRCh38
。chr1
。69270
。69270
。+
)。变异信息Silent
(同义突变)。SNP
(单核苷酸多态性)。A
。A
。G
。样本信息
TUMOR
。NORMAL
。A
。其余后面的列为突变的详细注释信息,不再一样列举
如果你的vcf文件已经由VEP注释过,可以跳过VEP注释,仅转换格式
perl ~/software/vcf2maf-1.6.22/vcf2maf.pl \
--input-vcf ~/vep/vep_out/homo_test_vepout.vcf \
--output-maf homo_test_inhibit.vep.maf \
--inhibit-vep \ #跳过VEP注释
--ref-fasta ../hg38/hg38.fa
1、需指定参考fasta文件
perl ~/software/vcf2maf-1.6.22/vcf2maf.pl --input-vcf ../vcf/homo_test.filter.vcf --output-maf homo_test.vep.maf
需添加--ref-fasta
参数指定参考fasta文件
2、conda 安装的vep 运行报错 Zlib版本低
perl ~/software/vcf2maf-1.6.22/vcf2maf.pl --input-vcf ../vcf/homo_test.filter.vcf --output-maf homo_test.vep.maf --vep-path /home/data/t020560/miniconda3/envs/wes/bin/ --vep-data ~/vep_data --ref-fasta ../hg38/hg38.fa --ncbi-build GRCh38
报错信息
conda update -c conda-forge perl-compress-raw-zlib
升级Zlib,再次运行不再报错
3、vep cache缓存版本问题
cache目录
报错信息
已下载的缓存版本是vep 111 ,而默认调用的是112,所以可以使用--cache-version
自定义一下版本。