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,...
Autores principales: | , |
---|---|
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 |