开通VIP,畅享免费电子书等14项超值服
首页
好书
留言交流
下载APP
联系客服
2021.08.19
变异检测得到的结果是检测样本的基因组序列与参考基因组序列之间的差异。本质上是一个将真实的变异从文库准备、样本富集、检测/测序和映射/比对产生的产物中分离出来的过程。想要进一步研究每一个变异的实际意义,需要将变异检测的结果和各种数据库进行关联,得到变异对应的基因、变异导致的氨基酸变化和变异的临床信息等生物学功能信息,这个过程叫做变异注释。本文详细介绍annovar注释工具的使用。
ANNOVAR是一个高效的开源注释工具,由perl编写,能够利用最新的数据来分析各种基因组中的SNP和Indel遗传变异,支持包括VCF在内的多种输入和输出文件格式。它能够从不同的基因组的变异位点对其进行功能注释(包括人类基因组hg18、hg19、hg38、以及鼠、蠕虫、酵母等),不过部分物种需要自己构建数据库。
主要包含三种不同的注释方法:gene-based,region-based和filter-based。基于基因的注释(Gene-basedAnnotation)揭示variant与已知基因直接的关系以及对其产生的功能性影响,基于区域的注释(Region-basedAnnotation)揭示variant与不同基因组特定区域的关系,例如:它是否落在转录因子结合区域等,基于筛选的注释(Filter-basedAnnotation)则分析变异位点是否位于指定的数据库中,比如dbSNP,1000G,ESP6500等数据库。
1.ANNOVAR的注册安装
该软件程序是用perl语言写的,所以可以作为独立程序运行于各个已经安装Perl的系统。解压直接用即可。
以下示例皆在linux系统中完成,且保证服务器有足够的存储空间。
2.ANNOVAR的程序模块
ANNOVAR程序有以下几个模块:
3.下载人类变异注释数据库
ANNOVAR的安装包里自带了一些常用的数据库,在humandb/目录下。
在ANNOVAR的主页面有用于注释的各种数据库的描述,如,dbSNP、ExAC、ESP6500、cosmic、gnomad、1000genomes、clinvar、gwas,且提供多个不同参考基因组版本的下载,可根据需求自行下载(注意数据库可能时有更新)。我们默认他们做的工作都是准确无误的,毕竟自己去一个个下载数据库一个个格式化成自己需要的格式,也是不小的工作量。
展示一下我自己下载的:
再展示一下我去隔壁用户那里顺的(符号/软链接):
4.ANNOVAR输入格式转换
(1)输入文件格式
ANNOVAR使用.avinput格式,用空格或者制表符分隔,最少需要5列,分别代表①染色体(Chromosome),②起始位置(Start),③终止位置(End),④参考等位基因(ReferenceAllele),⑤替代等位基因(AlternativeAllele),其他的列作为额外补充信息(可选)。插入或者删除以-表示,“0”代表只指定position,而不指定实际核苷酸。
文件示例:
(2)输入文件格式转换
ANNOVAR主要使用convert2annovar.pl程序进行转换,转换后文件是精简过的,主要包含前面提到的5列内容,如果要将原格式文件的所有内容都包含在转换后的.avinput文件中,可以使用-includeinfo参数;如果需要分开每个sample输出单一的.avinput文件,可以使用-allsample参数,等等。对于含有多个样本的vcf文件,格式转换时只会取其第一个样本进行注释,也就是说即使别的样本在这个位点有变异,只要第一个样本在某个位点没有变异转换时就会将这个位点去掉不会出现在注释文件中。如果想要得到所有样本的变异位点的注释的话,可以先将其拆分为几个样本的注释输入文件。
ANNOVAR主要支持以下等格式转换:VCF、SAMtoolspileupformat、CompleteGenomicsformat、GFF3-SOLiDcallingformat、SOAPsnpcallingformat、MAQcallingformat、CASAVAcallingformat……
注:
1).vcf文件在格式转换时,若突变位点有两个不同的等位基因则在结果文件中会分两行放。
2).在注释时,遇到格式不符合的行会跳过继续注释而不是终止注释,最后那些格式不符合的行会生成另一个文件(*.invalid_input)。
5.ANNOVAR注释功能
annovar提供了两个脚本以供注释使用:annotate_variation.pl一次注释一个数据库,table_annovar.pl一次注释多个数据库。
(1)table_annovar.pl(可一次完成基于基因、区域和filter三种类型的注释)
使用ANNOVAR最简单的方法就是使用table_annovar.pl进行注释,它的输入文件可以是多种格式包括VCF,输出文件已Tab分隔,每一列代表着一种注释。
注释命令示例:
输出的csv文件将包含输入的5列主要信息以及各个数据库里的注释,此外,table_annoval.pl可以直接对vcf文件进行注释(不需要转换格式),注释的内容将会放在vcf文件的“INFO”那一栏。注释结果示例:
(2)annotate_variation.pl
Annotate_variation.pl的注释方式分为三种:1)Gene-basedannotation;2)Region-basedannotation;3)Filter-basedannotation
1)基于基因的注释(Gene-basedAnnotation)
Gene-basedannotation是根据SNPs以及CNVs的位置信息来确定是否会造成编码序列以及开放阅读框的改变从而影响氨基酸的改变,使用者可以自主选择RefSeqgenes,包括UCSCgenes,ENSEMBLgenes,GENCODEgenes,AceViewgenes等来进行注释。注释后会生成两个文件:ex1.variant_function和ex1.exonic_variant_function。揭示variant与已知基因直接的关系以及对其产生的功能性影响。
命令示例:
ex1.variant_function注释所有变异所在基因及位置。第1列为变异所在的类型,如外显子等,第2列是对应的基因名(若有多个基因名用,隔开),第3-7列为输入的那5列主要信息,剩余为注释信息。如果变异找到多种注释,ANNOVAR将根据优先权重进行比较(见下表),取最优的表示,可以使用-seperate参数列出该变异所有注释。
ex1.exonic_variant_function详细注释外显子区域的变异功能、类型、氨基酸改变等。第1列为.variant_function文件中该变异所在行号,第2列为变异功能性后果,如外显子改变导致的氨基酸变化,阅读框移码,无义突变,终止突变等,第3列包括基因名称、转录识别标志和相应的转录本的序列变化,第4-9列为输入文件内容。
其与Gene-basedannotation作用相反,它是用来确认在特定区域的突变造成的影响。揭示variant与不同基因组特定区域的关系,例如:它是否落在已知的保守基因组区域(conservedgenomicregion),预测的转录因子结合区域(transcriptionfactorbindingsite),基因重复区域(segmentaldupliaction),GWAS分析区域等,还可以注释染色体坐标(cytoBand)。基于区域的注释的数据库一般由UCSC提供。此处以Conservedgenomicelementsannotation为例介绍region-basedannotation的使用:命令示例:
输出的注释文件第1列为注释文件库名,这里的phastCons46-wayalignments属于保守的基因组区域的注释,第二列包含评分和名称,可以使用-score_threshold和-normscore_threshold来过滤评分低的变异,剩余部分为输入文件的内容。
3)基于筛选的注释(Filter-basedAnnotation)
Filter-basedannotation是用以确认已记录在特定数据库里的突变。例如想要知道突变是否为novelvariation就需要知道该突变是否存在于dbSNP库里,它在1000genomeproject里面等位基因频率怎样,以及计算一系列突变项目得分并加以过滤。它区别于region-basedannotation就在于它针对突变碱基进行工作,而region-basedannotation针对染色体位置。举例来说就是region-based比对chr1:1000-1000而filter-based比对chr1:1000-1000上的A->G。
下面给介绍常用的两种过滤注释:
运行命令后,已存在于数据库中的变异写入*.droped文件,在数据库中不存在的变异信息将会被写入到*filtered文件。
1>1000GenomesProjectannotations
输出的注释文件第1列为注释文件库名,第二列为等位基因频率,可以使用-maf0.05参数来过滤掉低于0.05的变异,也可以使用-maf0.05-reverse参数来过滤掉高于0.05的变异,推荐使用-score_threshold参数来过滤ALT等位基因的频率,剩余部分为输入文件的内容。
2>dbSNPannotations
通过dbsnpannotation,annovar可以确认已经出现在dbSNP数据库里面的突变并且注释SNPidentifiers命令如下: