Fully-functional bidirectional Burrows-Wheeler indexes
Abstract
Given a string on an alphabet of size , we describe a bidirectional Burrows-Wheeler index that takes bits of space, and that supports the addition \emph{and removal} of one character, on the left or right side of any substring of , in constant time. Previously known data structures that used the same space allowed constant-time addition to any substring of , but they could support removal only from specific substrings of . We also describe an index that supports bidirectional addition and removal in time, and that occupies a number of words proportional to the number of left and right extensions of the maximal repeats of . 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.
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}
}