I am new to Bioinformatics field. I am doing some kind of Genomics work. So I am trying to learn Perl and Unix. Can anyone suggest me from where to initiate these? Some basic books or tutorial online or some other web pages? Thanks.
I am new to Bioinformatics field. I am doing some kind of Genomics work. So I am trying to learn Perl and Unix. Can anyone suggest me from where to initiate these? Some basic books or tutorial online or some other web pages? Thanks.
Congratulations, you have chosen the right language!
see:
perldoc perl
perldoc perlintro
for an overview.
Books:
Also, after learning perl you will need to develop some BioPerl skills.
Have a look at the Unix & Perl Primer for Biologists.
The Lama book is good for Perl beginners - be sure to get the most recent (6th) edition.
Perl has changed a lot in recent years so I would avoid books that are more than a few years old. Modern Perl is a good introduction to current best practices and you can download a copy for free.
Personally, I didn't find the O'Reilly bioinformatics books all that helpful. I started with Learning Perl.
This is a great introduction to Perl:
Hi Gaurav,
Perl is a good place to start. I would recommend these two resources that are available:
Beginning Perl (Free Online Book)
Perl is a well-established programming language that has been developed through the time and effort of countless free software programmers into an immensely powerful tool that can be used on pratically every operating system in the world. Perl started out as the "Swiss army knife" of computer languages and was used primarily by system administrators, but over time it's grown into an immensely robust language used by web-developers and programmers worldwide. It's also a great way to learn programming techniques and develop your own style of coding.
Beginning Perl for Bioinformatics
Beginning Perl for Bioinformatics is designed to get you quickly over the Perl language barrier by approaching programming as an important new laboratory skill, revealing Perl programs and techniques that are immediately useful in the lab.
I hope this helps.
Most of the biologists / non-programmers have difficulty in diving into this jargon and understanding concepts. I know quite a few of them who preferred working with examples. And they particularly found the book Perl by Example by Ellie Quigley very useful . It has staggering amount of examples and every concept is introduced as such. This should be a starting book if you are new to programming as well, I believe. It has some typos (or had in the earlier version), nevertheless, it should be an excellent starter.
Sorry, but it took me a while to put together a response to your question:
:)
Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
I love perl, I learned bioinformatics using perl, and in crunch time it's what I fall back to. But my suggestion for people entering bioinformatics now: Also consider other programming languages. On the Unix side, learn to use awk and sed for any line-by-line text processing and you'll be amazingly efficient. Good luck...
NOTE: I removed my unintended flamebait. Please, we all have better things to do that engage in language wars. My intent (poorly stated) was to add a side note that Perl isn't the only option in bioinformatics. It was a perspective I hadn't seen expressed in the other comments and answers here, so I thought it might be useful to the OP. I apologize for starting this digression, and I'm hoping it ends here.
Admirable, Andrew -- since there are many many places on the web already to find the latest installment of this old flamewar. This is a Yankees-RedSox, Coke-Pepsi, Slackware-Ubuntu etc type of discussion, and I think we all agree it's counterproductive. There are so many ways to get any job done -- and I agree anyone starting out in bioinformatics should develop skills in several languages. So, thumbs up.
I prefer python over perl also and I think it is probably an easier starter language. But I do agree with Michael. After learning a few languages and coming to grips with the fundamental logic, it all comes down to personal preference. Syntax is pretty easy to pick up after a while.
Programming in python is also a better way to learn programming in general. The code is more explicit: I mean someone who understands pseudo-code can understand python. In addition, oriented object programming is a possibility you have in python and not in perl. However I would not recommend the use of biopython for dealing with big files which is nowadays a serious drawback. That was to support Andrew's advice ;-)
OO Perl has been around for a while...
http://perlmonks.org/?node=Tutorials#Object-Oriented-Programming
http://www.amazon.com/Object-Oriented-Perl-Comprehensive-Programming/dp/1884777791/ref=sr_1_1?ie=UTF8&qid=1343358250&sr=8-1&keywords=Object+Oriented+Perl
Moose is the best way to do OOP in modern Perl.
Best thing I can tell you is to actually WRITE the code instead of only reading over other people's/book's code. For a beginner, reading and understanding other people's code is completely different from actually writing the code yourself. I've noticed a lot of people would attend programming lectures and understand the material, but when it comes to writing code, they can't do it. Fundamental code logic is essential, but also learn the syntax by writing code independently.
I like this for unix-introduction: http://www.softlab.ntua.gr/facilities/documentation/unix/docs/sh.ps