纠错工具之 - Proovread
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的更多相关文章
- 三代PacBio reads纠错 - 专题
三代纠错的重要性不言而喻,三代的核心优势就是长,唯一的缺点就是错误率高,但好就好在错误是随机分布的,可以通过算法解决,这也就是为什么现在有这么多针对三代开发的纠错工具. 纠错和组装是分不开的,纠错就是 ...
- #20145205 《Java程序设计》第5周学习总结
教材学习内容总结 1.java中的错误都会被包装为对象这是书上的一句原话,我的理解就是,在java这个大环境中,就像是流水线工厂一样,代码的编译就是进行流水线作业,代码输进来,开始的时候就是打包封装, ...
- 3D模型修改
xnalara模型修改---增添(技术交流贴2) 其实很早就想做这个教程(流程)但有一种叫拖延症的东东捆了我半年~~于是这个帖子诞生与此,,希望对某些骚年有用... 送TA礼物 回复 举报|1 ...
- 你应该知道的16个Linux服务器监控命令
在不同的Linux发行版中,会有不同的GUI程序可以显示各种系统信息,比如SUSE Linux发行版中,就有非常棒的图形化的配置和管理工具YaST,KDE桌面环境里的KDE System Guard也 ...
- WHM使用手册by lin
WebHost Manager 11使用手册(WHM使用手册) 本手册翻译自cpanel官方文档. 本翻译中文版本版权归美国主机侦探所有,未经允许,禁止复制. Overview(概述) 本用户手册主要 ...
- 16个必须熟悉的linux服务器监控命令
本原创文章属于<Linux大棚>博客. 博客地址为http://roclinux.cn. 文章作者为roc. == 原文:16 Linux Server Monitoring Comman ...
- 16个Linux服务器监控命令
在不同的Linux发行版中,会有不同的GUI程序可以显示各种系统信息,比如SUSE linux发行版中,就有非常棒的图形化的配置和管理工具YaST,KDE桌面环境里的KDE System Guard也 ...
- sublimeText 3使用教程
工欲善利其事必先利其器,sublime作为一款轻量.便捷的编译工具,集成了很多插件,功能强大,深受大家的喜爱.掌握好sublime的具体用法,必会为你的工作带来极大的便利!好了,闲话不多说了,下面开始 ...
- 中文NER的那些事儿4. 数据增强在NER的尝试
这一章我们不聊模型来聊聊数据,解决实际问题时90%的时间其实都是在和数据作斗争,于是无标注,弱标注,少标注,半标注对应的各类解决方案可谓是百花齐放.在第二章我们也尝试通过多目标对抗学习的方式引入额外的 ...
随机推荐
- Maven聚合与继承的实例讲解(一)
概述 在javaweb高速发展的今天,我们软件设计人员往往会用很多种方式对软件划分模块,目的就是为了能有清晰的设计和低耦合性的,高重用性的软件.Maven有很好的依赖管理系统(Dependency M ...
- PHP排序函数
/** * 对查询结果集进行排序 * http://www.onethink.cn * /Application/Common/Common/function.php * * @access publ ...
- Java多线程编程——进阶篇一
一.线程栈模型与线程的变量 要理解线程调度的原理,以及线程执行过程,必须理解线程栈模型. 线程栈是指某一时刻内存中线程调度的栈信息,当前调用的方法总是位于栈顶.线程栈的内容是随着程序的运行动态变化的, ...
- 将序列化成json格式的日期(毫秒数)转成日期格式
<script> $(function () { loadInfo(); }) function loadInfo() { $.post("InfoList.ashx" ...
- spring框架IoC
IoC反转控制, 举个反例: //数据操作类 public class DataBase { //向数据库中存储数据 public void saveDB() { } } //业务逻辑类 public ...
- [Effective JavaScript 笔记]第7章:并发--个人总结
前言 这一章的内容学到了事件队列和异步的API.js只是运行在其他应用程序的脚本语言.js即依赖于应用程序,也独立与应用程序.可以使它可以在多平台,多种环境上运行.ECMAScript标准中没有关于并 ...
- JQ 操作 radio、checkbox 、select
MXS&Vincene ─╄OvЁ &0000026─╄OvЁ MXS&Vincene MXS&Vincene ─╄OvЁ:今天很残酷,明天更残酷,后天很美好, ...
- 使用Scala实现Java项目的单词计数:串行及Actor版本
其实我想找一门“具有Python的简洁写法和融合Java平台的优势, 同时又足够有挑战性和灵活性”的编程语言. Scala 就是一个不错的选择. Scala 有很多语言特性, 建议先掌握基础常用的: ...
- 前端开发面试题JS2
21.如何判断一个对象是否属于某个类? 使用instanceof if(a instanceof Person){ alert('yes'); } 22.new操作符具体干了什么呢? (1)创建一个空 ...
- wex5 教程 之 图文讲解 登陆,注册,页面跳转
视频教程地址:http://v.youku.com/v_show/id_XMTc3OTE0Nzg0NA==.html 效果预览: 登陆页面 首页用windowContainer装载 注册页面 登陆 ...