PBcR - 纠错及组装算法
单分子测序reads(PB)的混合纠错和denovo组装
我们广泛使用的PBcR的原始文章就是这一篇
原文链接:Hybrid error correction and de novo assembly of single-molecule sequencing reads
简介:PBcR里面有一种自纠算法(PacBioToCA),纠错的核心本质就是多重序列比对,为了加快比对速度使用了MHAP算法(MinHash)。三代的错误分布不是完全随机的,不要以为错误是均匀分布的!!!
摘要:
PB技术可以产生极长的reads,可以显著提高基因组和转录组的组装。
然而,单分子测序的reads的error rate非常高,这限制了它们在重测序方面的应用。
为了解决这个问题,我们创造了PBcR这个纠错算法和组装策略:使用短的、高精准度的reads 来校正单分子测序reads中的错误。
我们在PB RS平台证明了这个算法的实用性,从噬菌体、原核、真核;从基因组到转录组。
我们的长reads纠错达到了99.9%的base-call accuracy,从而使得组装的效果比当下的策略更好。
在最好的栗子里,三代的组装结果的contig的N50是二代的组装结果的五倍。
前言:
二代技术:454焦磷酸测序,Illumina边合成边测序,低成本,高通量;相较于一代的sanger测序。
二代的明显的缺点:测序之前,源DNA需要扩增,会引入偏差;reads短,导致组装和分析困难。
三代,单分子,实时测序,无偏差,reads长,周期短,有利于denovo的基因组和转录组组装,可以解决复杂的重复,可以跨越基因的整个转录本。
然而,三代只有82.1%~84.6%的准确率,主要由insertion和deletion造成(Supplementary Fig. 1).
如此高的错误率会严重影响reads的比对,双序列比对会double错误率,远超过5%~10%的组装软件的承受范围;简单的增加alignment sensitivity是不可行的。(Supplementary Table 1 and Supplementary Figs. 2 and 3).
此外,PacBio技术使用了发卡接头hairpin adaptors 来对双链double-stranded DNA进行测序,这将会导致嵌合体chimeric reads ,如果测序反应进行到DNA的两条链,
虽然你在PacBio RS上可以通过多次读取一个环状分子(circular consensus or CCS) 来生成高准确度的reads,这种方法降低了reads的长度,受分子被遍历的次数影响,导致了一个更短的reads,因此长的single-pass reads有一个很大的潜在的优势,如果可以从算法层次上管理错误率。
为了克服单分子测序数据的限制,解锁它在denovo组装上的全面的潜能,我们开发出了一套方法来利用短的、高精确度的序列来纠正 长的、单分子的内在错误(Fig. 1).
PBcR单分子reads纠正和组装方法:
a)黑线表示错误,粉红色条表示single-pass PacBio RS reads,这很难检测reads之间是否有overlap;
b)将高保真短读长reads比对到容易出错的长reads,之所以可以计算出准确的比对结果,是因为短长是长长错误的一半。短reads上的黑线表示比对错误,是短reads和长reads之间共同的错误。此外,两个不精确的重复导致短reads的堆积,为了避免reads比对的错误,算法选择了一个cutoff,C 前C的留下,后C的丢掉。(PB上高错误的区域Hiseq也是比对不上的)
c)留下来的比对用来生成一个新的consensus 序列(紫色),trimming and splitting长reads,如果有短reads有gap(在没有覆盖度的地方任务截断了,绝对有假阳性,因为二代测不到GC特殊区域)。测序错误会传播给PBcR,当PB和Hiseq有共同的错误。
d)纠错后,可以很容易的检测出long PBcR sequences的overlap。
e)组装结果可以跨过重复,那些短reads无法跨过的地方。
注:PB中的无效区域是肯定存在的,可以直接通过Hiseq的覆盖度信息去除(不要切断中间),可能还要考虑GC区域才会完美。
嵌合体怎么解决,还是在组装时会自动解决。
我们的PBcR(PacBio corrected Reads)算法作为Celera Assembler的一部分,截断和纠正单独的单分子reads,通过首先将短reads 比对到长reads上来计算一个高度准确 混合consensus 序列:提高了reads的准确度从80%到了99.9%。
然后,纠正了的混合PBcR reads可以来单独进行denovo组装,或者结合其他数据,或者导出来做其他应用。
下面将会展示几个重要的基因组,包括之前没有测序的1.2-Gbp。incorporation of PacBio data using this method leads to greatly improved assembly quality versus either first- or second-generation sequencing, indicating the promise of ‘third-generation’ sequencing and assembly.
结果
长reads的denovo组装
纠错准确度和结果
混合denovo组装
长read的覆盖度对组装的影响
鹦鹉基因组的组装结果
单分子RNA-Seq纠错
讨论
方法
待续~
PBcR - 纠错及组装算法的更多相关文章
- 三代PacBio reads纠错 - 专题
三代纠错的重要性不言而喻,三代的核心优势就是长,唯一的缺点就是错误率高,但好就好在错误是随机分布的,可以通过算法解决,这也就是为什么现在有这么多针对三代开发的纠错工具. 纠错和组装是分不开的,纠错就是 ...
- 基因组Denovo组装原理、软件、策略及实施
目录 1. 组装算法 1)基于OLC算法 2)基于DBG算法 3)OLC vs DBG 2. 组装软件 3. 组装策略 4. 组装项目实施 1)测序前的准备 2) 测序样品准备 3)测序策略的选择 4 ...
- Falcon:三代reads比对组装工具箱
主页:github: PacificBiosciences/FALCON 简介 Falcon是一组通过快速比对长reads,从而来consensus和组装的工具. Falcon工具包是一组简单的代码集 ...
- SOAPdenovo组装软件使用记录
背景: 1.为什么要从头测序组装基因组? 基因组是不同表型的遗传基础:获得参考基因组是深入研究一个生物体全基因组的第一步也是必须的一步:从头测序组装能够对新的测序物种构建参考基因组: 2.为什么要研究 ...
- 海量数据去重之SimHash算法简介和应用
SimHash是什么 SimHash是Google在2007年发表的论文<Detecting Near-Duplicates for Web Crawling >中提到的一种指纹生成算法或 ...
- NECAT组装ONT long reads
NECAT 可用于ONT数据的纠错,组装,如果想对ONT long reads进行call SV,也可以使用necatsv. githup网址:https://github.com/xiaochuan ...
- 【Python小试】计算目录下所有DNA序列的Kmer并过滤
背景 Kmer是基因组组装算法中经常接触到的概念,简单来说,Kmer就是长度为k的核苷酸序列.一般长短为m的reads可以分成m-k+1个Kmer.Kmer的长度和阈值直接影响到组装的效果. Deno ...
- IP分片重组的分析和常见碎片攻击 v0.2
IP分片重组的分析和常见碎片攻击 v0.2http://www.nsfocus.net/index.php?act=magazine&do=view&mid=584 作者:yawl ( ...
- Java资源大全中文版(Awesome最新版)(转载)
原文地址:http://www.cnblogs.com/best/p/5876559.html 目录 业务流程管理套件 字节码操作 集群管理 代码分析 编译器生成工具 构建工具 外部配置工具 约束满足 ...
随机推荐
- HTML5革命即将爆发
近日,关于"HTML5生态重建冷思考"成为了很多人热烈讨论的话题.在网页制作市场上面,HTML5技术成为了颇为关注的焦点,在行业和社会各界引起了广泛的关注.HTML5网页制作也创造 ...
- linux连接与传输等命令
linux 远程连接windows rdesktop -a 16 223.223.111.8 远程连接到windows服务器 rdesktop -a 16 -r disk:home=/home 223 ...
- java经典算法40题(21-40)
[程序21] 题目:求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘. public class Ex21 { static long sum = 0; s ...
- 我的新发现:AVL树旋转的一个特性
关于AVL树旋转的代码网络上铺天盖地. 一些经典的实现方法如下: AVLTree SingleLeftRotation(AVLTree A) { AVLTree B = A->left; A-& ...
- ligerui_ligerTree_007_ligerTree动态加载节点
ligerui:ligerTree:动态加载节点: 源码地址:http://download.csdn.net/detail/poiuy1991719/8571255 效果图: 代码:json.txt ...
- 【转】PowerShell入门(七):管道——在命令行上编程
转至:http://www.cnblogs.com/ceachy/archive/2013/02/22/PowerShell_Pipeline.html 管道对于Shell来说是个化腐朽为神奇的东西, ...
- python实现指定目录下JAVA文件单词计数的多进程版本
要说明的是, 串行版本足够快了, 在我的酷睿双核 debian7.6 下运行只要 0.2s , 简直是难以超越. 多进程版本难以避免大量的进程创建和数据同步与传输开销, 性能反而不如串行版本, 只能作 ...
- web页面状态
200 :表示请求成功,服务器已处理 201 :表示服务器端请求被创建, 202 :表示服务器端请求已经被接收,但未处理完成 400 :表示错误的请求 404:表示请求的资源未找到. 405:表示没有 ...
- Dynamics AX 2012 R2 堆栈跟踪:不能对客户端调用'unchecked'
有一个Custom Service一直在正常使用.今天,Reinhard尝试在JOB中以X++代码Debug Custom Service的Method时,收到以下错误提示: 'unchecked' ...
- Dynamics AX 2012 R3 Demo 安装与配置 - 编译和配置 (Step 3)
在前两节中,Reinhard主要讲解了如何配置安装环境,安装数据库服务器,AOS和客户端.至此安装工作已经结束,下面Reinhard开始讲解如何编译和配置. 运行客户端后,系统弹出初始 ...