Cargando…

Versatile and declarative dynamic programming using pair algebras

BACKGROUND: Dynamic programming is a widely used programming technique in bioinformatics. In sharp contrast to the simplicity of textbook examples, implementing a dynamic programming algorithm for a novel and non-trivial application is a tedious and error prone task. The algebraic dynamic programmin...

Descripción completa

Detalles Bibliográficos
Autores principales: Steffen, Peter, Giegerich, Robert
Formato: Texto
Lenguaje:English
Publicado: BioMed Central 2005
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1261154/
https://www.ncbi.nlm.nih.gov/pubmed/16156887
http://dx.doi.org/10.1186/1471-2105-6-224
_version_ 1782125860827955200
author Steffen, Peter
Giegerich, Robert
author_facet Steffen, Peter
Giegerich, Robert
author_sort Steffen, Peter
collection PubMed
description BACKGROUND: Dynamic programming is a widely used programming technique in bioinformatics. In sharp contrast to the simplicity of textbook examples, implementing a dynamic programming algorithm for a novel and non-trivial application is a tedious and error prone task. The algebraic dynamic programming approach seeks to alleviate this situation by clearly separating the dynamic programming recurrences and scoring schemes. RESULTS: Based on this programming style, we introduce a generic product operation of scoring schemes. This leads to a remarkable variety of applications, allowing us to achieve optimizations under multiple objective functions, alternative solutions and backtracing, holistic search space analysis, ambiguity checking, and more, without additional programming effort. We demonstrate the method on several applications for RNA secondary structure prediction. CONCLUSION: The product operation as introduced here adds a significant amount of flexibility to dynamic programming. It provides a versatile testbed for the development of new algorithmic ideas, which can immediately be put to practice.
format Text
id pubmed-1261154
institution National Center for Biotechnology Information
language English
publishDate 2005
publisher BioMed Central
record_format MEDLINE/PubMed
spelling pubmed-12611542005-10-22 Versatile and declarative dynamic programming using pair algebras Steffen, Peter Giegerich, Robert BMC Bioinformatics Methodology Article BACKGROUND: Dynamic programming is a widely used programming technique in bioinformatics. In sharp contrast to the simplicity of textbook examples, implementing a dynamic programming algorithm for a novel and non-trivial application is a tedious and error prone task. The algebraic dynamic programming approach seeks to alleviate this situation by clearly separating the dynamic programming recurrences and scoring schemes. RESULTS: Based on this programming style, we introduce a generic product operation of scoring schemes. This leads to a remarkable variety of applications, allowing us to achieve optimizations under multiple objective functions, alternative solutions and backtracing, holistic search space analysis, ambiguity checking, and more, without additional programming effort. We demonstrate the method on several applications for RNA secondary structure prediction. CONCLUSION: The product operation as introduced here adds a significant amount of flexibility to dynamic programming. It provides a versatile testbed for the development of new algorithmic ideas, which can immediately be put to practice. BioMed Central 2005-09-12 /pmc/articles/PMC1261154/ /pubmed/16156887 http://dx.doi.org/10.1186/1471-2105-6-224 Text en Copyright © 2005 Steffen and Giegerich; licensee BioMed Central Ltd. http://creativecommons.org/licenses/by/2.0 This is an Open Access article distributed under the terms of the Creative Commons Attribution License ( (http://creativecommons.org/licenses/by/2.0) ), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
spellingShingle Methodology Article
Steffen, Peter
Giegerich, Robert
Versatile and declarative dynamic programming using pair algebras
title Versatile and declarative dynamic programming using pair algebras
title_full Versatile and declarative dynamic programming using pair algebras
title_fullStr Versatile and declarative dynamic programming using pair algebras
title_full_unstemmed Versatile and declarative dynamic programming using pair algebras
title_short Versatile and declarative dynamic programming using pair algebras
title_sort versatile and declarative dynamic programming using pair algebras
topic Methodology Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1261154/
https://www.ncbi.nlm.nih.gov/pubmed/16156887
http://dx.doi.org/10.1186/1471-2105-6-224
work_keys_str_mv AT steffenpeter versatileanddeclarativedynamicprogrammingusingpairalgebras
AT giegerichrobert versatileanddeclarativedynamicprogrammingusingpairalgebras