Abstract

While short read aligners, which predominantly use the FM-index, are able to easily index one or a few human genomes, they do not scale well to indexing databases containing thousands of genomes. To understand why, it helps to examine the main components of the FM-index in more detail, which is a rank data structure over the Burrows-Wheeler Transform ( $${\mathsf{BWT}}$$ ) of the string that will allow us to find the interval in the string’s suffix array ( $${\mathsf{SA}}$$ ) containing pointers to starting positions of occurrences of a given pattern; second, a sample of the $${\mathsf{SA}}$$ that—when used with the rank data structure—allows us access to the $${\mathsf{SA}}$$ . The rank data structure can be kept small even for large genomic databases, by run-length compressing the $${\mathsf{BWT}}$$ , but until recently there was no means known to keep the $${\mathsf{SA}}$$ sample small without greatly slowing down access to the $${\mathsf{SA}}$$ . Now that Gagie et al. (SODA 2018) have defined an $${\mathsf{SA}}$$ sample that takes about the same space as the run-length compressed $${\mathsf{BWT}}$$ —we have the design for efficient FM-indexes of genomic databases but are faced with the problem of building them. In 2018 we showed how to build the $${\mathsf{BWT}}$$ of large genomic databases efficiently (WABI 2018) but the problem of building Gagie et al.’s $${\mathsf{SA}}$$ sample efficiently was left open. We compare our approach to state-of-the-art methods for constructing the $${\mathsf{SA}}$$ sample, and demonstrate that it is the fastest and most space-efficient method on highly repetitive genomic databases. Lastly, we apply our method for indexing partial and whole human genomes and show that it improves over Bowtie with respect to both memory and time. Availability: The implementations of our methods can be found at https://gitlab.com/manzai/Big-BWT (BWT and SA sample construction) and at https://github.com/alshai/r-index (indexing).

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call