English

Fully-functional bidirectional Burrows-Wheeler indexes

Data Structures and Algorithms 2019-06-11 v2

Abstract

Given a string TT on an alphabet of size σ\sigma, we describe a bidirectional Burrows-Wheeler index that takes O(Tlogσ)O(|T|\log{\sigma}) bits of space, and that supports the addition \emph{and removal} of one character, on the left or right side of any substring of TT, in constant time. Previously known data structures that used the same space allowed constant-time addition to any substring of TT, but they could support removal only from specific substrings of TT. We also describe an index that supports bidirectional addition and removal in O(loglogT)O(\log{\log{|T|}}) time, and that occupies a number of words proportional to the number of left and right extensions of the maximal repeats of TT. We use such fully-functional indexes to implement bidirectional, frequency-aware, variable-order de Bruijn graphs in small space, with no upper bound on their order, and supporting natural criteria for increasing and decreasing the order during traversal.

Keywords

Cite

@article{arxiv.1901.10165,
  title  = {Fully-functional bidirectional Burrows-Wheeler indexes},
  author = {Fabio Cunial and Djamal Belazzougui},
  journal= {arXiv preprint arXiv:1901.10165},
  year   = {2019}
}
R2 v1 2026-06-23T07:25:14.303Z