LogoMat-M, or how I started to hate source code and opted for precompiled binaries

LogoMat-M and its uses
I have recently struggled to install a bioinformatics program called LogoMat-M. LogoMat-M is a command line based program that creates visual representations of HMM-profiles. An excellent example of the program in action can be viewed at Sanger’s LogoMat-M website. It creates images that looks a bit like this:

The resulting images make it easy to interpret how common a given amino acid is at each position of a sequence alignment, where the alignment usually represent a protein family. So far, so good.

The problem is that the web service was not designed to work with large amounts of sequences, and thus returns nada when such sequence alignments are used. To solve this problem, I thought I would try to install the program locally, on my own computer, at least to receive a proper error message. This was a big mistake.

The “install” process
I started by downloading the LogoMat-M package (i.e. the source code – this is open source software, which often means that there are no pre-compiled binaries). However, the build files for the program complained that my computer missed certain libraries and programs required for the LogoMat software to compile. Well, alright, I went out to find the pieces of missing software. Quite fast I could track down the two missing components and download these. Once again, these were open source programs – meaning no pre-compiled binaries. I tried to compile the first of those and rapidly got the answer that a component called PDL was required and could be obtained via a service called cpan.

I started to get a bit frustrated, since I didn’t want to spend the whole day installing software – I wanted to construct images like the one above. However, I did as the instructions said and text started flashing down my screen. Suddenly, cpan exited and said “Could not compile. Compiler returned bad status.” Wow. How informative! How do you expect me to know what caused that?! So, now I was stuck. I could not compile LogoMat because I was missing another program that was required, and I couldn’t install that program because I lacked a component that wasn’t, for some unknown reason, able to compile.

Now, the big problem here is that there is no way for me to get around this, because the documentation does not mention this kind of situation. I could, of course, contact the developers, but I was on a tight time schedule, and needed this to work. It was possible, if not likely, that it would take days for the developers (who do not get paid for this software, i.e. there is no official support channel) to sort out my problem.

Again, a mentality problem
Many times, open source software is praised for being open, but what people tend to forget is that a lot of this software is not at all easy to use. Or, in this case, even install. On Windows or Mac OS X, I would have fired up an installer, which would have installed a working pre-compiled binary on my system, with all its required libraries. It would work out-of-the-box. And if it didn’t, there would be someone to call.

Now, I don’t want to call for open source developers to set up call centres for supporting their programs, that would just be ridiculous. But I beg you to please make pre-compiled, working versions, including required libraries, and supply these for at least the most common platforms. Depending on the kind of software, that could be Windows, Mac OS X, Ubuntu and Red Hat Linux, for example. Don’t bother with pre-compiled software for strange and uncommon architecture, people running these things probably know how to compile their software anyway. But please, supply some easy to use, pre-compiled program for the rest of us. Because otherwise we will never be able to get our work done using open source alternatives, and that does not benefit either our work or the open source community in general. The situation described above only benefit big corporations selling overpriced software. And that is really, really sad.

Advertisements

5 responses to “LogoMat-M, or how I started to hate source code and opted for precompiled binaries

  1. I agree that, in an ideal world, open source software should be made easy to compile and install.

    You’re pointing at a false dichotomy however. It’s not between “unsupported open source software” and “well supported closed source software”. It’s between “unsupported open source software” and nothing. Making software easy to use and install is a lot of hard work, both for open and closed projects alike. An open source project might release an early developer prototype, that hasn’t yet seen all the necessary polishing. The mantra is: release early, release often. Of course that does no good to end users, it is aimed at attracting other open source developers. And yes, that leads to less than user-friendly software. But if the project were closed, the only alternative would be no released software at all, because for both types of project the same amount of polishing work is needed. In the open model, at least you stand a chance of using the software if you’re technically inclined. In the closed model, all you can do is wait for the release.

    • First of all, unsupported software is better than nothing (though I could imagine situations where an unexperienced user would have been better off NOT using unsupported software). I know from my own limited programming experiences that making easy-to-use software is terribly hard, and most of all, time consuming. Also, I know that time is money, and that (especially in research) you can’t have people running around making detailed manuals of stuff. This feeds a “read the technical article – learn to read C source code” mentality, not because people want it this way, but because of the economic constraints on the community doing the software development.

      The “release early – release often” mantra is good for the development itself, but as you say, it does not benefit the end users. Now, given that I have learned Perl, Java, etc., and that I regularly use Linux through the command line, why can’t I get this piece of software to install? I totally understand if only a 20 line description of a certain program accompanies it, but the hysteria about compiling the code yourself sometimes creates software that is impossible to use at all (e.g. because of compilation errors, as described in the article). And in that case, useless lines of code is not better than no software at all.

      I do not expect all code to be well-supported. Especially not open source code. And I don’t require anyone to have huge documentation to their software. But what I really would like to see is pre-compiled binaries of the software for some common platforms, such as is done with HMMER (http://hmmer.janelia.org/#download). Then I would happily be able to install the LogoMat-M package, with or without documentation. And for me personally, that would be a huge step towards an ideal world.

      • Then again, I realise that even this (compiling for more than one platform) is a big effort for many developers who are tight on either time, money or equipment. I would like to say “sorry for my tone in this article” to those of you that felt hit by it, and a huge “thank you” to those who already supply pre-compiled binaries in addition to the source code.

  2. Pingback: HMMER3 released – with a pre-compiled binary! « The Lacunae

  3. It wasn’t much more fun building this for the public Sanger website. At least it was *after* the migration from Tru64.

    Funnily enough I’m building PDL right now…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s