BioInf-Wuerzburg/proovread - Github

主要是来解读 proovread 发表的文章,搞清楚它内在的原理。

Proovread,这个工具绝对没有你想的那么简单,它引入了很多局部模型,而且在总体设计上也是很有眼光的。

原文:proovread: large-scale high-accuracy PacBio correction through iterative short read consensus

摘要

动机:目前边合成边测序的二代技术占主导,虽然准,但太短,导致分析困难。近期,SMRT可以解决这个问题,它生产超长的reads。但是高错误率阻碍了SMRT的应用,因此,混合利用SR和LR的方法已经开发出来了,但是目前的实现方法都太依赖硬件,不好。这限制了它的应用。

结果:我们开发了一个混合纠错流程,能灵活地运行与普通台式机和大型集群,在基因组和转录组的测试中,准确度高达99.9%,胜过现有的所有混合纠错软件,而且更长量多。

引言

过去十年,二代改写了测序的历史,Today, a single run of a HiSeq2500 can generate as much as 600Gb high-quality output data, which covers a human genome 200. 但是,太短,不好组装,尤其是重复区域。因此,大量的SR组装软件出现了,Allpath-LG (Gnerre et al., 2011), the Celera Assembler (Miller et al., 2008; Myers et al., 2000) and SOAPdenovo (Li et al., 2010).

比SR长的重复不能被解决,目前的好的组装方案是,联合short reads和long insert libraries和额外的fosmid测序。

但是,SMRT出现了,With the latest chemistry, this approach delivers reads44 kb. 而且无偏向性,Their third-generation sequencer, PacBio RS II, generates to date up to 400Mb per sequencing run.

LR 的准确度太低,二代99%,而三代只有80%-85%,而且错误分布模型也不同,Although Illumina reads mainly contain miscalled bases with increasing frequency toward read ends, SMRT generates primarily insertions (10%) and deletions (5%) in a random pattern (Ross et al., 2013).  SMRT可以CCS,但这同时也减少了reads的长度,从而失去了三代的优势。

目前有两种方法用于SMRT的校正:

(i) The hierarchical genome-assembly process (HGAP) uses shorter SMRT reads contained within longer reads to generate pre-assemblies and to calculate consensus sequences (Chin et al., 2013). (缺陷:coverage of 80 to 100)

(ii) PacBioToCA (Koren et al., 2012) and LSC (Au et al., 2012) use Illumina SRs in a hybrid approach to correct SMRT reads. These approaches result in higher quality LRs.(需要大量计算资源,PacBioToCA lost >40%数据,LCS只能转录组,WGS集成,不好调用)

本方法优点:

(i) run on standard computers as well as computer grids and

(ii) can be easily adapted to different use cases.

Obviously, these objectives should not be at the cost of accuracy, length of corrected reads or throughput.

实现

Mapping—sensitive and trusted hybrid alignments

比对 - 敏感的可信的混合比对

比对是一个大问题,尤其是二代比三代,绝对不能用现有的比对模型来比对。

本软件基于以下假设设定了一套独特的比对得分体系:

(i) The expected error rates for SMRT sequencing are 10% for insertions and up to 5%for deletions (Ono et al., 2013; Ross et al., 2013). Thus, the costs for gaps in the LR, which correspond to deletions, are about twice as high as for gaps in the SR, which represent insertion.

(ii) Substitutions are comparatively rare (1%). This is reflected by a mismatch penalty of at least 10 times the cost of SR gaps.
(iii) The distribution of SMRT sequencing errors is random. Hence, contrasting to biological scenarios, continuous insertions or deletions are less likely, resulting in higher costs for gap extension than for gap opening.

本软件使用SHRiMP2作为首选,Its versatile interface allowed us to completely implement the hybrid scoring model with the following parameters: insertions are the most frequent errors and are penalized as gap open with –1. Deletions occur
about half as often and are thus penalized with –2. Extensions for insertions and deletions are scored with –3 and –4, respectively. Mismatches are at least 10 times as rare, resulting in a penalty of –11 (Supplementary Table S1).

(罚分总结:insertion最多那就open设为1,deletion为它的一般open就设为2,extend代价更高,分别加2,设为-3、-4,mismatch出现概率最低,所以就该多罚,设为-11)

