测序质控和基因组组装原理

简介: 测序质控和基因组组装原理

二代质控

二代测序中,每测一个碱基会给出一个相应的质量值,这个质量值是衡量测序准确度的。碱基的质量值13,错误率为5%,20的错误率为1%,30的错误率为0.1%。行业中Q20与Q30则表示质量值≧20或30的碱基所占百分比。例如一共测了1G的数据量,其中有0.9G的碱基质量值大于或等于20,那么Q20则为90%。


       Q20值是指的测序过程碱基识别(Base Calling)过程中,对所识别的碱基给出的错误概率。

       质量值是Q20,则错误识别的概率是1%,即错误率1%,或者正确率是99%;

       质量值是Q30,则错误识别的概率是0.1%,即错误率0.1%,或者正确率是99.9%;

       质量值是Q40,则错误识别的概率是0.01%,即错误率0.01%,或者正确率是99.99%;

![质量值.png](https://upload-images.jianshu.io/upload_images/19194855-037387c0d6bd1ae5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

首先,碱基质量值是衡量测序质量的重要指标,质量值(Q)越高代表碱基被测错的概率(P)越小,其计算公式为Q=-10lgP。例如,Q20和Q30分别代表碱基被测错的概率为1%和1‰。Illumina官方一般以Q30作为评价标准,以目前最常用的HiSeq 2000平台2×100PE测序为例,Illumina官方保证大于80%碱基准确度达Q30,而千年基因在合同中严格保证大于85%碱基准确度达Q30。


总结:

测序时每个碱基都会有质量值,我们设定一个阈值:20或30,如果低于这个阈值就表示碱基基本是测序错误的碱基,对测序的每个碱基做统计,如果

测序时每个碱基都会有质量值,如碱基质量值为20则表示该碱基的错误率为,10^(20/(-10))=0.01=1%(根据Q=-10lgP计算)

行业中,为了评估下机reads测序的准确度,我们会评估Q20或Q30(及所有碱基质量值大于20或30所占的比例),一般合同中要严格保证Q30至少达到85%。

二代质控:去接头,去Q平均<20;N>2,去PCR重复,去插入序列较短的序列。

3‘端质量会降低----测序酶活降低

5‘端质量不好----测序仪刚运行

二代纠错,kmer(一段重复序列)显示较低质量值,读取数量异常,把异常碱基替换为其它碱基看是否正常,但错误碱基太多则无法纠错。


三代质控

三代指控不同于二代碱基质量标准Q20和Q30,三代由于其随机分布的碱基错误率,其单碱基的准确性不能直接用于衡量数据质量。

三代纠错是用二代辅助(二代短reads比对到三代上,如果某一位点二代测得A,三代测T,三代可能测错了),或者自纠错


组装算法

基因组组装的基本思路:无论是一代sanger、二代短reads、三代长Pacbio,我们得到的测序数据相较于整个基因组而言仍然是极小的;我们的任务就是将这些小片段连接起来;序列之间的联系因为重复序列的存在变得非常复杂,通过overlap我们最终都会构建Graph,所有的算法都会从Graph中得到最优路径,从而得到最初的contig。

目前,构建Graph的主流方法有3种,Overlap-Layout-Consensus(Celera Assembler、PBcR),de Bruijn Graph(SOAPdenovo ) 和 String Graph(Falcon)。


1 OLC算法(Overlap-Layout-Consensus)

适用于reads读长较大的测序数据,如一代和三代的reads。

主要分为三步:

(1)Overlap:,对所有reads进行两两比对,找到片段间的重叠信息

(2)Layout:根据得到的重叠信息将存在的重叠片段建立一种组合关系,形成重叠群,即Contig;

(3)根据构成Contig的片段的原始质量数据,在重叠群中寻找一条权重最重的序列路径,并获得与路径对应的序列,即Consensus。

OLC算法最初成功的用于Sange测序数据的组装,比如Celera Assembler,Phrap,Newbler等均采用该算法进行拼接组装。


2 DBG算法(德布莱英图 de Bruijn graph  SOAPdenovo)

适用于reads比较短的测序数据,二代数据。缺点:难以对重复序列区域进行分析,更依赖于建库。

首先将reads打断成长度为K的核酸片段,即Kmer,在利用Kmer间的overlap关系构建DBG,再通过DBG得到基因组序列。

DBG算法最早应用于如细菌类小的基因组的组装上,直到李瑞强等(2010)开发SOAPdenovo 算法,成功的组装了采用二代测序的黄瓜及熊猫的基因组,DBG算法开始普遍运用。


假设我们获得的reads是20bp,图1a中,生成6个片段,每个片段长度(L)是10bp,至少重叠长度(O)为5bp,然后各个片段建立OLC图。图1b的Kmer为5,建立DBG图。

DBG算法相比于OLC的优势是什么?

由于二代测序得到的reads长度较短,包含的信息量较少,因此完成基因组拼接需要较高的覆盖度。OLC算法适用于读长较长的序列组装,通过构成的OLC图寻找Consensus sequence的过程,实际上是哈密顿通路寻找的问题,算法非常复杂。

若采用OLC算法,会大大增加拼接的复杂性以及运算量。而采用DBG算法,通过K-1的overlap关系,构建DBG图,通过寻找欧拉路径得到Contig序列,从算法的角度极大的简化了组装的难度。

注意:N50只是能看出来连续性好坏,不能说组装效果好,contig拼错了scaffold N50也会提高。

SOAPdenovo 软件的组装过程

(1)通过Kmer之间K-1的overlap关系构建contig(重叠群),如图2

微信截图_20230606134647.png

实际测序过程中,contig的组装过程要比上图复杂,根据K-mer之间的关系进行连接。


微信截图_20230606134704.png

reads(read1:AGATCTTGTTATT;read2:GTTATTGATCTCC)逐bp的打断成长度为5bp的Kmer,根据Kmer间的overlap关系进行连接。可以看到两条reads中 GATCT 和 GTTATT 是两个重复的片段,在构建De Bruijn图中,会形成如上图的泡状结构以及多个分支的情况,面对这种很复杂的图,如何才能找到那一条正确的路径呢?

①对De Bruijn图进行化简

简化De Bruijn图需要去掉无法继续连接的分支、低覆盖度的分支,并且利用序列信息化简重复序列在De Bruijn图的分叉通路,对于少量的杂合位点,采用随机选择策略,合并杂合位点。通常需要考虑如下几种情况:

微信截图_20230606134715.png


②得到一个简化的De Bruijn图后,仍然会因有很多分叉位点无法确定真正的连接关系,因此接下来在每个分叉位点将序列截断,得到了最初contigs。

微信截图_20230606134728.png


(2)利用pair-end信息,将无overlap关系的contigs搭建成scaffold(脚手架),需要将将测序得到的reads比对回得到的contigs,利用reads之间的连接关系和插入片段大小信息,将contigs组装成scaffolds。,如图3:

微信截图_20230606134750.png

微信截图_20230606134802.png

(3)补洞

得到的scaffold中间会有较多的gap,为了使组装的序列更完整,需再次利用测序的双末端数据之间的配对关系连接contigs,并利用测序数据与已经组装的contig之间的覆盖关系对contig之间空隙进行补洞,延长contigs,补洞后的contigs长度相比补洞之前一般增加2-7倍。


微信截图_20230606134822.png


3 string graph算法

有利于组装散列重复序列。

string graph中的节点是长度不一的序列,这些序列是由overlapping reads生成,需要设置一个最小overlap大小。

相关文章
|
1月前
|
数据可视化 搜索推荐
单细胞分析 | 基因组区域的可视化 (2)
单细胞分析 | 基因组区域的可视化 (2)
33 0
单细胞分析 | 基因组区域的可视化 (2)
|
7月前
|
数据可视化
数量生态学冗余分析(RDA)分析植物多样性物种数据结果可视化|数据分享
数量生态学冗余分析(RDA)分析植物多样性物种数据结果可视化|数据分享
|
7月前
|
数据挖掘 数据库
基因测序的业务流程
基因测序的业务流程
|
数据库
生信分析|基因组倍型鉴定
生信分析|基因组倍型鉴定
187 0
|
存储 JSON Java
GATK4重测序数据怎么分析?
GATK4重测序数据怎么分析?
|
数据可视化 数据挖掘 Python
跟着Science学数据分析:利用三代测序数据(PacBio)鉴定结构变异
跟着Science学数据分析:利用三代测序数据(PacBio)鉴定结构变异
|
数据可视化 数据挖掘 Python
跟着Nature Communications学数据分析:基因组水平的比对鉴定结构变异
跟着Nature Communications学数据分析:基因组水平的比对鉴定结构变异
|
存储 数据可视化 Shell
单细胞免疫组库VDJ|从数据下载开始完成cellranger vdj分析(1)
单细胞免疫组库VDJ|从数据下载开始完成cellranger vdj分析(1)
480 0
|
算法 索引 Python
宏基因组之基因组装
宏基因组组装,即把短的reads拼装成连续的序列contig,再根据PE等关系将contig拼装成scaffold。与单个基因组组装不同,宏基因组组装最终得到的是环境样品中全部微生物的混合scaffold。理想情况下一条scaffold对应一个物种的全基因组。但由于序列太短或者覆盖度不够,很难拼出一条完整的基因组。针对高通量测序数据,出现了多种拼接算法和软件。
558 0
|
数据采集 设计模式 存储
全基因组重测序流程【超细致!!】
全基因组重测序流程【超细致!!】