Buggy bioinformatics software

As people who read my science-related posts know already, I’m not a big fan of . Recently I’ve stumbled again into similar software. Namely, I’m talking about the TIGR Multiexperiment Viewer (TMeV), a Java-based program which is often used for microarray analysis. It’s not exactly “fit for publication”, because it has reached version 4 last year, but shows some of the problems () with releasing bioinformatics software.

I use TMeV mostly because I didn’t find any other implementation of the hierarchical clustering algorithm with support trees. However, I’ve stumbled upon a very annoying bug in the most recent version. Normally I use average linkage clustering and as the distance metric I employ the Pearson’s correlation, and with gene and sample bootstrapping: with certain files this makes TMeV report errors at random during the iterations.

What a meaningful error…What you see on the left is the “error” that TMeV gives. As you can see, it is all but informative. Digging a bit, it shows that Java throws an ArrayIndexOutOfBoundsException, but I wonder how, since this happens with different data files that have nothing in common at all.

Since I don’t want to pass for someone who just whines, I contacted the MeV developers and offered to give also example files, but I’ve got no response at all. Luckily, the older version of MeV (3.1) is still around and works.

Now, I wonder how this was released in the first place: it’s not the only bug I found, the other being a scaling algorithm that would mistake the files for Affymetrix MAS5 expression values (when they have nothing in common with that). There is absolutely no mention of that in the TMeV page. At least some release notes would be helpful.

Why am I making a big fuss over this? Because this is not the first time that I’ve wasted my time working around bugs instead of using the software for what it was meant: for research. Instead, there seem to be little interest since the publication is already out. Didn’t someone tell those people that if you release some software (especially if it is widely used) you’re expected to provide at least little maintenance?

bioinformatics java publish or perish software

Dialogue & Discussion