Suffix sorting via matching statistics
Zsuzsanna Lipták, Francesco Masillo, Simon J. Puglisi
TL;DR
This work tackles generalized suffix array construction for collections of highly similar strings by introducing a compressed matching statistics (CMS) framework anchored to a reference string $R$. An enhanced CMS (eCMS) with insert-heads enables fast, locality-friendly suffix comparisons, which are then organized through a multi-phase algorithm that buckets, sorts, and induces suffixes to build the GSA with worst-case time $O(N\log N)$, where $N=\sum_d |S_d|$. The authors implement a prototype, sacamats, and show it is competitive with or faster than state-of-the-art tools on highly repetitive data such as viral genomes and large chromosome datasets, while also providing a practical fast CMS computation heuristic. The CMS approach promises practical gains for pangenomic indexing and distributed or sparse suffix sorting, offering a new avenue for scalable genome-scale text indexing.
Abstract
We introduce a new algorithm for constructing the generalized suffix array of a collection of highly similar strings. As a first step, we construct a compressed representation of the matching statistics of the collection with respect to a reference string. We then use this data structure to distribute suffixes into a partial order, and subsequently to speed up suffix comparisons to complete the generalized suffix array. Our experimental evidence with a prototype implementation (a tool we call sacamats) shows that on string collections with highly similar strings we can construct the suffix array in time competitive with or faster than the fastest available methods. Along the way, we describe a heuristic for fast computation of the matching statistics of two strings, which may be of independent interest.
