https://www.jianshu.com/p/6284f57664b9
目前对于variant进行注释的软件主要有4个: Annovar, SnpEff, VEP(variant Effect Predictor), Oncotator, 选择合适的软件注释variants对于下游分析是很关键的, 今天我们来比较下这4种软件在variants 注释上的差异,进而帮助我们选择更合适的注释软件.

首先简要介绍下这4个软件的一些特点:

  • Oncotator: 主要用于癌症特异性突变位点的注释,下面不做过多解释.注释结果为MAF格式(也是TCGA使用的突变注释格式),也可以用于格式转换(将VCF文件转为MAF格式).但基因组文件使用的是hg19(GENCODE)版本,截止到目前并没有更新到GRCh38.(基于python)
  • SnpEff: 支持超过38000个基因组, 并且目前已经支持肿瘤突变分析.之前是与gatk不兼容的,但现在已经修复.并且还有衍生工具SnpSift用于过滤和操作SnpEff的结果文件(VCF格式).现在还发布了集成了SnpEffSnpsift的专业版软件ClinEff,这个主要是面向临床和精准医疗的.(基于java)
  • Annovar: 也支持多个基因组(包括 hg18, hg19, hg38,也有小鼠,虫等物种),能够确定SNP或CNV是否导致蛋白质编码变化以及受影响的氨基酸,并且能够自主的选择基因定义系统(如RefSeq/UCSC/Ensemble等).也能识别特定基因组区域的variants,如保守性区域,TFBS,DHS,组蛋白结合修饰区域. 也能关联其他数据库对variants进行注释,如dbSNP/1000 Genome Project等. 还能检索用户自定义的基因组位置,识别孟德尔疾病的可能的基因列表.(基于perl)
  • VEP(Variant Effect Predictor): 最初发布于2010年(PMID:20562413),16年(PMID:27268795)时又发布了新的版本做了很大改进,现在主要可以进行序列变异和结构变异注释.(基于perl)
Software citation Journal IF Year Pebmed ID
snpEff 1,232 FLY 0.9 2012 22728672
Annovar 1814 NAR 10 2012 20601685
VEP 80 Genome Biol 11.3 2016 27268795

运行时间的比较:

 
运行时间比较(来源:PMID:27268795)

基因组的选择对于variants的注释的影响:

首先说明的是,基因组的选择对于variants的注释具有很大的影响, 在《Choiceof transcripts and software has a large effect on variantannotation》(Genome Medicine,IF 7.1)这篇文献里,作者对WGS的8千万个variants, 分别使用基因组REFseqEnsemble注释的时候,发现两个基因组注释出的loss-of-function variants部分仅有44%的一致性,并且loss-of-functionnonsymnonymous加起来的一致性是79%,exonic variants的一致性是83%.

而我们一般关注较多的部分是loss-of-function,两个基因组文件注释结果仅有不到一半的一致性(44%), 作者给出的解释是:基因组间的差异是由于EnsembleREFseq的转录本数量不同造成的,而Ensemble中有更多的转录本,Ensemble 试图对每个基因都产生全面完整的转录本注释,而并非高可信度的转录本. 这意味着Ensemble注释存在更多的剪切位点,是造成差异的主要原因. 并且有些转录本起始于开放阅读框之外,如果variant 注释工具不处理这些开放阅读框之外的部分将会导致不准确的注释.

不同注释软件(Annovar和VEP)对于注释的影响:

不同注释软件对于注释的影响很大,还是上面那篇文献,以Ensemble为参考基因组,使用AnnovarVEP分别注释后,loss-of-function部分的matching只有65%,所有exonic variants的matchig是87%. 并且在一些位点的注释两个软件都不准确,具体看下面的例子:

 
两个注释例子

上图图A是是rs7103033突变示例,最后一个外显子的最后一个碱基由A变为G,所以导致的结果就是由TGA(终止子)变为TGG(色氨酸),导致终止子缺失,所以应该被注释为stop-loss.AnnovarVEP的注释都是对的. 但是看图B,也是最后一个外显子(最后是TGA终止密码子)突变,但这次是插入突变,在第二个碱基的后插入了一个A,单碱基插入应该被注释为framethift,并且插入的位置是一个终止子,所以也是个stop-loss,但事实上,即使插入A后这依旧还是个终止子,这其实是个同义突变.然而Annovar将其注释为frameshift insertion,VEP将其注释为stop-loss,都是不准确的.

需要说明的一点是:但这篇文献是13年的了,这两个软件是10年发布的,在这几年里这两个软件已经做了很多更新,做出了很多修正, 但对于一些重要的值得关注的突变,我们还是需要在基因组浏览器里看下突变的印象究竟是什么而不能全部信任软件的注释结果.

为什么这么说呢,在14年的一篇博客上(点击左下角阅读全文查看)博主比较了三大主流注释软件(Annovar,snpEffVEP),并通过几个例子阐述了这三个软件注释结果存在的一些问题,例子如下:

 
例一. Frameshift vs Stop Gain 7:117120154-117120154 -/T

上图例一中,AnnovarVEP将这个突变注释为frameshift,然而SnpEff将其注释为stop gain,哪一个是正确的?严格来说,这是一个frameshift,但称为stop gain 要更精确一些.


 
例二. Upstream vs NC Exonic 7: 117105836-117105838 TTT/-

上图例二中,T是CFTR外显子上的第一个碱基,Annovar 将其注释为intergenic ; SnpEff将其注释为Exon, intergenic和upstream,这个例子说明SnpEff注释出了所有的可能性,即使有些注释是相互矛盾的(exonintergenic).


 
例三.Frameshift vs Stoploss 7: 117307160-117307161 T/-

上图例三中,AnnovarVEP都将这个缺失注释为stop loss,这是正确的,然而SnpEff将其注释为frameshift,虽然这缺失是个frameshift但是不够精确的.


 
例四. Splice Site Variant 7:117119513 -/A

上图例四中, 这是一个很有趣且很微妙的例子来说明为什么三个软件在剪切位点上的突变差异很大,SnpEff将这个插入突变注释为一个splice_site_acceptor,这很明显是不对的,因为an acceptor site3' end of the intron,而插入的这个T并非在末端.VEP将其注释为a splice_site_region,这是正确的.Annovar将其注释为intron,这也是正确的但不精确.

三个软件在splicing variant上的一致性如下图所示:

 
Splicing variants seem to cause the most disagreement

可以看出三个软件对splicing variant的注释结果差异较大,很大一部分原因是由于对同一个variant的描述使用了不同的术语所造成的.


 
例五. Frameshift vs Inframe 7: 117307124 – 117307126 GAG/-

上图例五中,出现了一个3甲基缺失,SnpEff将其注释为一个frameshift,根据上面任何一个转录本都不能得出这样的结论,SnpEff做出这个注释是根据第一个转录本.而这个转录本的末端是X,表示任意未知氨基酸.所以这个缺失并不能导致frameshift,所以这个注释是错误的,VEP根据第一个转录本将其注释为3_prime_UTR_variant,这是对的,Annovar将其准确的注释为nonframeshift deletion.


上面这篇博客是金螺旋(Golden Helix)的人所写, 博客中有个例子是有明显错误的我就不放了.金螺旋也开发了一个variants注释工具Varseq,然后作者在评论里就说他们的Varseq更好,结果很多人问Annovar的作者Kai Wang对这篇博客的意见,然后Kai Wang在博客下的评论里说:金螺旋用这篇博客攻击Annovar/VEP/snpEff是不合适的,并且给研究者们发了大量邮件来给这篇博客打广告,这可能给许多科学家造成误导.然后对博客中对Annovar解释不当的地方一一反驳,最后说Annovar注释的没什么不对,最多就是有些地方不够精确.也对博主所做的工作表示感谢~. 大家有兴趣可以看下博文原文(左下角阅读全文).

阅读原文

作者:生信杂谈
链接:https://www.jianshu.com/p/6284f57664b9
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

