on 26 June 2004
I think this is a really good introduction to both Perl and Bioinformatics programming. I already know several other languages, and have been meaning to pick up Perl for a while. So I thought this book might be too basic for me, but because I was new to the field of Bioinformatics, I did not find it terribly basic. I also do believe that it would be very good for someone with a biology background wanting to learn perl for bioinformatics (this is the audience the book claims to be targeting). Perl is a very powerful language, and I do think that it could be hard for programming beginner to learn. However, I think this book does a very good job of introducing several important topics in Perl gently. The best thing about it is the extremely numerous examples, which can all be downloaded from the book's website, so you don't have to waste time typing them in. This provides a great source of learning and experimenting with the code, but it also provides a platform for developing more advanced programs. You can just build new programs on top of much of the code from the book, which is very convenient, and is also what programming efficiently is all about.
There are 13 chapters in the book, and I'll give a quick summary and insight into each below:
Chapter 1 Biology and computer science: This gives a quick and gentle introduction to the goals of the field of bioinformatics, and how the two fields of biology and computer science contribute to it. It sets the context of the book.
Chapter 2 Getting started with Perl: This is a good chapter which details how to set up Perl on your computer, and get started using it.
Chapter 3 The art of programming: This chapter discusses the common approaches that people take to programming, and open source programming. Design, pseudocode, algorithms, and implementation are all discussed.
Chapter 4 Sequences and strings: This provides a dual introduction to the string variable type in Perl and basic sequence analysis in bioinformatics. The general basics of Perl are covered as well, but the focus is on working with strings (actually scalars, and also arrays), which are very important in bioinformatics.
Chapter 5 Motifs and loops: This chapter covers further topics in Perl (such as control structures (conditional stetments and loops), and searching DNA and proteins for sequences (motifs).
Chapter 6 Subroutines and bugs: This chapter covers the important topic of subroutines, or breaking your code into small, reusable chunks. This is quite important in programming. The chapter also introduces debuggin, which is also (unfortunately) a very important part of programming.
Chapter 7 Mutations and randomization: This chapter introduces the concept of mutation in bioinformatics, and how to model that with a computer, via a random number generator. It does a good job of explaining the (sort of strange) way that random number generators work, and the importance of using them correctly in order to get genuinely random numbers (which you obviously want!).
Chapter 8 The genetic code: This chapter talks more about the genetic code in terms of translating DNA into protein. It also introduces hashes, which are another important variable type in Perl. It provides some good examples, and also deals with reading files in the FASTA data format, which is commonly used.
Chapter 9 Restriction maps and regular expressions: Regular expressions were introduced and used in earlier chapters, but are covered more deeply here. It also introduces restriction enzymes and restriction maps, which are important for designing effective and efficient laboratory experiments. The chapter explains the process of developing a program for computing restriction maps, and provides some good example code.
Chapter 10 GenBank: This chapter basically covers the methods you need to go through in order to extract information from GenBank, one of the most important databanks of genetic sequence information.
Chapter 11 Protein data bank: This chapter is similar to the last, except that it deals with the Protein Data Bank instead of GenBank.
Chapter 12 BLAST: This is another specific chapter, dealing with the Basic Local Alignment Search Tool (BLAST), a pervasive tool in bioinformatics.
Chapter 13 Further Topics: Gives a cursory discussion of several "advanced" topics, like DNA computing, graphics pogramming and relational databases.
You can see from the above chapters how the book proceeds, covering both aspects of Perl and tasks in bioinformatics one step at a time, which means that it's good for beginners with any background, really. All of the chapters (except the very early ones) have lots of sample code. Obviously this book isn't intended to be the only book you own on bioinformatics or Perl. It doesn't provide a thorough discussion of either, and you will especially need another book on bioinformatics if you are new to the biological sciences. You will need a more solid reference for the Perl language, which you can get from Programming Perl, or you can use the online documentation. If you are new to programming, you would also possibly benefit from using another beginning book, like Learning Perl, but I still believe that having a targeted book like this is invaluable to the starting bioinformatician.
on 21 October 2003
I was advised to buy this book by my supervisor when I started my PhD in Bioinformatics. I had no previous programing experience and I was told that perl was the best way forward. It turned out perl was the best way forward, but not using this book. Perl is a very simple and intuitive language which a joy to work with.
This book tackles biological problems but with a poor approach. It forces you to copy down pages of code to form your first programs, and barely explains why you are doing it. What happens is that you miss out a word or spell something wrong and your program doesn't work, you get annoyed, you smash something! In contrast, the world renouned "learning perl" book teaches you why you do things and you build up your perl from a solid base. Yes this book focuses on the problem of using perl for biological problems, but that really isn't necessary. What you need is to learn the programming language, then when you are sure you know enough, you can apply it to your own problems. A solve them easily.
Buy "learning perl, O'reilly press" and then proceed to "programming perl, O'reilly press", there are far better books and will give you a solid grounding to tackle bioinformatics problems.
on 4 December 2004
I'm one of those people who should be doing something better! But since this book is good, because my copy is bent to pieces, I thought I would offer up my vote for a good read.
clear follow through, gives you coded programs - not just snipits! that don't work on there own. Lets you cut the bits out you don't need etc... up to speed fast with the little bit of code you needed. No point learning everthing perl can do! only to chop some sequences etc... otherwise you wouldn't be buying this book, you'd buy a specific perl book
fun read too, with websites you might not yet know about.
on 30 April 2008
This book beats it. At 40 years I turned my career from molecular plant biology to Bioinformatics. Obviously this book does not teach you how to do BI but with the basic biological knowledge I had and this book it really gets piece of cake. I actually started with a bit of Perl for Dummies, also good but I felt a bit lost after Chapter 7, went on with Tisdall's Beginning Perl and in half a day I ran my first scripts. It actually does explain what most things do (for instance what a filehandle is for). The clear English, the code available online all contribute to a learning BI on the fast track. It is specially the combination of text that does not go too deep, and the examples and exercises that guide you through dry material like it is all very simple, which it is of course.