Annovar注释vcf-笔记

之前尝试使用了一些Call SNV的软件,但是结果是VCF形式呈现的,如果想对这些variants进行注释,那么必须使用注释软件,比如这次的annovar,当然也有类似的软件,比如snpEff等。

就annovar来说,其支持三种形式的注释,简单的说:

  1. Gene-based annotation :根据SNV或者CNV基于基因组的位置信息来看看这些variants是否会造成编码序列或者ORF的改变,从而是否会影响到氨基酸的改变
  2. Region-based annotation : 根据所提供的基因组的特定区域,来看看在这些特定区域的突变造成的影响
  3. Filter-based annotation : 这个可以理解为通过将自己的突变位点与已知突变数据库进行比较,看看某个突变在已知数据库中的信息,比如是否为novel variant,通过一定算法进行过滤

软件下载

在官网地址http://www.openbioinformatics.org/annovar/annovar_download_form.php,通过邮箱注册即可下载,官网提示最好用学校等机构的邮箱,个人邮箱可能会有点问题。

ANNOVAR软件其实是一个perl写的脚本,只要系统有perl就能运行,非常方便

首先可以在annovar/humandb目录下查看下有哪些数据库,一般来说会有一些最常见的针对人的数据库,比如hg19/hg38等相关的annovar数据库。当然我们也要可以自行下载一些annovar官网上的数据库,可在官网上查看http://annovar.openbioinformatics.org/en/latest/user-guide/download/

软件使用

以之前使用GATK获得的过滤后的VCF文件为例:

  1. 首先将vcf格式的文件转化为annovar识别的格式.avinput

    perl ~/biosoft/annovar/convert2annovar.pl -format vcf4 KPGP-00001_filtered_pass.snp.vcf >KPGP-00001_filtered_pass.snp.avinput
    

    vcf4表示输入文件是vcf格式

  2. 使用ANNOVAR开始注释,table_annovar.pl可一次完成三种类型的注释,但是我现在只想做第一种
    注释,那么需要用annotate_variation.pl即可

    perl ~/biosoft/annovar/annotate_variation.pl --geneanno --dbtype refGene --buildver hg19 --outfile KPGP-00001_filtered_pass.snp KPGP-00001_filtered_pass.snp.avinput ~/biosoft/annovar/humandb/
    

    –geneanno 表示使用第一类注释(Gene-based annotation)

    –dbtype 选择数据库,默认是refGene,其实还有knowGene,ensGene

    –buildver 表示基因组版本,一般根据你做Call SNP时所用基因组版本

    –outfile 输出文件的前缀

    如果结果报错,如:WARNING: A total of 405 sequences will be ignored due to lack of correct ORF annotation,其实这是正常的,因为这是参考基因组和genebank mRNA(其实也就是refGene)注释之间的差异罢了

    这里最后一个输入参数是数据库路径,一般来说最开始安装时的数据库里面只有一些annovar注释所用数据,比如Gene-based annotation所用的hg19的注释数据库。如果是想使用hg38的refGene注释的话,可以通过annotate_variation.pl脚本来下载,如下:

    perl ~/biosoft/annovar/annotate_variation.pl -buildver hg38 -downdb -webfrom annovar refGene humandb/
    

    输出结果主要看2个文件即可,XX.variant_function和XX.exonic_variant_function

    前者文件含有所有突变的注释,后者文件只含有在外显子上的突变注释

    文件每列的含义可以参考官网手册中的解释http://annovar.openbioinformatics.org/en/latest/user-guide/gene/

  3. 使用ANNOVAR中的第三类注释来过滤掉出现在已知突变数据库中的突变位点,比如dbSNP数据库为例:

    先下载snp138版dbSNP数据库

    perl ~/biosoft/annovar/annotate_variation.pl -buildver hg19 -downdb -webfrom annovar snp138  humandb/
    

    其实下载snp138NonFlagged更好,因为其是已经去除掉flagged SNPs (SNPs < 1% minor allele frequency (MAF) (or unknown), mapping only once to reference assembly, flagged in dbSnp as “clinically associated”),可以更好的识别novel variant

    然后就是将vcf文件在dbSNP数据库中注释并过滤

    annotate_variation.pl --filter --outfile KPGP-00001_filtered_pass.snp --buildver hg19 -dbtype snp138 KPGP-00001_filtered_pass.snp.avinput ~/biosoft/annovar/humandb/
    

    生成2个文件:1个为dropped file,另一个为filter file

    前者为出现在dbSNP内的突变,后者为不包含在dbSNP内的突变,具体可见http://annovar.openbioinformatics.org/en/latest/user-guide/filter/

Summary

其实ANNOVAR还有其他众多的功能,这里只介绍了最简单的2个用法,比如这里没说的table_annovar.pl可以利用众多数据库进行一次性注释三种类型的突变,非常实用。可以慢慢查看ANNOVOR文档来学习下

参考文章:
ANNOVAR的使用
NGS Exercise.7 annovar
annovar对人类基因组variants注释