Cargando…

An optimized FM-index library for nucleotide and amino acid search

BACKGROUND: 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. Implementation of the FM-index is reasonably complicated,...

Descripción completa

Detalles Bibliográficos
Autores principales: Anderson, Tim, Wheeler, Travis J.
Formato: Online Artículo Texto
Lenguaje:English
Publicado: BioMed Central 2021
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8719400/
https://www.ncbi.nlm.nih.gov/pubmed/34972525
http://dx.doi.org/10.1186/s13015-021-00204-6
_version_ 1784624929355857920
author Anderson, Tim
Wheeler, Travis J.
author_facet Anderson, Tim
Wheeler, Travis J.
author_sort Anderson, Tim
collection PubMed
description BACKGROUND: 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. Implementation of the FM-index is reasonably complicated, so that increased adoption will be aided by the availability of a fast and flexible FM-index library. RESULTS: We present AvxWindowedFMindex (AWFM-index), a lightweight, open-source, thread-parallel FM-index library written in C that is optimized for indexing nucleotide and amino acid sequences. AWFM-index introduces 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 combines this with optional on-disk storage of the index’s suffix array and a cache-efficient lookup table for partial k-mer searches. The AWFM-index performs exact match count and locate queries faster than SeqAn3’s FM-index implementation across a range of comparable memory footprints. When optimized for speed, AWFM-index is [Formula: see text] 2–4x faster than SeqAn3 for nucleotide search, and [Formula: see text] 2–6x faster for amino acid search; it is also [Formula: see text] 4x faster with similar memory footprint when storing the suffix array in on-disk SSD storage. CONCLUSIONS: AWFM-index is easy to incorporate into bioinformatics software, offers run-time performance parameterization, and provides clients with FM-index functionality at both a high-level (count or locate all instances of a query string) and low-level (step-wise control of the FM-index backward-search process). The open-source library is available for download at https://github.com/TravisWheelerLab/AvxWindowFmIndex.
format Online
Article
Text
id pubmed-8719400
institution National Center for Biotechnology Information
language English
publishDate 2021
publisher BioMed Central
record_format MEDLINE/PubMed
spelling pubmed-87194002022-01-05 An optimized FM-index library for nucleotide and amino acid search Anderson, Tim Wheeler, Travis J. Algorithms Mol Biol Software Article BACKGROUND: 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. Implementation of the FM-index is reasonably complicated, so that increased adoption will be aided by the availability of a fast and flexible FM-index library. RESULTS: We present AvxWindowedFMindex (AWFM-index), a lightweight, open-source, thread-parallel FM-index library written in C that is optimized for indexing nucleotide and amino acid sequences. AWFM-index introduces 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 combines this with optional on-disk storage of the index’s suffix array and a cache-efficient lookup table for partial k-mer searches. The AWFM-index performs exact match count and locate queries faster than SeqAn3’s FM-index implementation across a range of comparable memory footprints. When optimized for speed, AWFM-index is [Formula: see text] 2–4x faster than SeqAn3 for nucleotide search, and [Formula: see text] 2–6x faster for amino acid search; it is also [Formula: see text] 4x faster with similar memory footprint when storing the suffix array in on-disk SSD storage. CONCLUSIONS: AWFM-index is easy to incorporate into bioinformatics software, offers run-time performance parameterization, and provides clients with FM-index functionality at both a high-level (count or locate all instances of a query string) and low-level (step-wise control of the FM-index backward-search process). The open-source library is available for download at https://github.com/TravisWheelerLab/AvxWindowFmIndex. BioMed Central 2021-12-31 /pmc/articles/PMC8719400/ /pubmed/34972525 http://dx.doi.org/10.1186/s13015-021-00204-6 Text en © The Author(s) 2021 https://creativecommons.org/licenses/by/4.0/Open AccessThis article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/ (https://creativecommons.org/licenses/by/4.0/) . The Creative Commons Public Domain Dedication waiver (http://creativecommons.org/publicdomain/zero/1.0/ (https://creativecommons.org/publicdomain/zero/1.0/) ) applies to the data made available in this article, unless otherwise stated in a credit line to the data.
spellingShingle Software Article
Anderson, Tim
Wheeler, Travis J.
An optimized FM-index library for nucleotide and amino acid search
title An optimized FM-index library for nucleotide and amino acid search
title_full An optimized FM-index library for nucleotide and amino acid search
title_fullStr An optimized FM-index library for nucleotide and amino acid search
title_full_unstemmed An optimized FM-index library for nucleotide and amino acid search
title_short An optimized FM-index library for nucleotide and amino acid search
title_sort optimized fm-index library for nucleotide and amino acid search
topic Software Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8719400/
https://www.ncbi.nlm.nih.gov/pubmed/34972525
http://dx.doi.org/10.1186/s13015-021-00204-6
work_keys_str_mv AT andersontim anoptimizedfmindexlibraryfornucleotideandaminoacidsearch
AT wheelertravisj anoptimizedfmindexlibraryfornucleotideandaminoacidsearch
AT andersontim optimizedfmindexlibraryfornucleotideandaminoacidsearch
AT wheelertravisj optimizedfmindexlibraryfornucleotideandaminoacidsearch