从 Burrows-Wheeler 变换进行空间高效 LCP 数组计算
数据结构与算法
2019-01-23 v3
摘要
我们证明,总大小为 n、字母表为 [1, {\sigma}] 的文本集合的最长公共前缀(LCP)数组,可从 Burrows-Wheeler 变换后的集合在 O(n log {\sigma}) 时间内计算出来,除输入与输出外仅使用 o(n log {\sigma}) 位工作空间。我们的结果改进了(在小字母表上)并推广了(到字符串集合)Beller 等人先前的方案,后者需要 O(n) 位额外工作空间。我们还展示了如何在同一时间与空间界限内合并两个总大小为 n 的集合的 BWT。我们算法核心的过程可用于从 BWT 以简洁空间枚举后缀树区间,这具有独立意义。我们对第一种算法在 DNA 字母表上的工程化实现,以每秒 2.92 兆碱基的速率在 RAM 中总计每碱基 1.5 字节下推导出一个大型(16 GiB)短读长(100 碱基)集合的 LCP。我们的第二种算法以每秒 1.7 兆碱基的速率合并两个各 8 GiB 的短读长集合的 BWT,并在 RAM 中使用每碱基 0.625 字节。该算法的一个同时计算合并集合 LCP 数组的扩展以每秒 1.48 兆碱基的速率处理数据,并使用每碱基 1.625 字节的 RAM。
引用
@article{arxiv.1901.05226,
title = {Space-Efficient Computation of the LCP Array from the Burrows-Wheeler Transform},
author = {Nicola Prezza and Giovanna Rosone},
journal= {arXiv preprint arXiv:1901.05226},
year = {2019}
}