中文

面向序列集合的外部内存 BWT 与 LCP 计算及其应用

数据结构与算法 2020-09-10 v1

摘要

我们提出了一种用于计算序列集合的 BWT 和 LCP 数组的外部内存算法。我们的算法将可用内存量作为输入参数,并通过将输入集合拆分为足够小的子集合来充分利用它,使得能够在 RAM 中使用最优线性时间算法计算其子集合的 BWT。接下来,它在外部内存中合并部分 BWT,并在该过程中计算 LCP 值。我们证明我们的算法执行 O(n AveLcp) 次顺序 I/O,其中 n 是集合的总长度,AveLcp 是集合的平均最长公共前缀。该界相对于同一任务的已知算法有所改进。实验结果表明,对于具有不同长度的序列集合以及平均最长公共前缀相对较小的集合,我们的算法优于当前最佳算法。在论文的第二部分,我们展示了可将我们的算法修改为输出另外两个数组,这些数组与 BWT 和 LCP 数组一起,为生物信息学中三个著名问题提供简单的、基于扫描的外部内存算法:极大重复的计算、所有配对后缀-前缀重叠以及简洁 de Bruijn 图的构建。据我们所知,这些问题没有其他已知的外部内存算法。

关键词

引用

@article{arxiv.1805.06821,
  title  = {External memory BWT and LCP computation for sequence collections with applications},
  author = {Lavinia Egidi and Felipe A. Louza and Giovanni Manzini and Guilherme P. Telles},
  journal= {arXiv preprint arXiv:1805.06821},
  year   = {2020}
}