Efficient taxa identification using a pangenome index.
Omar AhmedMassimiliano RossiChristina BoucherBen LangmeadPublished in: Genome research (2023)
Tools that classify sequencing reads against a database of reference sequences require efficient index data structures. The r -index is a compressed full-text index that answers substring presence/absence, count and locate queries in space proportional to the amount of distinct sequence in the database: O(r) space where r is the number of Burrows-Wheeler runs. To date, the r -index has lacked the ability to quickly classify matches according to which reference sequences (or sequence groupings, i.e.~taxa) a match overlaps. We present new algorithms and methods for solving this problem. Specifically, given a collection D of d documents D = {T_1, T_2, ..., T_d } over an alphabet of size sigma, we extend the r -index with O(rd) additional words to support document listing queries for a pattern S[1..m] that occurs in ndoc documents in D in O(m log log_w(sigma + n/r) + ndoc) time and O(rd) space, where w is the machine word size. Applied in a bacterial mock community experiment, our method is up to 3 times faster than a comparable method that uses the standard r -index locate queries. We show that our method classifies both simulated and real nanopore reads at the strain level with higher accuracy compared to other approaches. Finally, we present strategies for compacting this structure in applications where read lengths or match lengths can be bounded.