bioRxiv · 10.1101/2021.01.12.426474
An optimized FM-index library for nucleotide and amino acid search
Abstract
Pattern matching is a key step in a variety of biological sequence analysis pipelines. The FM-index is a compressed data structure for pattern matching, with search run time that is independent of the length of the database text. We present AvxWindowedFMindex (AWFM-index), an open-source, thread-parallel FM-index library written in C that is optimized for indexing nucleotide and amino acid sequences. AWFM-index is easy to incorporate into bioinformatics software and is able to perform exact match count and locate queries ~2-4x faster than SeqAn3s FM-index implementation for nucleotide search, and ~2-6x faster for amino acid search in a single-threaded context. This performance is due to (i) a new approach to storing FM-index data in a strided bit-vector format that enables extremely efficient computation of the FM-index occurrence function via AVX2 bitwise instructions, and (ii) inclusion of a cache-efficient lookup table for partial k-mer searches. AWFM-index also trivially parallelizes to multiple threads with good scaling, and enables efficient on-disk storage of the memory-intensive suffix array. The open-source library is available for download at https://github.com/TravisWheelerLab/AvxWindowFmIndex.
Source connections
Explore related subjects
Keep this discovery
Explore connections, maps & timelines
Anderson, T., Wheeler, T. J.. 2021-01-14. An optimized FM-index library for nucleotide and amino acid search. https://doi.org/10.1101/2021.01.12.426474
Cite the original work for its findings. Save a collection to share your selection of sources.