Center of Biotechnology and Faculty of Technology, Bielefeld University, 33615 Bielefeld, Germany.
Bioinformatics. 2013 Mar 1;29(5):551-60. doi: 10.1093/bioinformatics/btt022. Epub 2013 Jan 25.
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.
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.
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.
动态规划在生物信息学中无处不在。开发和实现非平凡的动态规划算法往往容易出错且繁琐。Bellman 的 GAP 是一种新的编程系统,旨在简化基于动态编程技术的生物信息学工具的开发。
在 Bellman 的 GAP 中,通过树语法、求值代数及其形成的积,以声明式风格描述动态规划算法。这绕过了显式动态规划递归的设计,生成了无下标错误、模块化且易于修改的程序。声明式模块被编译成 C++代码,其性能可与精心手工实现相媲美。本文介绍了 Bellman 的 GAP 系统及其语言 GAP-L。然后,通过创建两个常见生物信息学算法的变体,展示了开发的简便性和重用程度。最后,将 Bellman 的 GAP 作为“真实世界”生物信息学工具的实现平台进行了评估。
Bellman 的 GAP 可在 GPL 许可证下从 http://bibiserv.cebitec.uni-bielefeld.de/bellmansgap 获得。该网站包括一个基于热力学的 RNA 折叠的可重用模块库。