Cargando…

Bellman’s GAP—a language and compiler for dynamic programming in sequence analysis

Motivation: Dynamic programming is ubiquitous in bioinformatics. Developing and implementing non-trivial dynamic programming algorithms is often error prone and tedious. Bellman’s GAP is a new programming system, designed to ease the development of bioinformatics tools based on the dynamic programmi...

Descripción completa

Detalles Bibliográficos
Autores principales: Sauthoff, Georg, Möhl, Mathias, Janssen, Stefan, Giegerich, Robert
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Oxford University Press 2013
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3582264/
https://www.ncbi.nlm.nih.gov/pubmed/23355290
http://dx.doi.org/10.1093/bioinformatics/btt022
_version_ 1782260550753845248
author Sauthoff, Georg
Möhl, Mathias
Janssen, Stefan
Giegerich, Robert
author_facet Sauthoff, Georg
Möhl, Mathias
Janssen, Stefan
Giegerich, Robert
author_sort Sauthoff, Georg
collection PubMed
description Motivation: Dynamic programming is ubiquitous in bioinformatics. Developing and implementing non-trivial dynamic programming algorithms is often error prone and tedious. Bellman’s GAP is a new programming system, designed to ease the development of bioinformatics tools based on the dynamic programming technique. Results: In Bellman’s GAP, dynamic programming algorithms are described in a declarative style by tree grammars, evaluation algebras and products formed thereof. This bypasses the design of explicit dynamic programming recurrences and yields programs that are free of subscript errors, modular and easy to modify. The declarative modules are compiled into C++ code that is competitive to carefully hand-crafted implementations. This article introduces the Bellman’s GAP system and its language, GAP-L. It then demonstrates the ease of development and the degree of re-use by creating variants of two common bioinformatics algorithms. Finally, it evaluates Bellman’s GAP as an implementation platform of ‘real-world’ bioinformatics tools. Availability: Bellman’s GAP is available under GPL license from http://bibiserv.cebitec.uni-bielefeld.de/bellmansgap. This Web site includes a repository of re-usable modules for RNA folding based on thermodynamics. Contact: robert@techfak.uni-bielefeld.de Supplementary information: Supplementary data are available at Bioinformatics online
format Online
Article
Text
id pubmed-3582264
institution National Center for Biotechnology Information
language English
publishDate 2013
publisher Oxford University Press
record_format MEDLINE/PubMed
spelling pubmed-35822642013-02-26 Bellman’s GAP—a language and compiler for dynamic programming in sequence analysis Sauthoff, Georg Möhl, Mathias Janssen, Stefan Giegerich, Robert Bioinformatics Original Papers Motivation: Dynamic programming is ubiquitous in bioinformatics. Developing and implementing non-trivial dynamic programming algorithms is often error prone and tedious. Bellman’s GAP is a new programming system, designed to ease the development of bioinformatics tools based on the dynamic programming technique. Results: In Bellman’s GAP, dynamic programming algorithms are described in a declarative style by tree grammars, evaluation algebras and products formed thereof. This bypasses the design of explicit dynamic programming recurrences and yields programs that are free of subscript errors, modular and easy to modify. The declarative modules are compiled into C++ code that is competitive to carefully hand-crafted implementations. This article introduces the Bellman’s GAP system and its language, GAP-L. It then demonstrates the ease of development and the degree of re-use by creating variants of two common bioinformatics algorithms. Finally, it evaluates Bellman’s GAP as an implementation platform of ‘real-world’ bioinformatics tools. Availability: Bellman’s GAP is available under GPL license from http://bibiserv.cebitec.uni-bielefeld.de/bellmansgap. This Web site includes a repository of re-usable modules for RNA folding based on thermodynamics. Contact: robert@techfak.uni-bielefeld.de Supplementary information: Supplementary data are available at Bioinformatics online Oxford University Press 2013-03-01 2013-01-25 /pmc/articles/PMC3582264/ /pubmed/23355290 http://dx.doi.org/10.1093/bioinformatics/btt022 Text en © The Author 2013. Published by Oxford University Press. http://creativecommons.org/licenses/by/3.0/ This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/3.0/), which permits unrestricted reuse, distribution, and reproduction in any medium, provided the original work is properly cited.
spellingShingle Original Papers
Sauthoff, Georg
Möhl, Mathias
Janssen, Stefan
Giegerich, Robert
Bellman’s GAP—a language and compiler for dynamic programming in sequence analysis
title Bellman’s GAP—a language and compiler for dynamic programming in sequence analysis
title_full Bellman’s GAP—a language and compiler for dynamic programming in sequence analysis
title_fullStr Bellman’s GAP—a language and compiler for dynamic programming in sequence analysis
title_full_unstemmed Bellman’s GAP—a language and compiler for dynamic programming in sequence analysis
title_short Bellman’s GAP—a language and compiler for dynamic programming in sequence analysis
title_sort bellman’s gap—a language and compiler for dynamic programming in sequence analysis
topic Original Papers
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3582264/
https://www.ncbi.nlm.nih.gov/pubmed/23355290
http://dx.doi.org/10.1093/bioinformatics/btt022
work_keys_str_mv AT sauthoffgeorg bellmansgapalanguageandcompilerfordynamicprogramminginsequenceanalysis
AT mohlmathias bellmansgapalanguageandcompilerfordynamicprogramminginsequenceanalysis
AT janssenstefan bellmansgapalanguageandcompilerfordynamicprogramminginsequenceanalysis
AT giegerichrobert bellmansgapalanguageandcompilerfordynamicprogramminginsequenceanalysis