GOlr: Installation

From GO Wiki
Jump to: navigation, search

These instructions are intended to illustrate how to install the GOlr server software for AmiGO 2 on a Ubuntu 12.04 LTS Desktop. With careful reading, these instructions should be generalizable to other cases.

General notes

The following packages are required:

  • openjdk-6-jdk (although be believe Java 7 might be an option for OWLTools)
  • jetty
  • subversion

Jetty will need to be setup to start and listen to an external address if you want.

OWLTools

The owltools super JAR is now included with AmiGO in java/lib.

Solr with the GO Solr schema (GOlr)

The "Ubuntu" way (YMMV)

While we have Jetty 8 installed from the Ubuntu repos, we have our own Solr (3.6, the one that comes with Ubuntu 12.04 is ancient) in the GOlr repo. Let's get that first and look at it; even if we don't use the GOlr repo's supplied schema.xml, some of the information in there can be helpful. All GOlr source is in the AmiGO 2 git repo: amigo/golr. If you have not already done so, get the AmiGO 2 repo.

mkdir -p ~/local/src/git
cd ~/local/src/git
git clone git://github.com/geneontology/amigo.git
cd amigo
npm install
[cp appropriate conf/amigo.yaml into place]
./node_modules/.bin/gulp install

The solr.war for Jetty is at:

~/local/src/git/amigo/golr/solr/solr.war

Some systems may be able to deploy this with the make command:

./node_modules/.bin/gulp golr-install

This is not guaranteed as setups can vary quite a lot. Take a look at the very simple "golr-install" command in the gulpfile.js for the kinds of things that you might have to do (or not).

Of course, it's important to remember that the most important end product of this section is to be using a correctly organized schema.xml file in a Solr 3.6 setup. However you accomplish that is fine. For example, the schema.xml file used by GO can be found at:

~/local/src/git/amigo/golr/solr/conf/schema.xml

Alternatively, you can generate a custom one by making sure that OWLTools is in the right place (check your environment and the Makefile) and running:

./node_modules/.bin/gulp golr-schema

Also, the solrconfig.xml file in ~/local/src/git/amigo/golr/solr/conf/ might be also be useful in your setup.

The fast-and-dirty(-but-always-works) way

Instead of running Solr in a separate Jetty (or Tomcat) server, an alternative is to get a standalone embedded instance of Solr running.

  1. Download the latest Solr 3.6.x and unzip the archive in the desired folder.
  2. In the unpacked archive, delete everything under the folder apache-solr-3.6.2/example/solr/conf and copy over the GOlr config files (schema.xml and solrconfig.xml) from amigo/golr/solr/conf/.
  3. Finally start Solr from the folder apache-solr-3.6.2/example with:
java -jar start.jar

Loading the data

More memory is always welcome, but less is probably sufficient. The PANTHER section needs some special care. If you leave the PANTHER flags in the Makefile as they are now, you will need to make sure that they are there. Without checking out the whole (very large) tree, as a GOC member:

cd ~/local/src/svn
svn checkout svn://ext.geneontology.org/trunk/experimental/trees/panther_data panther_data
mkdir -p ~/local/src/svn/geneontology.org/trunk/experimental/trees/
mv panther_data ~/local/src/svn/geneontology.org/trunk/experimental/trees/

Or something similar--you just need the tree data in the right spot. These are optional and can be left out entirely if you don't need it.

As an example, we will use the gulpfile.js to do a standard load:

./node_modules/.bin/gulp load-all

And that should be it.

Remember that if you are using a caching server on the frontend that you will need to purge the caches.