FM-index

FM-index implements a compressed full-text index enabling efficient exact-match counting and locating in nucleotide and amino acid sequence analysis.


Key Features:

  • AWFM-index implementation: AvxWindowedFMindex (AWFM-index) provides an FM-index implementation optimized for nucleotide and amino acid sequence analysis.
  • Exact-match queries: Performs exact match count and locate queries on sequence data.
  • Performance improvements vs SeqAn3: Delivers approximately 2–4× faster exact-match count and locate queries for nucleotide searches and 2–6× faster for amino acid searches in single-threaded comparisons to SeqAn3.
  • Strided bit-vector storage: Employs a novel strided bit-vector format to store FM-index data and optimize memory access patterns.
  • AVX2 bitwise computation: Uses AVX2 bitwise instructions to accelerate computation of the FM-index occurrence function.
  • Cache-efficient k-mer lookup tables: Incorporates cache-efficient lookup tables for partial k-mer searches to reduce latency for frequent queries.
  • Parallelization: Designed to trivially parallelize across multiple threads for scalable multi-threaded execution.
  • On-disk suffix array support: Supports efficient on-disk storage for the memory-intensive suffix array component.

Scientific Applications:

  • Genome assembly: Accelerates pattern matching steps in genome assembly workflows via faster exact-match queries.
  • Variant calling: Speeds sequence search operations used in variant detection and genotyping pipelines.
  • Comparative genomics: Enables rapid matching of nucleotide and amino acid sequences for comparative analyses.
  • Genetic and proteomic research: Supports high-throughput analyses of genetic and proteomic sequence datasets by reducing computational time for substring queries.

Methodology:

The implementation stores FM-index data in a strided bit-vector format, computes the occurrence function using AVX2 bitwise instructions, employs cache-efficient lookup tables for partial k-mer searches, and supports multithreading and on-disk suffix array storage.

Topics

Details

License:
BSD-3-Clause
Tool Type:
command-line tool
Programming Languages:
C
Added:
3/19/2021
Last Updated:
4/29/2021

Operations

Publications

Anderson T, Wheeler TJ. An optimized FM-index library for nucleotide and amino acid search. Unknown Journal. 2021. doi:10.1101/2021.01.12.426474.