An Introduction to Bioinformatics Algorithms (Hardcover)

Neil C. Jones, Pavel A. Pevzner





This introductory text offers a clear exposition of the algorithmic principles driving advances in bioinformatics. Accessible to students in both biology and computer science, it strikes a unique balance between rigorous mathematics and practical techniques, emphasizing the ideas underlying algorithms rather than offering a collection of apparently unrelated problems.

The book introduces biological and algorithmic ideas together, linking issues in computer science to biology and thus capturing the interest of students in both subjects. It demonstrates that relatively few design techniques can be used to solve a large number of practical problems in biology, and presents this material intuitively.

An Introduction to Bioinformatics Algorithms is one of the first books on bioinformatics that can be used by students at an undergraduate level. It includes a dual table of contents, organized by algorithmic idea and biological idea; discussions of biologically relevant problems, including a detailed problem formulation and one or more solutions for each; and brief biographical sketches of leading figures in the field. These interesting vignettes offer students a glimpse of the inspirations and motivations for real work in bioinformatics, making the concepts presented in the text more concrete and the techniques more approachable.

PowerPoint presentations, practical bioinformatics problems, sample code, diagrams, demonstrations, and other materials can be found at

Neil C. Jones is a Ph.D. candidate in the Department of Computer Science and Engineering at the University of California, San Diego.

Pavel Pevzner is Ronald R. Taylor Professor of Computer Science at the University of California, San Diego. He is the author of Computational Molecular Biology: An Algorithmic Approach (MIT Press, 2000) .


Table of Contents:

Preface xv
1 Introduction 1
2 Algorithms and Complexity 7
3 Molecular Biology Primer 57
4 Exhaustive Search 83
5 Greedy Algorithms 125
6 Dynamic Programming Algorithms 147
7 Divide-and-Conquer Algorithms 227
8 Graph Algorithms 247
9 Combinatorial Pattern Matching 311
10 Clustering and Trees 339
11 Hidden Markov Models 387
12 Randomized Algorithms 409
Using Bioinformatics Tools 419
Bibliography 421
Index 429