抽象

动机:-产量未来-新一代测序技术使基因组和转录组的日益快捷,实惠测序,具有广阔的应用范围。测序数据的质量对于所有应用都至关重要。产生的数据中很大一部分包含错误,因此需要更有效的错误纠正程序。

结果:我们提出了RACER(读取错误的快速,准确校正),这是一种用于校正测序数据错误的新软件程序。RACER比现有程序具有更好的纠错性能,速度更快,所需的内存更少。为了支持我们的主张,我们在各种真实数据集上与现有的领先程序进行了广泛的比较。

可用性: RACER可从www.csd.uwo.ca/~ilie/RACER/免费用于非商业用途。

联络人:ilie@csd.uwo.ca

1引言

自动Sanger测序方法(Sanger ,1977)通过揭示DNA分子的序列,最突出的是人类基因组的序列,彻底改变了生物学研究。该方法的局限性导致需要改进的测序技术。巨大的需求导致发现了几种所谓的下一代测序(NGS)技术,例如Illumina / Solexa,Roche / 454,Life / APG的SOLiD,Helicos BioSciences的HeliScope,Pacific Biosciences和Life的Ion Torrent;Metzker(2010)的调查提供了详细说明。

这些高通量技术以降低的成本生成大量数据,从而使应用程序的数量不断增加,包括从头进行基因组组装,基因组重测序,癌症突变发现,宏基因组学,DNA-蛋白质相互作用发现等。已经为雄心勃勃的项目打开了道路,例如1000个基因组计划(Siva,2008年),第一个对大量人的基因组进行测序以提供有关人类遗传变异的综合资源的项目,以及Genome 10K项目(Haussler ,2009),旨在发现10000种脊椎动物的基因组。

大量的生物信息学程序对于分析NGS数据至关重要。尽管它们的多样性令人印象深刻,但它们都需要高质量的数据。当前占主导地位的技术Illumina产生的读取中有近一半包含错误。除其他问题外,它们使基因组组装更加困难,而基因组组装者,例如Euler-SR(Chaisson和Pevzner,2008),ALLPATHS(Butler 等人,2008),ABySS(Simpson 等人,2009),SOAPdenovo (Li et al。,2010)或SGA(Simpson and Durbin,2012),都包含自己的校正机制。

问题的重要性导致设计了许多独立的纠错程序,例如Euler(Chaisson 等人,2004),SHREC(Schröder 等人,2009),Reptile(Yang 等人,2010)。 ,Quake(Kelley ,2010),CUDA(Shi ,2010),HSHREC(Salmela,2010),SOAP(Li ,2010),HiTEC(Ilie ,2011),Coral(等)Salmela andSchröder,2011),Hammer(Medvedev et al。,2011)),ECHO(Kao ,2011),PSAEC(Zhao ,2011b)和MyHybrid(Zhao ,2011a);另请参见Yang 等人的调查(2013)。

测序数据中存在的错误包括:替换(错误的碱基替换为正确的碱基)和indel(插入新碱基或删除现有碱基的碱基)。但是,由于主要产生替换错误的Illumina技术的支配,大多数现有程序都将重点放在纠正此类错误上。出于同样的原因,我们新程序的当前版本也将重点放在替换错误上。

所有校正程序的主要思想基本相同。高通量技术通过高覆盖率来补偿较短的阅读长度,这意味着基因组中的每个位置均被测序了多次,其中许多是正确的。因此,在仔细的分析中,正确的方法将占上风,并且可以纠正错误。正是这种进行分析的方式使各种程序之间有所不同。

一些程序对k- mers 的数量进行计数,而那些计数超过给定阈值的程序则被认为是正确的,而其余程序则被校正。其中包括SHREC,HiTEC,HSHREC和PSAEC。其他人则认为在每个读数中都出现了所有k聚体,即谱(Pevzner ,2001),并尝试以最小的编辑距离校正整个读数,以使所有k聚体的计数都高于阈值。CUDA,Quake,Reptile和Hammer包括在此处。最后,Coral,ECHO和MyHybrid基于多个序列比对。读者可参考Yang 等人的调查(2013)。

我们提出了一个新程序,即RACER(读取中的错误的快速而准确的校正),它属于第一类。尽管SHREC和HSHREC使用后缀树,而HiTEC使用更有效的后缀数组,但是RACER使用完全不同,更有效的数据结构。这样,尽管SHREC和较小的HiTEC都具有很高的空间消耗,但是RACER的空间效率很高。与现有程序相比,它在纠正错误方面也更快,更有效。我们已经与各种真实数据集上的领先程序进行了广泛的比较。RACER可从www.csd.uwo.ca/~ilie/RACER/免费获取以用于非商业用途。

2结果

2.1数据集

