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