前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >组装算法:为什么是k-mer?

组装算法:为什么是k-mer?

作者头像
SYSU星空
发布于 2022-05-05 05:29:41
发布于 2022-05-05 05:29:41
1.5K0
举报

Q:什么是组装算法?

A:无论是一代Sanger、二代Illumina还是三代Pacbio,其得到的测序数据(reads)相较于整个基因组而言都是极短的,基因组组装的任务就是将这些小片段连接起来,通过这些序列的关系构建Graph,然后根据算法从Graph中得到最优路径,从而得到最初的Contig序列。目前组装软件常用的两种算法:overlap-layout-consensus (OLC)和de-bruijn-graph(DBG)。

OLC算法

OLC是一种直观算法(intuitionistic assembly algorithm),主要用于长的低丰度序列的组装,特别是一代和三代测序数据,常见的软件有Arachne、Celera Assembler、CAP3、PCAP、TIGR、AMOS、Phrap、Phusion和Newbler。其方法主要分为三步,如下所示:

①Overlap:对所有reads进行两两比对,找到片段间的重叠overlap;

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

③根据构成每个Contig的片段的原始质量数据,在重叠群中寻找一条质量最佳的序列路径,并获得与路径对应的序列,即Consensus,如下图所示。

寻找路径的方法:将每条reads用一个节点代替,如果u的末端与w的首端存在overlap即创建一个有向连接directed-edge(u,w),这样一个重叠群的reads就形成一个网络,组装的过程就可以理解为在网络中寻找一条最短路径,使得可以经过所有的点并且每个点只经过一次,也即一个哈密顿路径(Hamiltonian path)问题。此算法的缺陷在于哈密顿路径本身所带来的NP难题(对于一个网络图中是否存在一条哈密顿路,没有可靠的充分必要条件),从而导致解决问题的时间过长。

DBG算法

DBG是一种非直观算法(anti-intuition algorithm),主要用于短的高丰度片段的组装,特别是二代测序数据,常见的软件有Velvet、ABySS、AllPath-LG、SOAPdenovo、EulerUSR、IDBA、SPAdes、Ray。与OLC算法不同,DBG算法将组装过程转换为一个在De Bruijn图中寻找欧拉路径(Eulerian path)的问题(从某点出发经过且只经过一次所有的边),而欧拉路径是P类问题,即有可靠的充要条件证明欧拉路径的存在,可以在确定的时间内解决。其方法如下所示:

①将reads分割为更短的长度统一的k-mers(长度小于k的reads将被舍弃);

②寻找k-mer之间的重叠关系,建立De Bruijn图,即对于任意两个k-mer,如果u的后k-1个碱基序列与w的前k-1个碱基序列相同,则建立一条由u指向w的有向边;

③在De Bruijn图中寻找欧拉路径来获得结果序列Contigs。

由于二代测序得到的reads长度较短,包含的信息量较少,因此完成基因组拼接需要较高的覆盖度。OLC算法适用于读长较长的序列组装,通过构成的OLC图寻找Consensus sequence的过程,实际上是哈密顿通路寻找的问题,算法简单但是解决难度大。采用DBG算法,通过k-1的overlap关系,构建DBG图,通过寻找欧拉路径得到Contig序列,算法可靠性更高,两者的区别如下所示:

DBG算法将哈密顿路径问题转化为欧拉路径问题的关键在于De Bruijn图中每一条序列只比前一条序列多1个碱基,overlap为k-1个碱基,因此只需要知道起始节点和终止节点的序列以及中间所有边(overlap序列)便可得出contig。

组装流程

根据overlap构图并搜寻contigs仅仅是第一步,完整的基因组组装流程还包含Scaffold搭建、gap修补等过程。以经典的SOAPdenovo软件为例,其为一种新型的利用DBG算法的short read组装软件,设计服务于大型的植物和动物基因组,对细菌和真菌的基因组也有效。其组装分析过程如下所示:

⑴分割k-mers