我们对具有不同读取长度,基因组大小和覆盖范围的各种数据集进行了广泛的测试。仅根据真实数据集进行比较,因为根据我们的经验,模拟数据集不能很好地表明实际性能。此外,它们易于纠正,并且纠正程序经常表现出不切实际的高性能。

十五真实数据集被认为是,其中一些先前已经使用,也可以用于校正目的或组件:È scherichia大肠杆菌36大肠杆菌47(以下名字的数字表示读取长度和用于区分它们),金黄色葡萄球菌啤酒糖酵母果蝇果蝇已经在调查中使用杨等人。(2013),秀丽线虫被Simpson和Durbin(2012)用来比较SGA和其他基因组装配体。。其余的数据集是新的。表1给出了数据集的登录号和详细信息,以及与参考基因组有关的相应信息。补充表S4中提供了完整的生物名称。

表格1。

用于评估的数据集,越来越多地按碱基对总数排序

数据集  登记号  参考基因组  基因组长度  读取长度  读取次数  碱基对数  覆盖范围 
乳酸乳球菌  SRR088759  NC_013656.1  2598144  36  4370050  157321800  60.55 
梅毒螺旋体  SRR361468  CP002376.1  1139417  35  7133663  249678205  219.13 
大肠杆菌75a  SRR396536  NC_000913.2  4639675  75  3454048  259053600  55.83 
枯草芽孢杆菌  DRR000852  NC_000964.3  4215606  75  3519504  263962800  62.62 
大肠杆菌75b  SRR396532  NC_000913.2  4639675  75  4341061  325579575  70.17 
铜绿假单胞菌  SRR396641  NC_002516.2  6264404  36  9306557  335 036 052  53.48 
大肠杆菌47  SRR022918  NC_000913.1  4771872  47  14408630  677205610  141.92 
钩端螺旋体  SRR353563  NC_004342.2  4338762  100  7066162  706 616 200  162.86 
询问乳杆菌  SRR397962  NC_005823.1  4277185  100  7127250  712725 000  166.63 
大肠杆菌36  SRX000429  NC_000913.1  4771872  36  20816448  749392128  157.04 
嗜血杆菌流感  SRR065202  NC_000907.1  1830138  42  23935272  1005281424  549.29 
金黄色葡萄球菌  SRR022866  NC_003923.1  2901156  76  25551716  1941930416  669.36 
酿酒酵母  SRX100885  PRJNA128  12416363  76  52061664  3956686464  318.67 
线虫  SRR065390  wormbase.org  102291899  100  67617092  6761709200  66.10 
黑腹果蝇  SRX006151  flybase.org  120220296  45 75 95  101548652  6903898304  57.43 
SRX006152 
SRX023452 

:所有数据集和参考基因组序列是从国家除外生物技术信息中心获得线虫从www.wormbase.org和果蝇从flybase.org。

在新标签页中打开

2.2评估

我们已经将RACER与Yang 等人测试过的程序进行了比较(2013),即HiTEC,SHREC,Reptile,Quake,Coral,Coral,SOAP和ECHO。(由于仅考虑替换错误,所以我们测试了SHREC而不是HSHREC。)其中,由于空间或时间要求高,SOAP和ECHO无法运行大多数数据集,因此无法进行比较。

在表1中的原始数据集上评估了所有测试程序的纠正错误的能力以及所需的时间和空间。纠错性能评估为纠正的错误百分比。我们的评估方法具有避免映射或汇编程序干扰的优势,方法的3.2节对此进行了详细介绍。

为了进行统一比较,我们通过将时间和空间值除以数据集中碱基对的总数来对其进行归一化。实际的时间和空间值在补充材料中给出。

我们已经在同一台惠普计算机上运行了所有程序,该计算机具有2.1 GHz的24核AMD Opteron和98 GB的随机存取内存,运行Linux Red Hat,CentOS 5.5 m。由于HiTEC和Reptile不并行运行,因此我们在串行和并行模式下都进行了测试,以将所有程序都包括在比较中。我们已经在并行模式下使用了24个内核。

结果显示在表2中,其中包含在顶部的纠错性能(以纠错的百分比表示),在中间的时间(以每兆字节输入碱基对的秒为单位)和在底部的空间(以兆字节为单位)输入碱基对。某些程序无法运行所有数据集,并且原因由表标题中解释的字母指示。每个部分的最后一行代表可以运行所有程序的那些数据集的条目平均值。为了改善表格的可视化效果,我们使用了颜色强度,深色表示更好的性能。

表。2。

在串行和并行(24核)模式下,表1的数据集上的纠错程序在纠错性能,时间和空间使用方面的比较

 

