Despite its narrow subject area (bioinformatics), this is an easy to read book. Not only does it add humor here and there, but it also lets the brain enjoy unexpected connections. It is written in a very clear style, uses short sentences, and its ideas are presented in a logical way. As with any good textbook, examples abound.
The book starts with a small introduction to the biological applications for which the basic local alignment search tool (BLAST) is now used, including a discussion of genes, the genetic code, exons and introns, evolution, mutations, and homology. It then increases its pace, to a discussion of what global alignments are, and to a short introduction to the Needleman-Wunsch and Smith-Waterman algorithms.
Next, the authors walk us through the fields of information theory and statistics, used to detect sequence similarity, including scoring matrices, percent accepted mutations (PAM), BLOSSUM, relative entropy, Karlin-Altschul formula, gapped alignments, and probability versus expectation. Whenever the case arises, like good scientists, the authors expose problems that are waiting to be completely resolved. (One would be the alignment of short exons and introns, which produces many false positives.)
When necessary, the book becomes full of details, covering the history of theoretical approaches, percent accepted mutation matrices, or providing a dry, exhaustive description of nucleotide scoring scheme tables and full-length command-like syntax.
As everybody knows by now, there is no perfect software, and users will always complain abut what the output is, and how it is presented. The authors clear up some of the confusing aspects of BLAST. I particularly liked their explanations of how and why alignments are sometimes grouped to increase statistical significance; the use of the effective length of the query and database, rather than the actual length; the use of multiple measures for the statistical significance (for groups); the differences between different flavors of BLAST (NCBI-BLAS and WU-BLAST); and how to design experiments using Karlin-Altschul statistics.
It is worth mentioning that one can find many useful (but older) Perl code snippets here. The code can be also easily downloaded from the book’s Web page, or the book’s examples Web page: http://examples.oreilly.com/blast/.
In conclusion, this really is “an excellent book for both people approaching bioinformatics and for students and professionals who want to get more from BLAST.”