metagenomic Assembly:
de novo定义:from the beginning(从头拼接), no reference genome guided(无参考基因组)
1.基本思路:
无论是一代sanger、二代短reads、三代长Pacbio,我们得到的测序数据相较于整个基因组而言仍然是极小的;我们的任务就是将这些小片段连接起来;序列之间的联系因为重复序列的存在变得非常复杂,通过overlap我们最终都会构建Graph,所有的算法都会从Graph中得到最优路径,从而得到最初的contig。
2.种类:
a. Overlap-Layout-Consensus
适用范围: reads读长较大的测序数据,如一代和三代的reads.
主要步骤:
Overlap:对所有reads进行两两比对,找到片段间的重叠信息
Layout:根据得到的重叠信息将存在的重叠片段建立一种组合关系,形成重叠群,即Contig;
Consensus:根据构成Contig的片段的原始质量数据,在重叠群中寻找一条质量最重的序列路径,
并获得与路径对应的序列.
缺点:
算法过于复杂
代表软件:
Velvet,SPAdes、IDBA-UD
b.de Bruijn Graph
适用范围: 适用于reads比较短的测序数据,二代数据
主要步骤:
将reads打断成长度为K的核酸片段,即Kmer
在利用Kmer间的overlap关系构建DBG,再通过DBG找一个结点没有重复的回路就能构成DB序列,从而得到基因组序列。
缺点:
难以对重复序列区域进行分析,更依赖于建库。
代表软件:
SOAPdenovo
#DBG算法相比于OLC的优势是什么?
# 由于二代测序得到的reads长度较短,包含的信息量较少,因此完成基因组拼接需要较高的覆盖度。OLC算法适用于读长较长的序列组装,
# 通过构成的OLC图寻找Consensus sequence的过程,实际上是哈密顿通路寻找的问题,算法非常复杂。
# 若采用OLC算法,会大大增加拼接的复杂性以及运算量。而采用DBG算法,通过K-1的overlap关系,构建DBG图,通过寻找欧拉路径得到
# Contig序列,从算法的角度极大的简化了组装的难度。
c. String Graph ( Greedy algorithm 贪婪算法??)
适用范围:有利于组装散列重复序列
'步骤':string graph中的节点是长度不一的序列,这些序列是由overlapping reads生成,需要设置一个最小overlap大小
两篇论文:doi: 10.1093/bfgp/elr035. (overlap-layout-consensus and de-bruijn-graph)
https: // doi.org / 10.1093 / bioinformatics / bti1114. (string graph)