Cargando…

Portable BLAST-like algorithm library and its implementations for command line, Python, and R

Basic local-alignment search tool (BLAST) is a versatile and commonly used sequence analysis tool in bioinformatics. BLAST permits fast and flexible sequence similarity searches across nucleotide and amino acid sequences, leading to diverse applications such as protein domain identification, ortholo...

Descripción completa

Detalles Bibliográficos
Autores principales: Schmid, Steven, Jeevannavar, Aditya, Julian, Timothy R., Tamminen, Manu
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Public Library of Science 2023
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10688653/
https://www.ncbi.nlm.nih.gov/pubmed/38032878
http://dx.doi.org/10.1371/journal.pone.0289693
_version_ 1785152207391293440
author Schmid, Steven
Jeevannavar, Aditya
Julian, Timothy R.
Tamminen, Manu
author_facet Schmid, Steven
Jeevannavar, Aditya
Julian, Timothy R.
Tamminen, Manu
author_sort Schmid, Steven
collection PubMed
description Basic local-alignment search tool (BLAST) is a versatile and commonly used sequence analysis tool in bioinformatics. BLAST permits fast and flexible sequence similarity searches across nucleotide and amino acid sequences, leading to diverse applications such as protein domain identification, orthology searches, and phylogenetic annotation. Most BLAST implementations are command line tools which produce output as comma-separated values files. However, a portable, modular and embeddable implementation of a BLAST-like algorithm, is still missing from our toolbox. Here we present nsearch, a command line tool and C++11 library which provides BLAST-like functionality that can easily be embedded in any application. As an example of this portability we present Blaster which leverages nsearch to provide native BLAST-like functionality for the R programming language, as well as npysearch which provides similar functionality for Python. These packages permit embedding BLAST-like functionality into larger frameworks such as Shiny or Django applications. Benchmarks show that nsearch, npysearch, and Blaster are comparable in speed and accuracy to other commonly used modern BLAST implementations such as VSEARCH and BLAST+. We envision similar implementations of nsearch for other languages commonly used in data science such as Julia to facilitate sequence similarity comparisons. Nsearch, Blaster and npysearch are free to use under the BSD 3.0 license and available on Github Conda, CRAN (Blaster) and PyPi (npysearch).
format Online
Article
Text
id pubmed-10688653
institution National Center for Biotechnology Information
language English
publishDate 2023
publisher Public Library of Science
record_format MEDLINE/PubMed
spelling pubmed-106886532023-12-01 Portable BLAST-like algorithm library and its implementations for command line, Python, and R Schmid, Steven Jeevannavar, Aditya Julian, Timothy R. Tamminen, Manu PLoS One Research Article Basic local-alignment search tool (BLAST) is a versatile and commonly used sequence analysis tool in bioinformatics. BLAST permits fast and flexible sequence similarity searches across nucleotide and amino acid sequences, leading to diverse applications such as protein domain identification, orthology searches, and phylogenetic annotation. Most BLAST implementations are command line tools which produce output as comma-separated values files. However, a portable, modular and embeddable implementation of a BLAST-like algorithm, is still missing from our toolbox. Here we present nsearch, a command line tool and C++11 library which provides BLAST-like functionality that can easily be embedded in any application. As an example of this portability we present Blaster which leverages nsearch to provide native BLAST-like functionality for the R programming language, as well as npysearch which provides similar functionality for Python. These packages permit embedding BLAST-like functionality into larger frameworks such as Shiny or Django applications. Benchmarks show that nsearch, npysearch, and Blaster are comparable in speed and accuracy to other commonly used modern BLAST implementations such as VSEARCH and BLAST+. We envision similar implementations of nsearch for other languages commonly used in data science such as Julia to facilitate sequence similarity comparisons. Nsearch, Blaster and npysearch are free to use under the BSD 3.0 license and available on Github Conda, CRAN (Blaster) and PyPi (npysearch). Public Library of Science 2023-11-30 /pmc/articles/PMC10688653/ /pubmed/38032878 http://dx.doi.org/10.1371/journal.pone.0289693 Text en © 2023 Schmid et al https://creativecommons.org/licenses/by/4.0/This is an open access article distributed under the terms of the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0/) , which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.
spellingShingle Research Article
Schmid, Steven
Jeevannavar, Aditya
Julian, Timothy R.
Tamminen, Manu
Portable BLAST-like algorithm library and its implementations for command line, Python, and R
title Portable BLAST-like algorithm library and its implementations for command line, Python, and R
title_full Portable BLAST-like algorithm library and its implementations for command line, Python, and R
title_fullStr Portable BLAST-like algorithm library and its implementations for command line, Python, and R
title_full_unstemmed Portable BLAST-like algorithm library and its implementations for command line, Python, and R
title_short Portable BLAST-like algorithm library and its implementations for command line, Python, and R
title_sort portable blast-like algorithm library and its implementations for command line, python, and r
topic Research Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10688653/
https://www.ncbi.nlm.nih.gov/pubmed/38032878
http://dx.doi.org/10.1371/journal.pone.0289693
work_keys_str_mv AT schmidsteven portableblastlikealgorithmlibraryanditsimplementationsforcommandlinepythonandr
AT jeevannavaraditya portableblastlikealgorithmlibraryanditsimplementationsforcommandlinepythonandr
AT juliantimothyr portableblastlikealgorithmlibraryanditsimplementationsforcommandlinepythonandr
AT tamminenmanu portableblastlikealgorithmlibraryanditsimplementationsforcommandlinepythonandr