Monday, August 11, 2014

Bioinformatics Algorithms - Intro

Working for a biotech company, I have many chances to interact with various programmers and with many biologists / scientists.  Recently, one of my scientist colleagues approached me for some help with Python programming.

Not content with just knowing the science aspect of our business, he was also interested in learning the programming and bioinformatics side of it.  A very commendable attitude and to this end he had stumbled across a code challenge site that claimed to be “… a platform for learning bioinformatics through problem solving”.  For those of you not familiar with these,  code challenge sites like; Project Euler, Rosalind, or Python Challenge; offer a series of problems with increasing complexity / difficulty that programmers can work through, often with time limits applied.  The first are typically relatively easy to get you warmed up, but often scale up quit quickly in terms of complexity or novel algorithmic approaches that you have to employ to solve them.  These sites are great for bragging rights among other programmers, or for forcing you to hunt down and study up on esoteric approaches.  However, almost without exception, these sites are not intended as TEACHING platforms.  Yes, you may learn a lot in getting to a point where you can complete a challenge, but the sites themselves are not typically where you would do that learning.  I would liken this to a college course where the professor has no book, does not lecture, and only assigns problems. 

Predictably, my colleague was able to complete the first few problems before running into a brick wall, hard!  When he came to me he was completely stumped and did not even have any ideas for how to move forward.  Actually, that is not completely fair.  Initially he did ask me if we could try his code on one of our development servers which he assumed (rightly) would be faster than his laptop.  Practically speaking though, this is not a scalable solution to a suboptimal algorithm.

This section of our blog narrates our journey through all of the bioinformatics problem sets he encountered.  Instead of just providing a solution though (yes, there is source code, don’t worry), we attempt to explain HOW we developed the algorithms.  Hopefully you will have fun with this and learn a little bit about bioinformatics algorithms along the way.


Welcome! 

No comments :

Post a Comment