Beginning Perl for Bioinformatics
![Medium Thumbnail](http://images.amazon.com/images/P/0596000804.01.MZZZZZZZ.jpg)
Book Details
Availability: Usually ships in 24 hoursList Price: $39.95
Our Price: $26.37
You Save: $13.58 (34%)
![Buy through Amazon.com](/images/buyamazon.gif)
Spotlight Customer Reviews
Average Customer Rating: 4.44Customer Rating: 5
Summary: Good Start
Comment: I am a biologist who has written 'Hello World' in innumerable programing languages and progressed no further. No matter how many different books I buy and put on my shelf I still haven't learned to program. After removing this book from the Perl section of my shelf and spending two days with it I wrote a script that turns an amino acid sequence into a degenerate oligo (DNA) and prints its reverse compliment. Certainly not bioinformatics but I impressed myself. This was because simple things that any programmer would know, but I do not, are explained in detail. Thank you. Thank you. Thank you.
Because of this book I am confident that I will now be able to do many of the simple sequence manipulations my current projects require. However and but. A cusory glance at the innards of 'Programming Perl' is enough to show just how much more their is to Perl.
The title is not misleading but it could have been 'Beginning Perl for Beginning Bioinformatics'. Ain't no Hidden Markov models here.
Five stars this time but next time their better be MORE in the same style.
Customer Rating: 5
Summary: Very timely introduction to PERL
Comment: Finally someone has written a beginning book on PERL for biologists, and has also done an excellent job of doing so. This book assumes no prior programming experience, and therefore suits the biologist who needs to concentrate on using computers to solve biological problems, and not have to become a computer scientist in the process. PERL can be a very cryptic language, but it is also extremely concise, and PERL programmers frequently and rightfully boast about their "one-liners" that accomplish complicated tasks with only one line of code.
Since it is addressed to readers with no programming experience, the author introduces some elementary concepts of programming in the first three chapters. These include what text editor to use, how to install PERL, how run PERL programs, and other relevant elementary topics.
The author then gets down to writing a program to store a DNA sequence in chapter 4. Very basic, it merely reads in a string and prints it out, but serves to start readers on their way to developing more useful programs. Later a program for the transcription of DNA to RNA is given, which illustrates nicely the binding, substitution and trace operators. Block diagrams are used here, and throughout the book, to illustrate basic PERL operators. The author shows in detail how to read protein sequence data from a file and how to use it in a PERL program. The reader is also introduced to the most ubiquitous data structure in all of computing: the array. Already the reader gets a taste of the power of PERL to manipulate arrays, using operations such as 'unshift', 'push', 'splice', etc.
The next chapter introduces conditional statements in PERL, as a warm-up for the discussion on finding motifs in sequences. The reader can see why PERL is the language of choice in bioinformatics, with its ability to find substrings or patterns in strings. Things do become more cryptic in the discussion of regular expressions, but the reader can get through it with some effort. Interesting programs are given for determining the frequency of nucleotides.
Since the programs have become more complicated to this point, a discussion of subroutines follows in the next chapter. And, for the same reason, the reader is introduced to debugging in PERL in this chapter also. The greater the complexity of the program, the harder it becomes to avoid making mistakes, and even more difficult to find them. The very important concepts of pass by value versus pass be reference are discussed briefly in this chapter.
Random number generators, so important in any consideration of mutations, are discussed in chapter 7. It is shown, via some straightforward programs, how to select a random location in DNA and mutate it with some other nucleotide. In addition, the author shows how to use random numbers to generate DNA sequences and mutate them in order to study the effect of mutations over time.
The next chapter is the most interesting in the book, for it shows how PERL can be used to simulate how the genetic code directs the translation of DNA into protein, the hash data structure being used extensively for this purpose. The author shows how to read DNA from files in FASTA format, and discusses in detail reading frames. He gives a useful subroutine to translate reading frames.
The author returns to regular expressions in chapter 9, wherein they are used as 'wildcards' to search for a particular string in a collection of strings. In addition, the range operator is used to find restriction sites. Regular expressions are also used in the next chapter to manipulate GenBank 'flat files'. The author does however give URLs for more sophisticated bioinformatics software. This is followed in chapter 11 by a discussion of the use of PERL to work with files in the Protein Data Bank. Recursion, one of the most powerful techniques in programming, is introduced here.
Chapter 12 covers the Basic Local Alignment Search Tool (BLAST), wherein readers get a taste of the field of computational biology. This extremely popular software package is used to find similarity between a given sequence and a library of known sequences. The author does discuss some of the basic rudiments of string matching and homology, and encourages the reader to consult the BLAST documentation for further details. In addition, the author briefly discusses the Bioperl project in this chapter, and shows the reader how to run some elementary computations using it.
This book definitely is a timely one and it will serve the needs of biologists who need to obtain some programming expertise in PERL. There are helpful exercises at the end of each chapter that serve to solidify the understanding of the concepts introduced in the chapter. After a thorough study of it, readers will be well-equipped to use PERL in bioinformatics. With more mathematical background, readers after finishing it will be able to enter the exciting field of computational biology, a field that is exploding, and one in which will require imaginative programming skill in the future.
Customer Rating: 3
Summary: OK tutorial. Poor reference.
Comment: I have used this book in a beginning Perl programming course for biology majors. While it is good if you sift through it from start to the end, I often found it impossible to find things when I needed to go back to remind myself of something. The index does not help, and there is no concise language reference anywhere.
Also, I do not like the fact that it uses "quick and dirty" Perl (no "use strict" pragma). While it might be less confusing to skip it at the very beginning, very soon students start to waste too much precious class time trying to locate bugs that would make the program not compile with "use strict" in the first place (e.g. mistyped variable names).