本软件使用Bowtie2作为次选,However, corrections using Bowtie2 lagged延迟 behind owing to a limited set of parameters regarding scoring and sensitivity. 可以自己trim(sickle,https://github.com/najoshi/sickle),corrected SRs(Quake)

比对,自然要区分真比对和假比对,重复区自然会导致reads的堆积,error还会影响比对得分,We therefore assess length normalized scores in a localized context.

引入了Bin的概念:LRs are internally represented by a consecutive series of small bins.

Only the highest scoring alignments of each bin, not the overall highest scoring alignments, up to the specified coverage cutoff are considered for the next step—the calculation of the consensus sequence.

Consensus call with quality computation and chimera detection

Quality and chimera trimming

untrimmed corrected LRs(这不就是我们最终得到的结果吗)

怎么trim,不是想象中的那么简单,熵模型。

Iterative correction

解决 computationally demanding and time consuming 问题

Configuration and customization

The settings include scoring schemes, binning, masking, iteration procedure and post-processing.

Scalability and parallelization扩展性和并行

MATERIALS AND METHODS

RESULTS

DISCUSSION


纠错工具之 - Proovread的更多相关文章

  1. 三代PacBio reads纠错 - 专题

    三代纠错的重要性不言而喻,三代的核心优势就是长,唯一的缺点就是错误率高,但好就好在错误是随机分布的,可以通过算法解决,这也就是为什么现在有这么多针对三代开发的纠错工具. 纠错和组装是分不开的,纠错就是 ...

  2. #20145205 《Java程序设计》第5周学习总结

    教材学习内容总结 1.java中的错误都会被包装为对象这是书上的一句原话,我的理解就是,在java这个大环境中,就像是流水线工厂一样,代码的编译就是进行流水线作业,代码输进来,开始的时候就是打包封装, ...

  3. 3D模型修改

    xnalara模型修改---增添(技术交流贴2) 其实很早就想做这个教程(流程)但有一种叫拖延症的东东捆了我半年~~于是这个帖子诞生与此,,希望对某些骚年有用... 送TA礼物     回复 举报|1 ...

  4. 你应该知道的16个Linux服务器监控命令

    在不同的Linux发行版中,会有不同的GUI程序可以显示各种系统信息,比如SUSE Linux发行版中,就有非常棒的图形化的配置和管理工具YaST,KDE桌面环境里的KDE System Guard也 ...

  5. WHM使用手册by lin

    WebHost Manager 11使用手册(WHM使用手册) 本手册翻译自cpanel官方文档. 本翻译中文版本版权归美国主机侦探所有,未经允许,禁止复制. Overview(概述) 本用户手册主要 ...

  6. 16个必须熟悉的linux服务器监控命令

    本原创文章属于<Linux大棚>博客. 博客地址为http://roclinux.cn. 文章作者为roc. == 原文:16 Linux Server Monitoring Comman ...

  7. 16个Linux服务器监控命令

    在不同的Linux发行版中,会有不同的GUI程序可以显示各种系统信息,比如SUSE linux发行版中,就有非常棒的图形化的配置和管理工具YaST,KDE桌面环境里的KDE System Guard也 ...

  8. sublimeText 3使用教程

    工欲善利其事必先利其器,sublime作为一款轻量.便捷的编译工具,集成了很多插件,功能强大,深受大家的喜爱.掌握好sublime的具体用法,必会为你的工作带来极大的便利!好了,闲话不多说了,下面开始 ...

  9. 中文NER的那些事儿4. 数据增强在NER的尝试

    这一章我们不聊模型来聊聊数据,解决实际问题时90%的时间其实都是在和数据作斗争,于是无标注,弱标注,少标注,半标注对应的各类解决方案可谓是百花齐放.在第二章我们也尝试通过多目标对抗学习的方式引入额外的 ...

随机推荐

  1. Android 线程的正确使用姿势

    进程优先级(Process Priority) 线程寄宿在进程当中,线程的生命周期直接被进程所影响,而进程的存活又和其优先级直接相关.在处理进程优先级的时候,大部分人靠直觉都能知道前台进程(Foreg ...

  2. zabbix监控交换机

    zabbix可以通过snmp协议监控交换机 前提: 交换机需要开启snmp协议,通过snmpwalk 可以抓取到数据就可以了 snmpwalk -v 2c -c public *.*.*.* 1.创建 ...

  3. Java maven安装GDAL

    1. 使用编译好的安装jdal http://www.gisinternals.com/release.phpgdal-111-1800-x64-core.msi下载地址:http://downloa ...

  4. lua OOP实现对象的链式调用

    数学中的链式法则 http://sx.zxxk.com/ArticleInfo.aspx?InfoID=164649 链式微分法则:实数运算的链式法则:对数运算的链式法则:平行公理的链式法则:向量运算 ...

  5. oracle rac重建控制文件

    1.使用sqlplus连接到已经mount或open的rac数据库 sql> alter database backup controlfile to trace noresetlogs; 2. ...

  6. .NET学习记录1

    .NET 可以干什么呢? 1.桌面应用程序 (WinForm ) 2.internet 应用程序(asp.net) 3.手机应用开发(wp7)好像现在C#也能开发android应用了 现在主要有两个方 ...

  7. hibernate中load和get方法的区别

    1.读取时机不同(当lazy=true的时候)    load是采用延迟机制(load语句不读库,等使用非主键时才去读库),而get不采用延  迟机制(get语句时马上读库): 2.搜索不到数据时的情 ...

  8. spring基础整理

    spring基础教程:https://www.tutorialspoint.com/spring/spring_overview.htm 注入实例 <bean id="" c ...

  9. 关于为busybox设置setuid

    安卓root了,重启之后就没root权限了,于是想到了为 busybox 设置 setuid 来实现使用root的身份执行命令. 可是,不管用啊,还是提示没有权限.搜了一下 busybox setui ...

  10. python 练习(一)代码统计工具的实现

    最近部门成立了一个python学习小组,旨在让大家在做项目中开始成长起来,于是老大就给布置了第一个小任务:代码统计工具,具体的需求如下: 需求: . 能够统计指定目录下C++程序的代码行数. . C+ ...