中文

RLBWT 技巧

数据结构与算法 2022-07-15 v2

摘要

直到最近,大多数专家可能都会同意,我们无法在游程压缩的 Burrows-Wheeler 变换(RLBWT)上以常数时间进行反向步进,因为这样做依赖于稀疏位向量上的 rank 查询,而这些查询继承了前驱查询的下界。然而,在 ICALP '21 上,Nishimoto 和 Tabei 描述了一种新的、简单的常数时间实现。对于一个排列 π\pi,它存储一个 O(r)O(r) 空间的表——其中 rr 是满足 i=0i = 0π(i+1)π(i)+1\pi(i+1) \neq \pi(i)+1 的位置 ii 的数量——该表能够通过查表和线性扫描来计算 π(i)\pi(i) 的连续值。Nishimoto 和 Tabei 展示了如何增加表中的行数以限制线性扫描的长度,使得计算 π(i)\pi(i) 的查询时间为常数,同时保持 O(r)O(r) 空间。在本文中,我们改进了 Nishimoto 和 Tabei 的方法,包括一种时间-空间权衡,并通过实验评估了不同的实现,证明了他们部分结果的实用性。我们表明,即使不向表中添加行,在实践中我们在查询期间几乎总是只扫描少量条目。我们提出了一种对应于 LF-映射的排列 π\pi 的分解方案,该方案允许改进数据结构的压缩,同时限制查询时间。我们在真实世界的基因组数据集上测试了我们的实现,发现如果不压缩表,反向步进比稀疏位向量实现快得多,但不幸的是,也使用了更多的空间。经过压缩后,反向步进在时间和空间上都与现有的最佳实现具有竞争力。

关键词

引用

@article{arxiv.2112.04271,
  title  = {RLBWT Tricks},
  author = {Nathaniel K. Brown and Travis Gagie and Massimiliano Rossi},
  journal= {arXiv preprint arXiv:2112.04271},
  year   = {2022}
}

备注

15 pages, 8 figures. New edition with expanded experimental results after poster acceptance at earlier conference. Section 4 removed, sections added for implementation details