Bioinformatics Zen FAQ

February 12th, 2008

I guess one of the golden rules of blogging is write about what people are interested in. Here’s the most common questions I get emailed, and my answers to them.

Can you give me a Bioinformatics PhD studentship? Can you find me a Bioinformatics PhD?
Sorry, no. I’m a PhD student myself and so I have neither the position, experience, or money to offer you one. I’m sorry but I also can’t arrange a PhD for you. I’m more than happy to answer any emails when someone takes the time to write a thoughtful correspondence, but I’m not a bioinformatics careers service.

How can I find a PhD?
I can only give my opinion, but I think one universal piece of advice is to take a little time when applying to supervisors rather than spamming every bioinformatics researcher you can find. When I say spamming I mean writing a generic cover letter and CV, then sending these to everyone with a webpage in the hope that you get lucky. I think this is bad because in the first instance supervisors know when someone has sent them a CV on the off-chance of an offer. Secondly, do you want to spend three failure-littered years working on something you’re not really interested in?

A better approach, after you’ve found all the projects you can, spend some time reading the descriptions, narrow the list down to the ones that really excite you. Read the last 2-3 papers that the supervisor wrote, and if you still want to do the PhD, write to the PI telling them what excites you about their research. Even better pick up the phone and give them a call. You could also email the supervisor, and ask if you can phone to talk about the project further. If you come across as a bright young researcher with a lot to offer, you’ll definitely get their interest.

Should I do a Master’s degree in Bioinformatics?
This depends on how you feel, but for me I’m glad I did a Masters. A year long course gave me a chance to learn programming, statistics and other bioinformatics foundations. The 4-6 month research project also gave me an idea of whether or not I wanted to do a PhD. Of course plenty of researchers are very successful in bioinformatics without ever having done a masters. Whatever your decision, do a Masters or go straight into PhD, I really recommend spending some time to learn programming before hand. If you’re not already familiar. Doing an evening class or getting a good text book and practising at home will really help when you start on your research project.

Which programming language should I use?
A simple answer would be Python. This language has become more and more popular in bioinformatics, and so will have an increasing biolibrary base, as well as a growing Python bioinformatics community. I use Ruby, so it’s hard for me to write this, but I’ve heard that Python is also one of the easiest and simple programming languages to learn. What makes a language simple and easy? Well it reduces the options for the programmer to create bugs, and makes the code easier to understand. However, as I said, that was the simple answer. For instance, if you are about to start a Master’s degree, it would be a better idea to learn the language taught on the course. Another consideration is the language used by your colleages, if you start using Python but everyone else is using Perl, then there’ll be little opportunity to get help or advice.

As far as I have seen, there are four main languages used in bioinformatics. Java and Perl are by far the most widely used, and this will most likely be the case for the foreseeable future, as most Masters courses are teaching these. Perl has a huge set of libraries for bioinformatics, and Java is popular for building applications with graphical user interfaces. Ruby and Python are getting attention because, as I mentioned, they are good for producing code that is easy to write, and easy to read which is great for programmer. There’s also R which is great for statistics, but I wouldn’t use it for everyday scripting.

So here’s my answers to the most common questions I get asked, if you’ve got a different opinion or something to add, please let me know in the comments.