突变注释工具SnpEff,Annovar,VEP,oncotator比较分析--转载的更多相关文章

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

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

  2. VVDocumenter - Xcod代码注释工具

    刚接触IOS开发时,发现XCODE非常的强大的,后续的代码实践中发现XOCDE的代码文档注释非常的差, 每次都要用手敲,蛋疼至极: 随着不断学习发现XCODE有代码片段内嵌一说(如:for .bloc ...

  3. 逆向中静态分析工具——IDA初学者笔记之字符串分析

    逆向中静态分析工具——IDA初学者笔记之字符串分析 程序中往往包含很多字符串资源,这些资源存在于PE文件的rdata段,使用IDA反编译后,可以查找到这些字符串, 逆向破解程序通常需要一个突破点,而这 ...

  4. 日志分析工具、日志管理系统、syslog分析

    日志分析工具.日志管理系统.syslog分析 系统日志(Syslog)管理是几乎所有企业的重要需求.系统管理员将syslog看作是解决网络上系统日志支持的系统和设备性能问题的关键资源.人们往往低估了对 ...

  5. VVDocumenter 注释工具的使用

    首先,前往github上下载工程源代码. 然后,编译VVDocumenter工程. 重启xcode. 然后,只要在你自己的工程中要加入注释的方法前面输入“///”,一切搞定. 很好很强大.

  6. Xcode 注释工具的使用

    1:Xcode 8之后 Goodbye World In Xcode 8, Apple integrated a comment documentation generator plugin, whi ...

  7. sublime 非常好用的注释工具

    Sublime在进行前端开发时非常棒,当然也少不了众多的插件支持,DocBlocker是在Sublime平台上开发一款自动补全代码插件,支持JavaScript (including ES6), PH ...

  8. 如何使用SnpEff 对SNP结果进行分析

    SnpEff is a variant annotation and effect prediction tool. It annotates and predicts the effects of ...

  9. 安卓动态分析工具【Android】3D布局分析工具

    https://blog.csdn.net/fancylovejava/article/details/45787729 https://blog.csdn.net/dunqiangjiaodemog ...

随机推荐

  1. 前端框架VUE----vue的使用

    一.安装 对于新手来说,强烈建议大家使用<script>引入 二. 引入vue.js文件 我们能发现,引入vue.js文件之后,Vue被注册为一个全局的变量,它是一个构造函数. 三.使用V ...

  2. c--socket通信TCP篇

    https://www.cnblogs.com/ashen/p/4474360.html #include <sys/socket.h> 2 #include <stdlib.h&g ...

  3. STM32开发 -- 4G模块开发详解(转)

    STM32开发 -- 4G模块开发详解(1) STM32开发 -- 4G模块开发详解(2) STM32开发 -- 4G模块开发详解(3) STM32开发 -- 4G模块开发详解(4)

  4. LogUtil工具

    package com.develop.web.util; import java.util.concurrent.locks.ReentrantLock; import org.slf4j.Logg ...

  5. SSM思路大总结(部门信息的显示和增删改查)

    #ssm整合(部门管理) ##1.新建工程 1.新建maven工程 2.添加web.xml 3.添加tomcat运行环境 4.添加依赖jar包 spring-webmvc mysql commonse ...

  6. log4j2笔记 #04# Appender的三个基本款以及RollingFile的各种示例配置

    粗糙笔记,留着备用. 三个基本款分别是ConsoleAppender.FileAppender(以及他的堂哥RandomAccessFileAppender).RollingFileAppender( ...

  7. CI(CodeIgniter)框架下使用非自带类库实现邮件发送

    在项目开发过程中,需要到了邮件提醒功能.首先想到的是CI自身带不带邮件发送类,查看帖子,发现CI本身自带,然后试着利用CI自身带的类库来实现,经过搜搜很多帖子,不少开发者反馈CI自身的Email类有问 ...

  8. DATAPUMP PERFORMANCE EXPDP IS VERY SLOW 10.2.0.4 TO 11.2.0.2

    APPLIES TO: Oracle® Database - Enterprise Edition - Version 10.2.0.4 to 11.2.0.2 [Release 10.2 to 11 ...

  9. eclispe设置workspace text file encoding

    在windows下开发,经常会遇到eclipse新导入的工程 java代码中的注释或者字符串中文显示乱码,每次都要一个个项目更改麻烦,特地找了下,可通过如下方法一次性设置.

  10. hibernate validator自定义校验注解以及基于服务(服务组)的校验

    hibernate validator是Bean Validation 1.1 (JSR 349) Reference Implementation,其广泛的应用在mvc的参数校验中,尤其是使用服务端 ...