Chris Lasher and Titus Brown recently posted on bioinformatics in python, briefly igniting the same old discussion on the biology-in-python list. The usual questions and concerns: "why is Perl 'winning' in bioinformatics", "why don't people like / use / contribute to BioPython", "let's make a new BioPython, I'm sure it will work better this time!"...

Oi.

I find this all so odd, because from my perspective, the state of bioinformatics in Python has never been stronger. As Titus pointed out, there are a variety of libraries and projects being actively developed (I'll throw bx-python into the mix). Many of these projects are widely used, and I find that awareness of Python in the bioinformatics community has greatly increased in the last few years. Yes, this community does not look like BioPerl -- and that is healthy!

The BioPerl model of a monolithic library for every bioinformatics application is fundamentally flawed. Anyone who has ever tried using one of the more esoteric parsers or program interfaces included in BioPerl has likely encountered problems, because so many of those components were one-off implementations for a very specific application. However fixing these components is difficult because everything is so tightly coupled and too many existing projects depend on the broken behavior. Perhaps with extremely rigorous quality monitoring such a project could ensure that only truly reusable and well tested components are included, but for a project with such a large scope, run by working scientists whose primary focus is on their research, this just isn't feasible.

So the suggestion that we should create a B-I-P project and start posting code seems way off base. Do we really want to reinvent BioPerl? There is a reason why after discussions at SciPy 2007 the consensus opinion was to focus on building community rather than code. A community of independently maintained focused projects that do a few things very well is much more scalable than trying to coordinate one big project that does everything. Perhaps the best thing the community could do would be to promote some common interfaces to make working with multiple project easier, but honestly, creating adapters in a language like Python is so trivial that even this isn't a huge issue.

So keep it up python bioinformatics project developers! Yes, even you BioPython. While I wish you were more pythonic, sometimes you have just the module I need...