Unicycler 在组装短 Illumina reads 时,核心使用的是 De Bruijn graph(德布鲁因图) 算法,并且它是通过直接调用著名的短读长组装软件 SPAdes (St. Petersburg genome assembler) 来实现这一过程的。
具体来说,Unicycler 处理短 reads 的机制如下:
1. 仅使用短 reads (Short-read only mode)
如果你只提供 Illumina 短 reads,Unicycler 本质上会作为一个 SPAdes 的“包装器 (wrapper)”运行。它会:
- 使用 多 k-mer (multiple k-mer) 的 De Bruijn graph 算法来构建组装图。
- 执行错误纠正 (error correction)。
- 解析图中的复杂结构(如由测序错误或重复序列引起的 bubbles 和 tips)。
- 输出高质量的 contigs 和 scaffolds。
2. 混合组装模式 (Hybrid mode: Illumina + Nanopore/PacBio)
Unicycler 的真正强大之处在于混合组装。在这种模式下,短 reads 的 De Bruijn graph 组装是整个流程的“基石”:
- 第一步 (Short-read assembly):首先调用 SPAdes 组装高精度的 Illumina reads,生成一组高准确度但可能被重复序列打断的初始 contigs。
- 第二步 (Long-read assembly):使用长 reads (如 Oxford Nanopore 或 PacBio) 构建 Overlap-Layout-Consensus (OLC) 图(通常借助
miniasm)。 - 第三步 (Bridging):Unicycler 使用其专有的桥接算法,将长 reads 作为“桥梁”,把 SPAdes 生成的短 read contigs 连接起来,从而跨越重复区域,形成完整的环状基因组 (circularized genomes)。
- 第四步 (Polishing):最后,再次利用高精度的 Illumina 短 reads(通常通过
Pilon或Racon+Pilon)对混合组装的结果进行抛光,纠正长 reads 带来的随机插入/缺失 (indel) 错误。
总结
对于“Illumina 短 reads 的组装算法”这一问题,最准确的答案是:De Bruijn graph 算法(通过内置调用 SPAdes 实现)。这种设计使得 Unicycler 既能保留 SPAdes 在短读长组装中的极高碱基准确率,又能利用长读长解决基因组中的复杂重复区域。
(参考: Wick, R. R., Judd, L. M., Gorrie, C. L., & Holt, K. E. (2017). Unicycler: Resolving bacterial genome assemblies from short and long sequencing reads. PLOS Computational Biology, 13(6), e1005595.)