注意:每当程序无法按以下方式运行数据集时,均使用字母代替数字:(a)内存不足,(b)java.lang.NegativeArraySizeException,(c)存在不同长度的读取,并且(d)k -mer切断失败。每个部分底部的平均值仅包括所有程序运行的数据集。

在新标签页中打开

2.3比较

就纠错性能而言,只有HiTEC才能接近RACER。但是,HiTEC需要第二高的空间,因此无法运行最大的数据集。对于D.melanogaster,由于读取长度不同,HiTEC并未尝试运行它。另请注意,HiTEC在某些未包含在平均值中的数据集上的性能较差。直接比较显示出显着差异。

在时间方面,RACER在串行和并行模式下均是最快的,比串行第二名Quake快两倍,并且在并行模式下比所有其他Quake快大约一个数量级。RACER还比其他程序更具存储效率。与并行模式下的RACER相比,Quake再次名列第二,并且使用的空间大于50%。

RACER和Reptile是唯一能够运行所有数据集的程序。Quake在时间和空间上排在第二位,串行空间除外,排在第三位,但其纠错性能在串行和并行方面均排在倒数第二,大约是RACER的一半。部分原因是由于Quake修剪无法校正时读取。评估计算所有正确读取中碱基对的数量。爬行动物在时间上排在第三位,在空间上排在第二位(串行模式),但其准确性却是倒数第二。SHREC显然需要最大的空间,因此它能够运行我们计算机上最少的数据集。另一方面,它在校正性能方面始终居第三位。在串行模式下,Coral速度最慢,但在所有程序中速度最高,并且其并行性能接近Quake和SHREC。15倍加速是以增加12倍空间为代价的。RACER的速度提高了11倍,空间增加了一点。

3种方法

3.1赛车

RACER属于k- mer计数程序的类别。它使用2位核苷酸编码和未知位置的随机替换。每个k- mer表示为一个64位整数。的ķ聚体被存储在哈希表中。对于每个k聚体,计算对应于两侧上八个可能的核苷酸的八个计数器。阈值t用于区分正确位置和错误位置。甲ķ -mer随后是核苷酸一个假设正确的,如果该计数高于和错误否则。在后一种情况下,假设恰好有一个字母b紧跟相同的k-mer并且计数高于ta替换为b

需要输入测序的基因组的近似大小作为输入,RACER根据该大小自动计算校正部分中使用的k- mer大小k和阈值t。所使用的参数组合已通过实验确定。与HiTEC一样,阈值也有所不同,以实现更高的校正性能。

避免全文索引(例如后缀树和后缀数组)可以提供比SHREC和HiTEC更大的空间优势。相同的原因也带来了速度优势,因为一旦计算了k个单体和计数器,就可以多次使用它进行校正。

RACER校正来自fasta和fastq数据的不同长度的读取。它已经在C ++和OpenMP中实现,并且不需要其他软件即可运行它。

3.2评估细节

为了获得最准确的评估,我们避免了使用绘图程序或将校正后的数据用于其他应用程序,例如基因组组装。映射程序用于评估,以了解错误在哪里以及应如何纠正。但是,许多读取不能唯一地映射,甚至根本无法映射更多。此类读取将被丢弃,因此,所获得的数据集与原始数据集明显不同。特别是,所有程序都人为地提高了性能,因为最难纠正的读取已通过映射消除。另一方面,基因组组装者具有其自身的隐式或显式校正程序,并且无法预测两种校正方法之间的相互作用。

根据是否可以通过精确搜索算法在参考基因组中分别找到,将读物分类为正确或错误。分别通过e be a表示校正前后错误读取中碱基对的数目,纠错性能计算为⁠。因为我们有

(Ilie 等人,2011),所以我们得到

的公式与Yang 等人的公式相同(2013年)。如上所述,通过考虑全读校正,而不是基于个体的校正,可以期望达到类似的性能;但是,避免了与读取映射相关的问题。

但是,由于在某些文章中是对映射的数据集进行比较,因此为了完整起见,我们在补充材料中提供了这种比较,其中使用BWA(Li和Durbin,2009年)以较高的错误率对数据集进行了映射,因此保持大量读取,并最大程度降低了偏差。在映射的数据集上进行的比较与在原始数据集上进行的比较相似,不同之处在于,如预期的那样,校正的错误百分比增加了。

所有程序均已按照作者在相应文章,网站或自述文件中给出的说明运行。我们没有调整任何程序的参数来提高性能,因为这是不现实的。用于运行所有程序的命令在补充材料中给出。

4。讨论

广泛的测试表明,RACER在所有方面均优于现有程序:纠错性能,时间和空间。对于细菌数据集,它在<2分钟内校正了大约四分之三的误差,对于蠕虫或蝇类等较大的有机体,它可以在30–40分钟内校正。RACER不需要任何其他软件即可运行。