将所有reads分割成固定长度为k的较短序列,形成等长的k-mers,长度短于k的reads将被舍弃。由于reads中仍有一些错误或者N的存在,造成一些错误k-mer或者低频k-mer,错误Kmer对后续组装会产生很大的困扰,因此在构建DBG图之前,需要先对数据进行纠错区分。SOAPdenovo采用绘制没有测序错误与错误k-mer的深度分布图的方法,如下所示:

Error free代表没有测序错误的Kmer频数分布,Error rate1%代表有1%错误率的Kmer频数分布。

⑵构建DBG图

根据k-mers之间的overlap关系划分Contigs,并对每一个Contig创建de bruijn graph。实际生成的DBG图非常复杂,例如由于测序错误、杂合或者高重复序列产生的tips翼尖(a)和bubbles气泡(c),由于,低覆盖率造成的链接low coverage links(b图)和(d图),微小重复造成的压缩(e图),具体如下所示:

因此需要对DBG图进行简化,移除错误链接、删除低覆盖链接、解开短重复序列等,最终输出Contigs序列。

⑶构建Scaffold

双末端测序中,相同序列名字的read1和read2来自同一条序列(中间不一定有overlap),可以根据paired-end信息将不同的Contigs搭建成Scaffold,如下图所示:

⑷填补gap

得到的Scaffold中间会有较多的gap,为了使组装的序列更完整,需再次利用测序的双末端数据之间的配对关系连接Contigs,并利用测序数据与已经组装的Contig之间的覆盖关系对Contig之间空隙进行补洞,延长Contigs。

参考文献

[1] Z L, Y C, D M, et al. Comparison of the two major classes of assembly algorithms: overlap-layout-consensus and de-bruijn-graph[J]. Briefings in Functional Genomics, 2012, 11(1): 25.

