Today I want to check out LabKey, an open source software suite which claims to be ‘the best way to manage your biomedical research data’. Its website looks promising, and so does their list of participants and funding parties. When it comes to open source, the source code is indeed downloadable, although it is quite hidden and there is also no open source repository (but that’s not an OSI requirement). The license used for the code is the flexible and widely used Apache 2.0 license.
The data model of LabKey looks quite promising (because it seems flexible and study-oriented). I couldn’t find an overview document for the whole data model / architecture, but many things become more clear when you look at the table schemas of the internal database from within an installed LabKey instance (instructions). Also, I found a PDF document which describes the way in which property values are stored in the database. It was a pleasant surprise to read that they are actually stored as RDF triples. What struck me as a bit odd is that SQL queries are used to query those triples, which is indeed very hard to do – why not switch from Postgres as underlying database to a native graph database implementation such as neo4j? In that case SPARQL could be used to query, which is much better at querying RDF data.
Anyway, I decided to give LabKey a serious try, because I am very interested in any open source software suite that would help me facilitate the biologists that want to do ‘multi-omics’ and are looking for software that can help them track that kind of data. The instruction for installing LabKey from source or even from compiled sources on Linux looked so frightening to me that I decided to go for the one-click Windows installer. I fired up a dedicated Windows VM for it, downloaded the installer, and it installed Postgres, Tomcat and all neccessary LabKey binaries in one go – that was a very smooth first user experience! However, after I installed it, I could only reach the website from localhost. I tried to tune the installed Tomcat installation, but it seems be configured as a virtual host for ‘localhost’ by default, refusing access via any other host names, including 127.0.0.1 on the same machine.
Other web applications which I deployed in the Tomcat container had the same problem, but a fresh Apache installation was reachable from the outside just fine (I turned the firewall off). This is most likely a general issue with Tomcat 5.5 and Windows 7 (or the Xen network adapter?!), because a fresh install of Tomcat 5.5 exhibited the same behaviour. After a long time, I finally found the solution: add
address="0.0.0.0" right behind
Connector port="8080" in the
conf/server.xml file of the LabKey Tomcat installation. It seems a IPv4/IPv6-related issue.
After installation, when you go to
http://localhost:8080/labkey, you get the default LabKey server home page: