20170222
ANNOVAR简介
ANNOVAR是由王凯编写的一个注释软件,可以对SNP和indel进行注释,也可以进行变异的过滤筛选。
ANNOVAR能够利用最新的数据来分析各种基因组中的遗传变异。主要包含三种不同的注释方法,Gene-based Annotation(基于基因的注释)、Region-based Annotation(基于区域的注释)、Filter-based Annotation(基于筛选的注释)。
ANNOVAR由Perl编写。
优点:提供多个数据可直接下载、支持多种格式、注释直观;
缺点:没有数据库的物种无法注释。
ANNOVAR结构
ANNOVAR
│ annotate_variation.pl #主程序,功能包括下载数据库,三种不同的注释
│ coding_change.pl #可用来推断蛋白质序列
│ convert2annovar.pl #将多种格式转为.avinput的程序
│ retrieve_seq_from_fasta.pl #用于自行建立其他物种的转录本
│ table_annovar.pl #注释程序,可一次性完成三种类型的注释
│ variants_reduction.pl #可用来更灵活地定制过滤注释流程
│
├─example #存放示例文件
│
└─humandb #人类注释数据库
ANNOVAR下载数据库
命令示例
[kaiwang@biocluster ~/]$ Perl annotate_variation.pl -buildver hg19 -downdb -webfrom annovar refGene humandb/
# -buildver 表示version
# -downdb 下载数据库的指令
# -webfrom annovar 从annovar提供的镜像下载,不加此参数将寻找数据库本身的源
# humandb/ 存放于humandb/目录下
ANNOVAR的官方文档列出了可供下载的数据库及版本、更新日期等信息,可用-downdb avdblist
参数查看。
ANNOVAR输入格式
01 |
[kaiwang@biocluster ~/]$ cat example/ex1.avinput |
02 |
1 948921 948921 T C comments: rs15842, a SNP in 5\\' UTR of ISG15 |
03 |
1 1404001 1404001 G T comments: rs149123833, a SNP in 3\\' UTR of ATAD3C |
04 |
1 5935162 5935162 A T comments: rs1287637, a splice site variant in NPHP4 |
05 |
1 162736463 162736463 C T comments: rs1000050, a SNP in Illumina SNP arrays |
06 |
1 84875173 84875173 C T comments: rs6576700 or SNP_A-1780419, a SNP in Affymetrix SNP arrays |
07 |
1 13211293 13211294 TC - comments: rs59770105, a 2-bp deletion |
08 |
1 11403596 11403596 - AT comments: rs35561142, a 2-bp insertion |
09 |
1 105492231 105492231 A ATAAA comments: rs10552169, a block substitution |
10 |
1 67705958 67705958 G A comments: rs11209026 (R381Q), a SNP in IL23R associated with Crohn\\'s disease |
11 |
2 234183368 234183368 A G comments: rs2241880 (T300A), a SNP in the ATG16L1 associated with Crohn\\'s disease |
12 |
16 50745926 50745926 C T comments: rs2066844 (R702W), a non-synonymous SNP in NOD2 |
13 |
16 50756540 50756540 G C comments: rs2066845 (G908R), a non-synonymous SNP in NOD2 |
14 |
16 50763778 50763778 - C comments: rs2066847 (c.3016_3017insC), a frameshift SNP in NOD2 |
15 |
13 20763686 20763686 G - comments: rs1801002 (del35G), a frameshift mutation in GJB2, associated with hearing loss |
16 |
13 20797176 21105944 0 - comments: a 342kb deletion encompassing GJB6, associated with hearing loss |
ANNOVAR使用.avinput格式,如以上代码所示,该格式每列以tab分割,最重要的地方为前5列,分别是:
1. 染色体(Chromosome)
2. 起始位置(Start)
3. 结束位置(End)
4. 参考等位基因(Reference Allele)
5. 替代等位基因(Alternative Allele)
6. 剩下为注释部分(可选)。
ANNOVAR主要也是依靠这5处信息对数据库进行比对,进而注释变异。
ANNOVAR格式转换
命令示例
1 |
$ convert2annovar.pl - format vcf4 example/ex2.vcf > ex2.avinput |
2 |
# -format vcf4 指定格式为vcf |
ANNOVAR主要使用convert2annovar.pl
程序进行转换,转换后文件是精简过的,主要包含前面提到的5列内容,如果要将原格式的文件的所有内容都包含在转换后的.avinput文件中,可以使用-includeinfo
参数;如果需要分开每个sample输出单一的.avinput文件,可以使用-allsample
参数,等等。
ANNOVAR还主要支持以下格式转换:
- SAMtools pileup format
- Complete Genomics format
- GFF3-SOLiD calling format
- SOAPsnp calling format
- MAQ calling format
- CASAVA calling format
ANNOVAR注释功能
用table_annovar.pl
进行注释(可一次性完成三种类型的注释)
命令示例
1 |
[kaiwang@biocluster ~/]$ table_annovar.pl example/ex1.avinput humandb/ -buildver hg19 -out myanno -remove -protocol refGene,cytoBand,genomicSuperDups,esp6500siv2_all,1000g2014oct_all,1000g2014oct_afr,1000g2014oct_eas,1000g2014oct_eur,snp138,ljb26_all -operation g,r,r,f,f,f,f,f,f,f -nastring . -csvout |
2 |
# -buildver hg19 表示使用hg19版本 |
3 |
# -out myanno 表示输出文件的前缀为myanno |
4 |
# -remove 表示删除注释过程中的临时文件 |
5 |
# -protocol 表示注释使用的数据库,用逗号隔开,且要注意顺序 |
6 |
# -operation 表示对应顺序的数据库的类型(g代表gene-based、r代表region-based、f代表filter-based),用逗号隔开,注意顺序 |
7 |
# -nastring . 表示用点号替代缺省的值 |
输出的csv文件将包含输入的5列主要信息以及各个数据库里的注释,此外,table_annoval.pl
可以直接对vcf文件进行注释(不需要转换格式),注释的内容将会放在vcf文件的“INFO”那一栏。
Gene-based Annotation(基于基因的注释)
基于基因的注释(gene-based annotation)揭示variant与已知基因直接的关系以及对其产生的功能性影响,需要使用for gene-based
的数据库。
命令示例
1 |
[kaiwang@biocluster ~/]$ annotate_variation.pl -geneanno -dbtype refGene -out ex1 -build hg19 example/ex1.avinput humandb/ |
2 |
# -geneanno 表示使用基于基因的注释 |
3 |
# -dbtype refGene 表示使用"refGene"数据库 |
4 |
# -out ex1 表示输出文件以ex1为前缀 |
因为annotate_variation.pl
默认使用gene-based注释类型以及refGene数据库,所以上面的命令可以缺省-geneanno -dbtype refGene
。
运行命令后将会生成3个文件:
- ex1.variant_function 注释所有变异所在基因及位置
- ex1.exonicvariantfunction 详细注释外显子区域的变异功能、类型、氨基酸改变等
- ex1.ann.log log文件,包含运行的命令行及运行提示,所用数据库文件
ex1.variant_function
第一个文件以.variant_function
结尾,主要的内容如下
01 |
[kaiwang@biocluster ~/]$ cat ex1.variant_function |
02 |
UTR5 ISG15(NM_005101:c.-33T>C) 1 948921 948921 T C comments: rs15842, a SNP in 5\\' UTR of ISG15 |
03 |
UTR3 ATAD3C(NM_001039211:c.*91G>T) 1 1404001 1404001 G T comments: rs149123833, a SNP in 3\\' UTR of ATAD3C |
04 |
splicing NPHP4(NM_001291593:exon19:c.1279-2T>A,NM_001291594:exon18:c.1282-2T>A,NM_015102:exon22:c.2818-2T>A) 1 5935162 5935162 A T comments: rs1287637, a splice site variant in NPHP4 |
05 |
intronic DDR2 1 162736463 162736463 C T comments: rs1000050, a SNP in Illumina SNP arrays |
06 |
intronic DNASE2B 1 84875173 84875173 C T comments: rs6576700 or SNP_A-1780419, a SNP in Affymetrix SNP arrays |
07 |
intergenic LOC645354(dist=11566),LOC391003(dist=116902) 1 13211293 13211294 TC - comments: rs59770105, a 2-bp deletion |
08 |
intergenic UBIAD1(dist=55105),PTCHD2(dist=135699) 1 11403596 11403596 - AT comments: rs35561142, a 2-bp insertion |
09 |
intergenic LOC100129138(dist=872538),NONE(dist=NONE) 1 105492231 105492231 A ATAAA comments: rs10552169, a block substitution |
10 |
exonic IL23R 1 67705958 67705958 G A comments: rs11209026 (R381Q), a SNP in IL23R associated with Crohn\\'s disease |
11 |
exonic ATG16L1 2 234183368 234183368 A G comments: rs2241880 (T300A), a SNP in the ATG16L1 associated with Crohn\\'s disease |
12 |
exonic NOD2 16 50745926 50745926 C T comments: rs2066844 (R702W), a non-synonymous SNP in NOD2 |
13 |
exonic NOD2 16 50756540 50756540 G C comments: rs2066845 (G908R), a non-synonymous SNP in NOD2 |
14 |
exonic NOD2 16 50763778 50763778 - C comments: rs2066847 (c.3016_3017insC), a frameshift SNP in NOD2 |
15 |
exonic GJB2 13 20763686 20763686 G - comments: rs1801002 (del35G), a frameshift mutation in GJB2, associated with hearing loss |
16 |
exonic CRYL1,GJB6 13 20797176 21105944 0 - comments: a 342kb deletion encompassing GJB6, associated with hearing loss |
注释后输出的文件,同样每列以tab分割,第1列为变异所在的类型,如外显子(exonic)、UTR5、UTR3等(官方文档有详细的类型列表)。
如果第1列的为外显子、内含子或者非编码RNA,第二行将是对应的基因名(有多个基因名则会以逗号隔开);否则第二列将会给出相邻的两个基因以及对应的距离。
从第3列开始至第7列为输入的那5列主要信息,剩余为注释信息。
需要注意的是,如果该变异找到多种注释,ANNOVAR将会对它进行比较,以exonic = splicing > ncRNA > UTR5/UTR3 > intron > upstream/downstream > intergenic 的优先权重,取最优的表示,如果你想ANNOVAR列出该变异所有注释,可以使用--separate
参数。
ex1.exonic_variant_function
第二个输出文件以.exonic_variant_function
结尾,只列出外显子(氨基酸会改变)的变异,主要内容如下
1 |
[kaiwang@biocluster ~/]$ cat ex1.exonic_variant_function |
2 |
line9 nonsynonymous SNV IL23R:NM_144701:exon9:c.G1142A:p.R381Q, 1 67705958 67705958 G A comments: rs11209026 (R381Q), a SNP in IL23R associated with Crohn\\'s disease |
3 |
line10 nonsynonymous SNV ATG16L1:NM_001190267:exon9:c.A550G:p.T184A,ATG16L1:NM_017974:exon8:c.A841G:p.T281A,ATG16L1:NM_001190266:exon9:c.A646G:p.T216A,ATG16L1:NM_030803:exon9:c.A898G:p.T300A,ATG16L1:NM_198890:exon5:c.A409G:p.T137A, 2 234183368 234183368 A G comments: rs2241880 (T300A), a SNP in the ATG16L1 associated with Crohn\\'s disease |
4 |
line11 nonsynonymous SNV NOD2:NM_022162:exon4:c.C2104T:p.R702W,NOD2:NM_001293557:exon3:c.C2023T:p.R675W, 16 50745926 50745926 C comments: rs2066844 (R702W), a non-synonymous SNP in NOD2 |
5 |
line12 nonsynonymous SNV NOD2:NM_022162:exon8:c.G2722C:p.G908R,NOD2:NM_001293557:exon7:c.G2641C:p.G881R, 16 50756540 50756540 G comments: rs2066845 (G908R), a non-synonymous SNP in NOD2 |
6 |
line13 frameshift insertion NOD2:NM_022162:exon11:c.3017dupC:p.A1006fs,NOD2:NM_001293557:exon10:c.2936dupC:p.A979fs, 16 50763778 5076377comments: rs2066847 (c.3016_3017insC), a frameshift SNP in NOD2 |
7 |
line14 frameshift deletion GJB2:NM_004004:exon2:c.35delG:p.G12fs, 13 20763686 20763686 G - comments: rs1801002 (del35G), a frameshift mutation in GJB2, associated with hearing loss |
8 |
line15 frameshift deletion GJB6:NM_001110221:wholegene,GJB6:NM_001110220:wholegene,GJB6:NM_001110219:wholegene,CRYL1:NM_015974:wholegene,GJB6:NM_006783:wholegene, 13 20797176 21105944 0 - comments: a 342kb deletion encompassing GJB6, associated with hearing loss |
该文件的第1列为.variant_function
文件中该变异所在的行号;第2列为该变异的功能性后果,如非同义SNV、同义SNV、移码插入等(官方文档同样有详细的类型列表);第3列包括基因名称、转录识别标志和相应的转录本的序列变化。第四列开始为输入文件的内容。
Region-based Annotation(基于区域的注释)
基于过滤的注释精确匹配查询变异与数据库中的记录:如果它们有相同的染色体,起始位置,结束位置,REF的等位基因和ALT的等位基因,才能认为匹配。基于区域的注释看起来更像一个区域的查询(这个区域也可以是一个单一的位点),在一个数据库中,它不在乎位置的精确匹配,它不在乎核苷酸的识别。
基于区域的注释(region-based annotation)揭示variant与不同基因组特定段的关系,例如:它是否落在已知的保守基因组区域。基于区域的注释的数据库一般由UCSC提供。
命令示例
1 |
[kaiwang@biocluster ~/]$ annotate_variation.pl -regionanno -build hg19 -out ex1 -dbtype phastConsElements46way example/ex1.avinput humandb/ |
2 |
# -regionanno 表示使用基于区域的注释 |
3 |
# -dbtype phastConsElements46way 表示使用"phastConsElements46way"数据库,注意需要使用Region-based的数据库 |
输出文件是ex1.hg19_phastConsElements46way
,可以看到,Region-based 注释将会生成以注释数据库为后缀的注释文件。该文件主要内容有
1 |
[kaiwang@biocluster ~/]$ cat ex1.hg19_phastConsElements46way |
2 |
phastConsElements46way Score=387;Name=lod=50 1 67705958 67705958 G A comments: rs11209026 (R381Q), a SNP in IL23R associated with Crohn\\'s disease |
3 |
phastConsElements46way Score=420;Name=lod=68 16 50756540 50756540 G C comments: rs2066845 (G908R), a non-synonymous SNP in NOD2 |
4 |
phastConsElements46way Score=385;Name=lod=49 16 50763778 50763778 - C comments: rs2066847 (c.3016_3017insC), a frameshift SNP in NOD2 |
5 |
phastConsElements46way Score=395;Name=lod=54 13 20763686 20763686 G - comments: rs1801002 (del35G), a frameshift mutation in GJB2, associated with hearing loss |
6 |
phastConsElements46way Score=545;Name=lod=218 13 20797176 21105944 0 - comments: a 342kb deletion encompassing GJB6, associated with hearing loss |
输出的注释文件第1列为“phastConsElements46way”,对应注释的类型,这里的phastCons 46-way alignments属于保守的基因组区域的注释;第二列包含评分和名称,评分来自UCSC,可以使用--score_threshold
和--normscore_threshold
来过滤评分低的变异,“Name=lod=x”名称表示该区域的名称;剩余的部分为输入文件的内容。
Filter-based Annotation(基于过滤的注释)
filter-based和region-based主要的区别是,filter-based针对mutation(核苷酸的变化)而region-based针对染色体上的位置。例如region-based比对chr1:1000-1000而filter-based比对chr1:1000-1000上的A->G。
基于过滤的注释,使用不同的过滤数据库,可以给出这个variant的一系列信息。如在全基因组数据中的变异频率,可使用1000g2015aug、kaviar_20150923等数据库;在全外显组数据中的变异频率,可使用exac03、esp6500siv2等;在孤立的或者低代表人群中的变异频率,可使用ajews等数据库。(在ANNOVAR官方文档中也有详细的介绍)
命令示例
1 |
[kaiwang@biocluster ~/]$ annotate_variation.pl -filter -dbtype 1000g2012apr_eur -buildver hg19 -out ex1 example/ex1.avinput humandb/ |
3 |
# -dbtype 1000g2012apr_eur 使用"1000g2012apr_eur"数据库 |
运行命令后,已知的变异会被写入一个*dropped
结尾的文件,而没有在数据库中找到的变异将会被写入*filtered
结尾的文件,*dropped
文件是我们所需要的结果。这个文件内容如下
01 |
[kaiwang@biocluster ~/]$ cat ex1.hg19_EUR.sites.2012_04_dropped |
02 |
1000g2012apr_eur 0.04 1 1404001 1404001 G T comments: rs149123833, a SNP in 3\\' UTR of ATAD3C |
03 |
1000g2012apr_eur 0.87 1 162736463 162736463 C T comments: rs1000050, a SNP in Illumina SNP arrays |
04 |
1000g2012apr_eur 0.81 1 5935162 5935162 A T comments: rs1287637, a splice site variant in NPHP4 |
05 |
1000g2012apr_eur 0.06 1 67705958 67705958 G A comments: rs11209026 (R381Q), a SNP in IL23R associated with Crohn\\'s disease |
06 |
1000g2012apr_eur 0.54 1 84875173 84875173 C T comments: rs6576700 or SNP_A-1780419, a SNP in Affymetrix SNP arrays |
07 |
1000g2012apr_eur 0.96 1 948921 948921 T C comments: rs15842, a SNP in 5\\' UTR of ISG15 |
08 |
1000g2012apr_eur 0.05 16 50745926 50745926 C T comments: rs2066844 (R702W), a non-synonymous SNP in NOD2 |
09 |
1000g2012apr_eur 0.01 16 50756540 50756540 G C comments: rs2066845 (G908R), a non-synonymous SNP in NOD2 |
10 |
1000g2012apr_eur 0.01 16 50763778 50763778 - C comments: rs2066847 (c.3016_3017insC), a frameshift SNP in NOD2 |
11 |
1000g2012apr_eur 0.53 2 234183368 234183368 A G comments: rs2241880 (T300A), a SNP in the ATG16L1 associated with Crohn\\'s disease |
*dropped
文件第1列如region-based注释的结果一样以数据库命名;第二列为等位基因频率,我们可以用-maf 0.05
参数来过滤掉低于0.05的变异,;第三列开始同样是输入文件的内容。
需要注意的是,我们也可以使用-maf 0.05 -reverse
过滤掉高于0.05的变异;但是过滤ALT等位基因的频率,我们更提倡使用-score_threshold
参数。
ANNOVAR其他程序
ANNOVAR包里还有
- Variants_Reduction: prioritizing causal variants
- Coding_Change: Infer mutated protein sequence
- RetrieveSeqfrom_FASTA: Retrieve nucleotide/protein sequences
三个程序没有介绍,可以参考官方文档的Accessory Programs自行了解。
参考文献:
原文来自:http://zhengzexin.com/2016/04/28/annovar-zhu-
- 《Effective Java》学习笔记——积累和激励
从一个实际案例说起 国庆长假前一个礼拜,老大给我分配了这么一个bug,就是打印出来的报表数量为整数的,有的带小数位,有的不带,毫无规律. 根据短短的两个多月的工作经验以及猜测,最终把范围缩小到以下这段 ...
- 【知识积累】try-catch-finally+return总结
一.前言 对于找Java相关工作的读者而言,在笔试中肯定免不了遇到try-catch-finally + return的题型,需要面试这清楚返回值,这也是这篇博文产生的由来.本文将从字节码层面来解释为 ...
- 项目积累(三)CSS
公司不是专门做网站的,偶尔会接到客户让修改前端,有时候和让头疼,自己浏览器兼容问题处理不好. 慢慢积累吧. 先贴出来一些前端代码吧,如下: <div class="test" ...
- 【知识积累】SBT+Scala+MySQL的Demo
一.背景 由于项目需要,需要在Sbt+Scala项目中连接MySQL数据库.由于之前使用Maven+Java进行依赖管理偏多,在Sbt+Scala方面也在不断进行摸索,特此记录,作为小模块知识的积累. ...
- 积累一下SQL
开篇先自我检讨一下,写了博客几年以来首次试过连续两个月没出过博文,有客观也有主观原因,但是最近这年里博文数量也越来越少,博文的质量也每况日下.希望自己一直能坚持下来,多写写博文,这月尽量多写几篇来弥补 ...
- mutation annovar
1.annovar 很全面 http://annovar.openbioinformatics.org: 2.http://blog.goldenhelix.com/:
- Oracle----SQL语句积累 (Oracle 导入 dmp文件)
Oracle----SQL语句积累 (Oracle 导入 dmp文件) Oracle SQL PL 导入dum文件 1.数据库DBA权限: 注意:这个是在cmd命令行中直接输入,不需要进入Oracl ...
- 记一些之前忘记积累的问题(fiddler 学习、XP系统不能上网、XP不能装fiddler、注册表快速找到)
记一些之前忘记积累的问题: fiddler学习:http://www.cnblogs.com/kingwolf_JavaScript/archive/2012/11/07/FiddlerUI.html ...
- python积累
python积累 一.逐渐积累 python逐渐积累 http://www.cnblogs.com/lx63blog/articles/6051526.html python积累_2 http://w ...
随机推荐
- fish shell 下gopath的设置问题
GOPATH可以设置多个工程目录,linux下用冒号分隔(必须用冒号,fish shell的空格分割会出错),windows下用分号分隔,但是go get 只会下载pkg到第一个目录,但是编译的时候会 ...
- qsv转换为mp4
1:下载 装换工具:http://www.downza.cn/soft/27484.html 2:双击打开exe可执行程序. 3:添加要转换的文件,和转换后要存储的位置 4:开始转换,转换为flv格 ...
- html10
1.动画fadeIn() - 淡入fadeOut() - 淡出 -通过改变透明度(opacity隐藏之后依旧占着位置)实现节点的显示和隐藏show() - 显示hide() - 隐藏 -同时改变节点的 ...
- Java编写验证码
Java后台代码(CheckCodeServlet.java) package web; import java.awt.Color; import java.awt.Font; import jav ...
- 树结构数据的展示和编辑-zTree树插件的简单使用
最近在项目当中遇到一个需求,需要以树结构的方式展示一些数据,并可对每一个树节点做内容的编辑以及树节点的添加和删除,刚好听说有zTree这个插件可以实现这样的需求,所以在项目的这个需求完成之后,在博客里 ...
- 20155239 2016-2017-2 《Java程序设计》第5周学习总结
教材内容学习 第八章 JAVA异常架构 Java异常是Java提供的一种识别及响应错误的一致性机制. Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性 ...
- 持续集成之三:搭建Maven私服Nexus
安装环境 Red Hat Enterprise Linux Server release 7.3 (Maipo) jdk1.7.0_80 apache-tomcat-7.0.90 mysql-5.7. ...
- Java设计模式应用——桥接模式
性能管理系统中,数据产生后需要经过采集,汇聚,入库三个流程,用户才能查询使用. 采集可以是snmp采集,也可以是ems采集:汇聚可以使storm汇聚,也可以是spark汇聚:入库可以是hdfs入库,也 ...
- Centos7下添加Tomcat为系统服务
文章参考:点击打开链接 因为个人感觉在centos中启动tomcat比较麻烦.要一直cd到目录下面startup.sh才可以,所以网上找到将tomcat作为系统服务,使用systemctl直接启动方法 ...
- Linux下实现 OpenSSL 简单加密与解密字符串
场景 shell脚本中存在明文密码 客户要求禁止使用明文密码,密码做加密处理. 方案 在网上了解到了Linux OpenSSL加密解密工具 可以指定各种加密算法为字符,文件做加密处理. 加密的案例比较 ...