5结论

我们提供了一种新的工具RACER,用于纠正NGS数据中的错误。当前版本的RACER定位于Illumina数据,从而纠正替换错误。未来的版本将能够处理插入缺失错误,从而能够更正来自其他测序平台的数据以及混合数据。

RACER: Rapid and accurate correction of errors in reads 快速、准确地修正读数中的错误相关推荐

  1. Accurate self-correction of errors inlong reads using de Bruijn graphs LoRMA使用de Bruijn图对长read中的错误

    Accurate self-correction of errors inlong reads using de Bruijn graphs               LoRMA使用de Bruij ...

  2. Jabba: hybrid error correction for long sequencing reads using maximal exact matches机译:Jabba:使用最大精

    Jabba: hybrid error correction for long sequencing reads using maximal exact matches 机译:Jabba:使用最大精确 ...

  3. Bi-level error correction for PacBio long reads. PacBio长读数的两级纠错

    Bi-level error correction for PacBio long reads. PacBio长读数的两级纠错 作者: Liu Yuansheng; Lan Chaowang; Blu ...

  4. Iterative error correction of long sequencing reads maximizes accuracy and improves contig assembly

    长序列读取的迭代误差校正可以最大限度地提高准确性,并改进叠架装配 抽象 新一代测序仪(例如Illumina)现在可以以高通量产生高达300 bp的读数,这对于基因组组装具有吸引力.基因组组装的第一步是 ...

  5. Bi-level error correction for PacBio long reads

    Bi-level error correction for PacBio long reads 双级错误校正PacBio长read 最新的测序技术,如太平洋生物科学公司(PacBio)和牛津纳米孔机器 ...

  6. python – 处理psycopg2中的错误 psycopg2.errors.InFailedSqlTransaction: current transaction is aborted, comm

    问题 import psycopg2 # 数据库连接参数 conn = psycopg2.connect(database="xxx", user="xx", ...

  7. Handling Errors Exceptionally Well in C++ 在C++中良好地捕获意外的错误

    Handling Errors Exceptionally Well in C++ 在C++中良好地捕获意外的错误 from:http://www.cprogramming.com/tutorial/ ...

  8. Gamma Correction/Gamma校正/灰度校正/亮度校正(已更正) - 部分 DCC 中的线性工作流配置

    文章目录 也可以简单参考 SIGGRAPH 2010 的 PBS 的 Gamma-Correct Unity 中的 gamma.linear 工作流 Unity BRP 管线中的 shaderlab ...

  9. FCHD: A fast and accurate head detector快速准确的人头检测代码预测出来的边界框位置不准确的解决方法

    算法简介 人头检测在视频监控中非常重要,而公交车.商场或者大型场馆的拥挤人群计数则是其重要应用场景. 算法思想 作者称拥挤人群计数目前主要有两种实现路径: 1.使用回归的算法思路,直接根据图像回归出拥 ...

最新文章

  1. mongodb windows安装
  2. plc模拟器软件_关于PLC虚拟化的思考当下及未来
  3. boost::random模块生成随机 8 个字符密码相关的测试程序
  4. codeforces1453 E. Dog Snacks
  5. understand的安装
  6. 图片批量转换pdf文件
  7. 51信用卡微服务集成测试自动化探索
  8. 分享一些第三方免费接口集
  9. 传奇单机架设GOM引擎图文教程!
  10. 实对称矩阵一定可以对角化
  11. YouTube深度学习视频推荐系统
  12. Word中删除全部页眉页脚的方法
  13. Tansat XCO2数据下载
  14. 微星GS65 英雄联盟崩溃
  15. 浅析Windows2000服务与后门技术
  16. 计算机网络——传输层の选择题整理
  17. VS coda C++、python运行与Dbug配置
  18. css如何控制图片不变形?
  19. Sublime Text 3 最新注册码大全
  20. ORACLE 驱动表

热门文章

  1. 101所被《人民日报》点名的大学:低调却颇有实力!
  2. ECCV20 3D目标检测新框架3D-CVF
  3. 使用相机暗箱公式和透镜方程估计人脸距离
  4. oracle mysql 乱码_解决Oracle数据库中文乱码
  5. 深度学习——什么是张量(tensor)?
  6. Science | 基于算法设计疫苗的人工蛋白
  7. mysql load报错_mysql:执行LOAD DATA LOCAL 报错
  8. 舵机任意角度程序_真香!!!飞特发布性价比超高的19kg磁编码360°双轴串口总线舵机STS3215...
  9. Nature:口腔和肠道微生物可以使抗糖尿病药物(阿卡波糖)失活
  10. 越来越多杂志用webp存储图像,这个工具可以在线转成PNG