PFP Data Structures
Prefix-free parsing (PFP) was introduced by Boucher et al. (2019) as a preprocessing step to ease the computation of Burrows-Wheeler Transforms (BWTs) of genomic databases. Given a string S, it produces a dictionary D and a parse P of overlapping phrases such that BWT (S) can be computed from D and P in time and workspace bounded in terms of their combined size |PFP (S)|. In practice D and P are significantly smaller than S and computing BWT (S) from them is more efficient than computing it from S directly, at least when S consists of genomes from individuals of the same species. In this paper, we consider PFP (S) as a data structure and show how it can be augmented to support the following queries quickly, still in O (|PFP (S)|) space: longest common extension (LCE), suffix array (SA), longest common prefix (LCP) and BWT. Lastly, we provide experimental evidence that the PFP data structure can be efficiently constructed for very large repetitive datasets: it takes one hour and 54 GB peak memory for 1000 variants of human chromosome 19, initially occupying roughly 56 GB.
READ FULL TEXT