It is hardly news to any scientifically literate person--especially in the computing sciences--that there is a lot of interest in the use of computers for molecular biology. The successful sequencing of the human genome during the previous decade, largely due to the improved use of computational resources, has spurred both interest in such multidisciplinary applications and imagination about what the future may hold.
This book covers some of the major algorithms currently applied in molecular biology, primarily in computing the structures of enzymes, proteins, and other biological molecules. It consists of 50 chapters (a large number for a book that has only 400-odd pages), covering some of the background in mathematics and molecular biology, as well as the algorithms the author has chosen to present. The chapters are evidently intended to follow an order to promote readability (or teachability), as evidenced by the first two chapters, “Introduction to Protein Structure and NMR” and “Basic Principles of NMR,” and even the following few, which are clearly introductory. This is also supported by the author’s preface, which indicates that the book developed from lecture notes for a two-semester course he taught titled “Algorithms in Structural Molecular Biology and Molecular Biophysics.” Even so, some later chapters appear to be somewhat independent of one another--one indication is the separate presentation of results in each chapter and the separate lists of references.
It is well beyond my competence to understand well and comment in depth on the technical material in the book, but some remarks seem appropriate. Unlike what a computer scientist would expect of a book featuring the word “algorithms” in the title, there is not a single pseudocode fragment in the book, and the algorithms are suggested in plain English and mathematical expressions only. There is also no attempt to prove the correctness, or analyze the performance, of any of the algorithms presented. Perhaps a more serious lack that would be lamented by some computer scientists is that, though molecular biology (or bioinformatics in general) is a classical application domain for high-performance computing (HPC) and HPC is sure to be involved in the implementation of many algorithms provided in the book, there is no discussion of HPC issues anywhere.
The book requires significant background in molecular biology and organic chemistry (perhaps more than the author’s casual remarks in the preface suggest); it also presumes knowledge of certain mathematical areas such as tensor calculus, which many computer scientists may not have studied. Some of the topics that computer scientists are more likely to be in command of, which are presumed by the book, include graph theory, probability theory, and linear algebra (particularly matrices). The author would have done his readers a service by indicating precisely what background is needed to study this book, and by providing a possible list of references that could provide such background.