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. Codeforces 237A - Free Cash

    题目链接:http://codeforces.com/problemset/problem/237/A Valera runs a 24/7 fast food cafe. He magically ...

  2. Autel MaxiSYS PRO MS908P Diagnostic System with Wireless VCI J-2534

    You’re a professional mechanic, an enthusiast or and mechanic shop owner? Then you are here on the r ...

  3. 案例:配置apache和nginx的SSL加密传输协议

    一.SSI解释 SSI是一种类似于ASP的基于服务器的网页制作技术.将内容发送到浏览器之前,可以使用“服务器端包含 (SSI)”指令将文本.图形或应用程序信息包含到网页中.例如,可以使用 SSI 包含 ...

  4. serving inference

    1.确定要提供服务的inference的input,output,以及exporter的signature:(这里用classify的signature做例子,input为byte数组,output为 ...

  5. 轻量级MVC框架的实现

    _ 写一个通用控制器,在开发的时候只用写模型和视图. 注:请求路径和模型的对应关系 step1.添加一个注解@RequestMapping /** 自定义注解:用于配置请求路径和处理器的对应关系. * ...

  6. Failed to load ApplicationContext

    java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.conte ...

  7. VMware14安装centos7

    win10专业版 虚拟机:14 Pro 1. 新建虚拟机选择典型安装 2. 稍后安装操作系统 3. 选择Linux,版本选择centso7 64位(根据系统选择) 4. 设置虚拟机名称并选择安装位置 ...

  8. be动词

    编辑 讨论 be动词,意思和用法很多,一般的意思是:是,此种用法,有多种变化形式,is,am,are,was,were,being,been,to be.另外,be动词还有成为的意思.根据句子中不同的 ...

  9. eclipse maven Errors while generating javadoc on java8

    With JDK 8, we are unable to get Javadoc unless your tool meets the standards of doclint. Some of it ...

  10. STL相关问题

    写set容器遇到以下问题: C:\Users\admin\Desktop\未命名2.cpp In function 'int main()': 67 98 C:\Users\admin\Desktop ...