annovar软件组件介绍之一——table_annovar.pl(译)

对于初学者,使用ANNOVAr的最简单方法是使用table_annovar.pl程序,该程序采用输入突变文件(例如,VCF文件)并生成带有多个制表符分隔的输出文件,每个列表示一组注释。另外,如果输入是VCF文件,则程序还生成新的VCF输出文件,其中INFO字段填充有注释信息。

假设我们已经下载了ANNOVAR包并使用tar zxvf annovar.latest.tar.gz解压缩包。您将看到bin/目录包含有多个.pl后缀的Perl程序。(注意,如果您已将ANNOVAR路径添加到系统可执行文件路径中,则键入annotate_variation.pl即可,而不是键入perl annotate_variation.pl。首先,我们需要使用annotate_variation.pl下载相应的数据库文件,然后我们将运行table_annovar.pl程序来注释example/ex1.avinput文件中的突变。

[yhwang@biocluster ~/]$ annotate_variation.pl -buildver hg19 -downdb -webfrom annovar refGene humandb/
[yhwang@biocluster ~/]$ annotate_variation.pl -buildver hg19 -downdb cytoBand humandb/
[yhwang@biocluster ~/]$ annotate_variation.pl -buildver hg19 -downdb -webfrom annovar exac03 humandb/
[yhwang@biocluster ~/]$ annotate_variation.pl -buildver hg19 -downdb -webfrom annovar avsnp147 humandb/
[yhwang@biocluster ~/]$ annotate_variation.pl -buildver hg19 -downdb -webfrom annovar dbnsfp30a humandb/
[yhwang@biocluster ~/]$ table_annovar.pl example/ex1.avinput humandb/ -buildver hg19 -out myanno -remove -protocol refGene,cytoBand,exac03,avsnp147,dbnsfp30a -operation gx,r,f,f,f -nastring . -csvout -polish -xref example/gene_fullxref.txt

输入文件包含多个列,前几列是您的输入列,以下每个列对应于用户在命令行中指定的“协议”之一。Func.refGene, Gene.refGene, GeneDetail.refGene, ExonicFunc.refGene, AAChange.refGene列包含关于突变如何影响基因结构的各种注释。Xref.refGene列包含基因的交叉引用;在这种情况下,已知的遗传疾病是否是由该基因的缺陷引起的(该信息在命令行的示例/gene_fullxref.txt文件中被填充)。对于接下来的几列,ExAC *列表示所有样本中的等位基因频率以及Exome Aggregation Consortium数据集中的子群体,而avsnp147表示dbSNP 147版本中的SNP标识符。其它列包含预测非同义突变使用几种广泛工具的得分,PolyPhen2 HDIV得分、PolyPhen2 HVAR得分,LRT得分,MutationTaster得分,MutationAssessor得分,FATHMM得分,GERP ++得分,CADD得分,DANN得分,PhyloP得分和SiPhy得分等等。

我们可以更加详细地检查命令行。-operation参数指定ANNOVAR每个协议使用哪些操作:g表示基于基因,gx表示基于基因的交叉引用注释(来自-xref参数),r表示基于区域,f表示基于过滤器。如果您不提供外部参考文件,则操作只能是g。您将在其他网页中找到有关基因/区域/基于过滤器的注释的详细信息。有时,用户需要制表符分隔文件而不是逗号分隔文件,删除上述命令的-csvout参数就可以完成。

在上面的命令中,我们使用-xreffile参数为基因组提供注释。如果文件包含标题行,则可以为基因提供多个注释(而不仅仅是一个列)。为了说名这一点,我们可以检查example/gene_fullxref.txt文件的前两行(包括标题行)。

[yhwang@biocluster ~/project/annotate_variation]$ head -n 2 example/gene_fullxref.txt
#Gene_name      pLi     pRec    pNull   Gene_full_name  Function_description    Disease_description     Tissue_specificity(Uniprot)     Expression(egenetics)  Expression(GNF/Atlas)    P(HI)   P(rec)  RVIS    RVIS_percentile GDI     GDI-Phred
A1BG    9.0649236354772e-05     0.786086131023045       0.2138232197406 alpha-1-B glycoprotein  .       .       TISSUE SPECIFICITY: Plasma.;    unclassifiable (Anatomical System);amygdala;prostate;lung;islets of Langerhans;liver;spleen;germinal center;brain;thymus;       fetal liver;liver;fetal lung;trigeminal ganglion;       0.07384 0.31615 -0.466531444    23.51380042     79.3774 1.88274

标题行以#开头。然后,交叉引用文件包含15种基因注释。您可以运行上面的相同命令,结果文件可以从此处下载。下面显示了部分文件,为用户提供了一个示例:

table_annovar.pl可以直接支持VCF文件的输入和输出(注释将被写入输出VCF文件的INFO字段)。我们试试这个:

[yhwang@biocluster ~/]$ table_annovar.pl example/ex2.vcf humandb/ -buildver hg19 -out myanno -remove -protocol refGene,cytoBand,exac03,avsnp147,dbnsfp30a -operation g,r,f,f,f -nastring . -vcfinput

您可以在此处下载输出文件:ex2.hg19_multianno.vcf。此外,制表符分隔的输出文件也可以(例如, ex2.hg19_multianno.txt),其中包含不同格式的类似信息。您可以在文本编辑器中打开新的VCF文件,并检查文件中已更改的内容:VCF文件中的INFO字段现在包含您需要的注释,以字符串ANNOVAR_DATE开始,ALLELE_END结束。如果多个等位基因位于同一个基因座中,您将在INFO字段中看到多个此类符号。屏幕截图如下所示:

annotate_variation.pl

annotate_variation.pl程序是ANNOVAR中的核心程序。 我们可以转到ANNOVAR目录,然后逐个运行以下三个命令。

annotate_variation.pl -geneanno -dbtyep refGene -buildver hg19 example/ex1.avinput humandb/
annotate_variation.pl -regionanno -dbtype cytoBand -buildver hg19 example/ex1.avinput humandb/
annotate_variation.pl -filter -dbtype exac03 -buildver hg19 example/ex1.avinput humandb/

这三个命令分别对应于基于基因、基于区域和基于过滤器的注释。

第一个命令注释ex1.avinput文件中的12种突变,并将它们分类为intergenic、intronic、non-synonymous SNP、feameshift delete、large-scale duplication等。

检查ex1.avinput文件以查看简单文本格式,每一行对应一个突变。花费几秒钟完成注释,生成两个输出文件为ex1.avinput.variant_function和ex1.avinput.exonic_variant_function。检查example/目录中的两个输出文件以查看它们包含的内容:在variant_function文件中,第一列和第二列注释突变对基因结构和受影响的基因,但其他列则从输入文件中重现。在exonic_variant_function文件中,第一,第二和第三列注释输入文件中的突变行号,突变对编码序列的影响和基因/转录本受到影响,但其他列从输入文件中复制。

接下来,该程序在ex1.avinput文件中注释突变,并为这些突变识别细胞遗传学带。注释过程应该小几秒钟。检查输出文件ex1.avinput.hg19_cytoBand以查看它包含的内容。第一列显示cytoBand,第二列显示注释结果,其他列从输入文件中再现。

接下来,程序识别ex1.avinput中exac03数据库中未观察到的突变子集(保存在ex1.avinput.hg19_exac03_filtered中)以及用等位基因频率观察到的突变子集(保存在ex1.avinput.hg19_exac03_dropped文件中)。

上述命令代表了一组关于ANNOVAR如何帮助研究人员宣传高通量测序数据产生的遗传变异的基本实例。

参考资料

ANNOVAR Guide

ANNOVAR工具的更多相关文章

  1. 突变注释工具SnpEff,Annovar,VEP,oncotator比较分析--转载

    https://www.jianshu.com/p/6284f57664b9 目前对于variant进行注释的软件主要有4个: Annovar, SnpEff, VEP(variant Effect ...

  2. 【software】变异注释工具:annovar

    annovar提供三种注释方式 一,基于基因的注释 给定变异,看变异是否影响编码蛋白的改变 支持基因定义系统:RefSeq genes, UCSC genes, ENSEMBL genes, GENC ...

  3. annovar 注释除人类以外的SNP

    1. 准备文件: ref.fa ref.gtf或者gff3,最好是gtf3,可将gff3转化为gtf sample.vcf 2. 用gff3ToGenePred与gtfToGenePred工具将gtf ...

  4. Unity3d入门 - 关于unity工具的熟悉

    上周由于工作内容较多,花在unity上学习的时间不多,但总归还是学习了一些东西,内容如下: .1 根据相关的教程在mac上安装了unity. .2 学习了unity的主要的工具分布和对应工具的相关的功 ...

  5. 细说前端自动化打包工具--webpack

    背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的都知道,做网页就像用word编辑文档 ...

  6. 应用工具 .NET Portability Analyzer 分析迁移dotnet core

    大多数开发人员更喜欢一次性编写好业务逻辑代码,以后再重用这些代码.与构建不同的应用以面向多个平台相比,这种方法更加容易.如果您创建与 .NET Core 兼容的.NET 标准库,那么现在比以往任何时候 ...

  7. .NetCore中的日志(2)集成第三方日志工具

    .NetCore中的日志(2)集成第三方日志工具 0x00 在.NetCore的Logging组件中集成NLog 上一篇讨论了.NetCore中日志框架的结构,这一篇讨论一下.NetCore的Logg ...

  8. dll文件32位64位检测工具以及Windows文件夹SysWow64的坑

    自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别 ...

  9. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

随机推荐

  1. Vue组件通信(传值)

    先介绍一下什么是组件把: 创建组件的两种方式: 全局组件 // 组件就是vue的一个拓展实例 let component=Vue.extend({ data(){ return{ //与vue实例中的 ...

  2. web框架详解之tornado 三 url和分页

    一.代码目录构建 controllers  :处理业务逻辑的 account:处理账户相关的 上面目录作用和内容 controllers 包 :处理业务逻辑的 account:处理账户相关的 home ...

  3. mysql 索引技巧

    索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型. 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytabl ...

  4. 算法(Algorithms)第4版 练习 1.5.8

    假设原id数组: 0 1 1 4 4 8 6 1 8 0 输入p = 5, q = 7 则输出结果会出错,最终为: 0 1 1 4 4 1 6 1 8 0 因为当id[p](id[5] = 8)被赋值 ...

  5. Hive- 表

    在hive中表的类型:管理表和托管表(外部表). 内部表也称之为MANAGER_TABLE,默认存储在/user/hive/warehouse下,也可以通过location指定:删除表时,会删除表的数 ...

  6. javascript 数组 去重

    javascript数组去重有如下 方法: 一) 利用 数组中的 indexOf判断  例如: Array.prototype.unique=function(){ var n=[]; for(var ...

  7. BEC listen and translation exercise 45

    So the Counselling Services we offer deal with any problems arising from your studies or in your lif ...

  8. 如何查看myeclipse是否激活

    myEclipse---->Subscription information--->Subscription expiration date 看这个日期到什么时候!另外建议别用太高版本的M ...

  9. Java面试题10(如何取到set集合的第一个元素)

    1.如何取到set集合的第一个元素. public static void main(String[] args) { Set set = new HashSet(); set.add("x ...

  10. node.js的国内源

    node.js在使用npm安装包是,由于源是国外的,有可能会被GFW屏蔽. 通过下面的方法可以把源指向国内的. 具体方法如下: 编辑 ~/.npmrc 加入下面内容 registry = http:/ ...