[BioEdu] BioEdu Digest, Vol 10, Issue 5

Michael Sadowski mockeldritch at yahoo.com
Mon Jun 30 08:11:15 EDT 2008


Dear Erwin, 

Here are some thoughts on the subject I've had after spending a while in bioinformatics and working with people from both sides ("users" and "developers")

The specific language is more-or-less irrelevant assuming it's a reasonably common choice: Java and PERL are fine to start with. Maybe worth learning C as well if you ever need speed and efficiency or for some reason to edit someone else's code. 

The point is to understand *how* to implement an algorithm in a given language. But only if you really need to (assuming that you follow Jeff Bizzaro's advice and don't restrict yourself to being only a "user", which is probably the only way if you want to be a card-carrying bioinformatician) 

To that end I recommend going through some popular algorithms and implementing them yourself. e.g. DP for sequence alignment, some statistical algorithms like clustering methods, a few tree generation methods and maybe a few reasonably generic algorithms such as some hashing, sorting etc. 

Plus anything that interests you of course, but definitely try at least dynamic programming since it sits at the heart of most bioinformatics applications and understanding it helps enormously (having your own implementation to throw at arbitrary problems doesn't hurt either)

The book "Biological Sequence Analysis" (Durbin, Eddy, Krogh & Mitchison) gives you pseudocode for many relevant algorithms plus some useful discussion. 
Of course there are many other possible sources. 

This is a bit of a "classical bioinformatics" view though - the comments made by Fitri Amelia are also relevant and may direct which algorithms are most important. e.g. if you're interested in structure I recommend really getting to grips with structural superposition and calculating RMSD, TM-score, GDT-TS , structural alignment, methods for predicting secondary structure etc. 

Not necessarily to the point of making your own modern implementation of the above but I feel that making a basic method and tweaking it can teach you much more than reading any number of books. 

I hope this is of some use. 

Sid. 

> > Hi, my name is Erwin. I would like to know where I can
> learn some good
> > programming skills for bioinformatics. I have an M.Sc.
> degree in
> > bioinformatics, and I learned some Perl and Java in my
> graduate study, but
> > I don?t feel that I have the ability to be a good
> bioinformatician yet. I
> > came from chemistry background and I did not use any
> programming in my
> > graduate thesis.
> >
> > I?d like to pursue a Ph.D. study but I notice that
> most (or all) of the
> > Ph.D. opportunities in bioinformatics require either
> ?a strong programming
> > background? or ?experience in software development?,
> which I have none.
> > Now I would like to improve my programming skills
> before applying for a
> > Ph.D. studentship. Do you have any recommendations on
> what kind of
> > education I should take to do that? Your answers will
> be much appreciated.
> > Thank you.
> >
> > Yours,
> > Erwin
> >
> >
> >     






      __________________________________________________________
Not happy with your email address?.
Get the one you really want - millions of new email addresses available now at Yahoo! http://uk.docs.yahoo.com/ymail/new.html



More information about the BioEdu mailing list