A systematic approach to dynamic programming in bioinformatics.
BACKGROUND
Dynamic programming is probably the most popular programming method in bioinformatics. Sequence comparison, gene recognition, RNA structure prediction and hundreds of other problems are solved by ever new variants of dynamic programming. Currently, the development of a successful dynamic programming algorithm is a matter of experience, talent and luck. The typical matrix recurrence relations that make up a dynamic programming algorithm are intricate to construct, and difficult to implement reliably. No general problem independent guidance is available.


RESULTS
This article introduces a systematic method for constructing dynamic programming solutions to problems in biosequence analysis. By a conceptual splitting of the algorithm into a recognition and an evaluation phase, algorithm development is simplified considerably, and correct recurrences can be derived systematically. Without additional effort, the method produces an early, executable prototype expressed in a functional programming language. The method is quite generally applicable, and, while programming effort decreases, no overhead in terms of ultimate program efficiency is incurred.
Giegerich
R
R
Faculty of Technology, Bielefeld University, 33615 Bielefeld, Germany. robert@techfak.uni-bielefeld.de
D000465:Algorithms; D019295:Computational Biology; D016415:Sequence Alignment / Q000379:methods*; D012984:Software