10 responses

  1. Animesh Sharma comments:

    Now I know why you did not respond to my mail :)

  2. Dan Swan comments:

    On ‘How can I find a PhD?’

    First of all I have to agree with the comment about spam. As someone who has just spent many hours wading through CVs for a number of posts it’s very easy to tell when a generic cover email/letter has been used. This is not a good strategy. Enquiries to anyone, whether for PhD or job should be personalised.

    Secondly, email approaches will often get filed to /dev/null. I know it’s hard if you’re applying to somewhere in a foreign country but the slew of email requests for projects, placements, jobs that I get have only one place to go, and that is the bin. If there’s a job there, or a studentship it WILL be advertised - use the appropriate channels to find these and focus on tailoring your covering letter and CV to them.

    However I would like to take offence at ‘give them a call”! Unsolicited emails are one thing, unsolicited phone calls something completely different. Please make a traditional approach (letter, email) first and politely request to place a call *at the PI’s convenience* if you think there are questions you feel would be answered (or you feel you can make a stronger case) over the phone.

  3. Mike comments:

    Hi Dan,

    I take your point about unsolicited telephone calls, senior researchers are very busy - emails are a distraction and telephone calls are worse. I see how it is rather irresponsible for me to advise prospective candidates to start cold calling everybody.

    However I would like to say, from my perspective as someone looking for a PhD not too many years ago, that it is quite difficult. As you say, many people spam researchers, so it’s easy to get lost in this deluge. The spam is of course annoying for people when their inbox is filled up, but also rather frustrating for students who are genuinely interested in a particular research project but they aren’t getting any response.

    I’ve updated the post, to try and be more balanced.

  4. Ben Keller comments:

    You make the point that you need to find the right advisor (or at least the advisor doing the right work). One way to do this is to look at the literature in the areas that enthrall you and find out more about the research of the people working in that area. Not only will that focus your search, but it gives you a bit of a ticket when you write that first email.

    Another way to get a ticket is to work on building social networks. This may be possible by going to regional conferences and taking advantage of social events, or poster sessions. Some universities will even pay for students to go to meetings to present. When networking the point is not to “get the job”, but to make contacts who might help you get your foot in the door. It would probably be worthwhile finding out if your campus has coaching for such things — might be in the business school.

  5. Anton comments:

    I don’t understand the part about doing the Master’s degree, since when can you even apply for a PhD program without having a Master’s first?

    Regarding programming languages, Java and Perl are good but instead of learning programming languages, instead it is better to learn how to program in general. I.e. a bioinformatics student should learn object-oriented programming, functional programming, understand when to use scripting languages like Perl/Python and when not to, etc. This is far better than learning individual programming languages. Say if you know about imperative programming, and know a few real programming languages like C++ and Java and have a proper background in c.s., you can pick up Python/Perl in no time. Or any other programming language your task requires. That’s far better for your career than saying “sorry I can’t do the project because I don’t to Prolog, I only do Java & Perl”.

  6. Ryan comments:

    I finished my PhD in bioinformatics almost 1 1/2 yrs ago and I’m still searching for a job. I have a great C.S. background as a programmer in industry where I think I should have stayed sometimes.

    In bioinformatics, the job market is not as large and you really need to have a strong research background ie publications. So, make sure you publish or else your PhD is worthless.

    Who cares about the languages so much. While they are important, I think the publications is more important. Learning the languages is easy.

  7. Ignasi comments:

    @Anton

    You’re right about the Master’s as requirement. I’m on that. Doing a Masters and wondering if I should a PhD. And as Mike pointed, the thesis of the master will be a good tests set of what a PhD may represent.
    And about the programming, I totally agree. It’s not a matter of the language but of the algorithmics, the how to design the solution of a problem. Then to start with, I’d recommend C, pure C. It’s where you learn how to manage your memory because you’re really aware of that all the time. That will save you troubles when using the easy going Perl and others. Then for scripting, now that I’m getting into Python, I like it for thr OO programming approach. But sometimes is so readable that it’s too opaque. For easy text parsing and simple sequence handling I’d totally be into Perl.

    By the way! I’m actually looking for a lab -abroad, I’m from Barcelona- to do the project and I am in this situation of having to contact. But more of the very selective use of the contacting procedure. I’ll do it once, I’ll play it at one card :).

    Cheers.

  8. Chris Lasher comments:

    On “Where can I get a PhD?”: I think it’s worth mentioning that Bioinformatics.org does its best to maintain a listing of universities and institutes that offer degrees in bioinformatics, from undergrad through PhD.
    http://wiki.bioinformatics.org/Bioinformatics_FAQ#Education:_Where_can_I_study_bioinformatics.3F

    On “What language should I learn?”: Learning a very high level language like Python encourages learning to program well. As a multi-paradigm programming language, Python makes a good entry point for the beginning programmer. Python philosophy centers on clarity and readability in the code, as well, and the language makes writing obfuscated code difficult, whereas other languages posit a challenge in writing code clearly.

    For these reasons, Prof. Greg Wilson selected Python as the programming language of instruction for Software Carpentry (http://swc.scipy.org/). On a related note, SWC does not teach Python, it teaches scientists and engineers good software development techniques. The meta-programming practices covered in its material provide more benefit for one’s future than learning any programming language. I would urge one to learn and exercise good habits like using revision control, debugging with symbolic debuggers instead of print statements, and implementing unit tests. These will carry you furthest.

  9. Paul comments:

    Regarding programming languages: there was a BMC Bioinformatics article “A comparison of common programming languages used in bioinformatics”:
    http://www.biomedcentral.com/1471-2105/9/82/abstract

  10. Julia comments:

    I’m looking at a foreign (spin) masters in bioinformatics. Do you think that in the industry (USA), this would be looked down upon?

Leave a comment