[2] Luo R, Liu B, Xie Y, et al. SOAPdenovo2: an empirically improved memory-efficient short-read de novo assembler[J]. Gigascience, 2012, 1(1): 1-6.

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微生态与微进化 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
二代测序数据拼接之原理篇
前前后后接触了一些基因组和转录组拼接的工作,而且后期还会持续进行。期间遇到了各种各样莫名其妙的坑,也尝试了一些不同的方法和软件,简单做一个阶段性小结,本篇是原理部分,下周的同一时间更新实战部分。 6
生信技能树
2018/03/05
7.1K0
二代测序数据拼接之原理篇
基因组拼接原理
前面我们了解了基因组拼接,今天给大家带来的是拼接原理。了解实验原理,就是为了我们更好地做实验。
生信喵实验柴
2022/04/07
2K0
基因组拼接原理
测序数据组装的常用工具
Spades(http://cab.spbu.ru/software/spades/)可用于进行单细菌基因组组装,也能用于宏基因组测序数据,可以进行二代与三代测序数据的混合组装,也支持多样品组装。输入数据可以是Illumina、IonTorrent或PacBio、Sanger测序结果,也可以把一些contigs序列作为long reads进行输入。该软件可以同时接受多组paired-end、mate-pairs和unpaired reads数据的输入。spades支持输入文件格式:fq、fastq、bam、fa、fasta、fq.gz、fastq.gz、bam.gz、fa.gz、fasta.gz,其使用方法如下所示:
SYSU星空
2022/05/05
3K0
测序数据组装的常用工具
测序知识DAY7-Gaozsi
一种基于文本的,保存生物序列(通常是核酸序列)和其测序质量信息的标准格式,一般都包含有4行。
gaozsi
2024/02/26
2060
全基因组 | 三代长读长基因组组装 -- Canu
今天我们介绍一款用于三代长度长测序数据(如PacBio和纳米孔测序)的基因组de novo拼接工具 -- Canu,既适用于小基因组又适用于大基因组的组装,最早是为了应对低碱基质量(high-noise)的数据(如来自PacBio RSII/Sequel, ONT-MinION)。2017年3月15日,Canu发表于《Genome Biology》期刊上,题目为Canu: scalable and accurate long-read assembly via adaptive k-mer weighting and repeat separation,第一作者为美国国家人类基因组研究所(NHGRI)基因组信息学部门的Sergey Koren博士(图1)。他在基因组组装和单分子测序算法领域具有深厚的研究背景,开发了 Canu和 HiCanu等基因组组装软件,广泛应用于从微生物到人类的各种基因组组装项目。此外,他们还在 Telomere-to-Telomere(T2T)项目中担任领导角色(共1第2位),完成了首个完整(T2T)的人类基因组序列。
三代测序说
2025/05/29
1120
全基因组 | 三代长读长基因组组装 -- Canu
测序数据拼接,首先需要了解这些概念!
基因组图谱可分为框架图(草图,draft)、精细图、完成图(全图),具体如下所示:
SYSU星空
2022/05/05
2K0
测序数据拼接,首先需要了解这些概念!
关于k-mer与基因组(组装)的那些事
随着越来越多物种的基因组被测序发表,极大丰富了我们对物种起源、进化等方面的认知,同时也为各种物种的研究打下了基础。但是在面对复杂基因组时或者参考基因组并未发表的情况下,我们通常会对这个物种的基因组进行De Novo组装,在得到一个相对完整的基因组图谱以后,接着进行接下来的分析如基因功能预测、物种间进化关系等。在这个过程中,我们经常会遇到k-mer这个名词,然而这个抽象的名词是什么意思呢?它又有什么用呢?接下来,就随着小编一起去探究这k-mer背后的含义吧!
阿凡亮
2020/04/14
11.3K0
二代测序基因组拼接实战
该文章中对 20 个细菌基因组进行测序,每个样本分别进行了 illumina,pacbio 以及 nanopore测序。比较三种数据的拼接结果。其中两株细菌已包含发表出来的全基因组序列。
生信喵实验柴
2022/05/23
2.8K0
二代测序基因组拼接实战
LoRDEC:精确且高效的长read校正
动机:PacBio单分子实时测序是一种产生长片段(reads)的第三代测序技术,具有相对更低的通量和更高的错误率。错误包括大量插入缺失,并使下游分析,像比对或从头装配复杂化。提出了一种利用第二代短片段高准确性的混合策略以修正长片段。短片段到长片段的比对提供了足够的覆盖以剔除高达99%的错误,然而,是以过高的运行时和相当大量的磁盘和内存空间为代价的。
wangprince2017
2019/10/11
1.5K0
k-mer分析:你的基因组有没有被污染?
k-mer分析常用的软件有Jellyfish、Kmergenie、KmerFreq和GCE等。其中Kmergenie常用于预测de novo组装中最优组装k-mer大小,根据reads分割k-mers并绘制k-mer深度分布曲线。Jellyfish分析准确度高,常用于判断基因组纯度、杂合度等。
SYSU星空
2022/05/05
3.5K0
k-mer分析:你的基因组有没有被污染?
转录组数据拼接之应用篇
前前后后接触了一些基因组和转录组拼接的工作,而且后期还会持续进行。期间遇到了各种各样莫名其妙的坑,也尝试了一些不同的方法和软件,简单做一个阶段性小结。上周的今天更新了原理部分 二代测序数据拼接之原理篇
生信技能树
2018/03/05
3.4K0
转录组数据拼接之应用篇
二代测序宏基因组拼接
基因组拼接一直是整个基因组数据分析中最重要和最核心的工作,因为基因组包含了一个物种全部的遗传信息。得到的基因组越完整,包含的基因组信息也越多,对于后续对整个基因组的功能分析,变异检测都有非常大的帮助。由于基因组本身具有的高度重复序列,多倍体杂合位点,低复杂度区域以及测序错误等诸多条件的影响,基因组拼接一直是一项非常复杂且困难的工作。尤其是基因组重复序列的影响,一直是二代短读长测序最难解决的问题,尽管后来基于二代测序数据开发除了一些辅助拼接方案,例如大片段文库,Optical mapping光学图谱,三位基因组等辅助方案,都无法彻底解决基因组拼接难题。而利用 nanopore 长度长测序,将革命性地解决重复序列对于基因组拼接的影响。
生信喵实验柴
2023/02/24
1.2K0
二代测序宏基因组拼接
基因组重测序的unmapped reads assembly探究 【直播】我的基因组86
在前面的直播基因组系列,我们讲解过那些比对不少我们人类的参考基因组序列的数据,其实可以细致的进行探究。 直播】我的基因组(十五):提取未比对的测序数据 这里主要参考这篇文章的图4:http://ww
生信技能树
2018/03/09
2.1K0
基因组重测序的unmapped reads assembly探究 【直播】我的基因组86
使用CCS序列数据改进宏基因组拼接效率和物种分类注释
DNA组装是用于研究微生物群落结构和功能的宏基因组流程中的核心方法学步骤。在这里,我们调查太平洋生物科学长期和高精度循环共识测序(CCS)的宏基因组项目的实用性。我们比较了PacBio CCS和Illumina HiSeq数据的应用和性能以及使用代表复杂微生物群落的宏基因组样本的组装和分类分类算法。8个SMRT细胞从沼气反应器微生物组合样品中产生大约94Mb的CCS读数,其平均长度为1319nt,精度为99.7%。CCS数据组合产生了大于1 kb的相当数量的大型重叠群,与从相同样本产生的约190x较大的HiSeq数据集(〜18 Gb)组装的大型重叠群组成(即约占总重叠群的62%)。使用PacBio CCS和HiSeq重叠群的混合组件在装配统计数据方面进行了改进,包括平均重叠体长度和大型重叠群数量的增加。CCS数据的并入产生了两个显性系统的分类学分类,基因组重建的显着增强,使用HiSeq数据单独组合则分类不佳。总而言之,这些结果说明了PacBio CCS在某些宏基因组应用的价值。
用户1075469
2020/03/03
2.9K0
宏基因组binning原理
在宏基因组中分离单基因组,可利用序列特征或序列组装信息,常见的可用信息主要有以下几种:
SYSU星空
2022/05/05
1.2K0
宏基因组binning原理
soapdenovo2进行基因组组装
基因组的的大小,杂合程度等因素都影响基因组组装的难易程度,目前市场上主流的有以下两种产品
生信修炼手册
2020/05/08
2.2K0
GATK的人类宿主的微生物检测流程PathSeq
PathSeq 是一个 GATK 管道,用于检测取自宿主生物体(例如人类)的短读长深度测序样本中的微生物。比如人类肿瘤测序数据,就可以使用它看看是否有微生物序列! 下图总结了它的工作原理。该管道先对r
生信技能树
2023/09/19
2.5K0
GATK的人类宿主的微生物检测流程PathSeq
pacbio及nanopore基因组拼接
Pacbio 测序数据与 nanopore 测序数据均为长读长测序,且二者数据质量类似,因此很多软件同时支持 pacbio 与 nanopore 数据,例如 canu,flye,wtdbg,miniasm,smartdenovo等软件均同时支持两种数据。但需注意如果 pacbio 测序为 hifi reads 模式,需要指定该模式。
生信喵实验柴
2022/05/23
1.5K0
Abyss:基于布隆过滤器的基因组组装软件
主流的NGS基因组组装软件都是先将序列划分成kmer, 然后基于de Bruijn Graph图论算法,得到组装好的序列。程序运行时,kmer字符串时存储在内存中,所以要求计算机的内存要足够大。
生信修炼手册
2020/05/08
8220
全基因组 | 三代长读长基因组组装 -- Flye
今天我们介绍一款用于三代长度长测序数据(如PacBio和纳米孔测序)的基因组de novo拼接工具 -- Flye,可用于进行小型细菌到哺乳动物基因组的组装。2019年04月01日,Flye发表于《Nature Biotechohnology》期刊上,题目为Assembly of long, error-prone reads using repeat graphs, 第一作者为当时在美国圣地亚戈加州大学Pavel A. Pevzner组里做博士后的Mikhail Kolmogorov博士(图1)。Mikhail Kolmogorov博士研究重点是计算生物学,包括算法、数学模型和工具,并且是长读长基因组组装工具Flye和metaFlye的首席开发人员,其现在就职于美国国家癌症研究所 (NIH-National Cancer Institute , Center for Cancer Research)。
三代测序说
2025/05/27
860
全基因组 | 三代长读长基因组组装 -- Flye
相关推荐
二代测序数据拼接之原理篇
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档