GOlr: Difference between revisions

From GO Wiki
Jump to navigation Jump to search
No edit summary
mNo edit summary
 
(64 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:Software]]
[[Category:GOlr]]
=Overview=
=Overview=


This page describes the status of the public Solr index for the GO. This index will replace some of the query functionality for GOOSE as well as become the new backend for AmiGO and other services. A preview server is now active at http://golr.berkeleybop.org.
This page describes the status of the public Solr index for the GO. This index will replace some of the query functionality for GOOSE as well as become the new backend for AmiGO 2 and other services. A preview server is now active at http://golr.berkeleybop.org.


=Use=
=Public beta=
 
The preview server at http://golr.berkeleybop.org is currently in beta.
 
Some preview documentation is at http://cdn.berkeleybop.org/jsapi/bbop-js/docs/index.html
 
==Use==


Feel free to use it as you will and start to write for it. As this is
Feel free to use it as you will and start to write for it. As this is
still a little early, we are only loading the GO, CL, ECO, and taxslim, as well as non-IEA annotations from the GAFs. Please see the [[AmiGO_Labs]] caveats, as well as the [[#Downtime | downtime]] information on this page.
still a little early, we are only loading the GO, CL, ECO, and taxslim, as well as non-IEA annotations from the GAFs. Please see the [[AmiGO_Labs]] caveats, as well as the [[#Downtime | downtime]] information on this page.


=Implementation Progress=
==Implementation progress==


We are now loading properly from [https://code.google.com/p/owltools/ owltools].
We are now loading properly from [https://code.google.com/p/owltools/ owltools].
Line 20: Line 28:
We are now on Solr 3.6.
We are now on Solr 3.6.


=Schema Progress=
==Schema progress==


We are currently working towards a flexible schema as [http://geneontology.svn.sourceforge.net/viewvc/geneontology/java/gold/solr/conf/schema.xml?revision=4429&content-type=text%2Fplain defined] in the owltools code. As we roll it out for the AmiGO backend and as a replacement for common GOOSE queries, we expect to find holes in the schema, documented below.
We are currently working towards a flexible schema as [http://geneontology.svn.sourceforge.net/viewvc/geneontology/java/gold/solr/conf/schema.xml?revision=4429&content-type=text%2Fplain defined] in the owltools code. As we roll it out for the AmiGO backend and as a replacement for common GOOSE queries, we expect to find holes in the schema, documented below.


Currently, the index is entirely populated by through an owltools command line program, using [https://code.google.com/p/owltools/source/browse/#svn%2Ftrunk%2FOWLTools-Solr%2Fsrc%2Fmain%2Fresources YAML] files for configuration. The Solr schema.xml generation looks like:
Currently, the index is entirely populated by through an owltools command line program, using [https://code.google.com/p/owltools/source/browse/#svn%2Ftrunk%2FOWLTools-Solr%2Fsrc%2Fmain%2Fresources YAML] files for configuration. For more information, see the ''Installation'' section below.
 
./OWLTools-Runner/bin/owltools --solr-config /home/sjcarbon/local/src/svn/owltools/OWLTools-Solr/src/main/resources/ont-config.yaml /home/sjcarbon/local/src/svn/owltools/OWLTools-Solr/src/main/resources/bio-config.yaml /home/sjcarbon/local/src/svn/owltools/OWLTools-Solr/src/main/resources/ann-config.yaml /home/sjcarbon/local/src/svn/owltools/OWLTools-Solr/src/main/resources/ann_ev_agg-config.yaml --solr-schema-dump
 
With the actual population along the lines of:
 
owltools http://purl.obolibrary.org/obo/go.owl http://purl.obolibrary.org/obo/ncbitaxon/subsets/taxslim.owl http://purl.obolibrary.org/obo/cl.owl http://purl.obolibrary.org/obo/eco.owl --merge-support-ontologies --reasoner elk --solr-url http://localhost:8080/solr/ --solr-purge --solr-config /home/bbop/local/src/svn/owltools/OWLTools-Solr/src/main/resources/ont-config.yaml --solr-load-ontology --solr-load-panther /optional/wherever --solr-load-gafs /srv/tmp/gene_association.mgi
 
For the sake of completeness, a development load that we often run looks like:
 
./OWLTools-Runner/bin/owltools http://purl.obolibrary.org/obo/go.owl http://purl.obolibrary.org/obo/ncbitaxon/subsets/taxslim.owl http://purl.obolibrary.org/obo/cl.owl http://purl.obolibrary.org/obo/eco.owl --merge-support-ontologies --reasoner elk --solr-url http://localhost:8080/solr/ --solr-purge --solr-config /home/sjcarbon/local/src/svn/owltools/OWLTools-Solr/src/main/resources/ont-config.yaml --solr-load-ontology --solr-load-panther ~/tmp/tree --solr-load-gafs http://www.geneontology.org/gene-associations/gene_association.GeneDB_Spombe.gz http://www.geneontology.org/gene-associations/gene_association.dictyBase.gz
 


==Rewriting old GOOSE query examples for the new GOlr Schema==
==Query examples for the GOlr Schema==


Example queries on the [http://wiki.geneontology.org/index.php/Example_Solr_Queries wiki].
Example queries on the [http://wiki.geneontology.org/index.php/Example_Solr_Queries wiki].
Line 44: Line 41:
* Note: hierarchical queries that 'combine' facet queries can be handled by the facet.pivot functionality that is available in Solr 4. In the meantime, we'll see if we can devise a work-around.
* Note: hierarchical queries that 'combine' facet queries can be handled by the facet.pivot functionality that is available in Solr 4. In the meantime, we'll see if we can devise a work-around.


==Current Issues and Problems with the GOlr Schema==
== Current holes in the GOlr schema ==
 
* <strike>No PANTHER data</strike>
** <strike>We'll look at creating a new document type from Suzi's PAINT code.</strike>
** <strike>Looking to add PANTHER data as extra fields.</strike>
 
* A few suggestions to make use of the document categories easier:
** <strike>bioentity 'source' was not loaded correctly in the version I was testing</strike> FIXED
** <strike>annotation should have 'with' field (I believe Seth said this is coming but thought I'd get it written down here)</strike> FIXED
** <strike>ontology_class should have 'synonyms' and 'closure' (I believe Seth said this is coming)</strike> should be in now
** <strike>annotation_aggregate should have 'go_id' as a separate field (I believe Seth said this is coming as 'alternate_id')</strike> should be annotation_class* (fixed)
** <strike>all id/label closure pairs need a corresponding JSON structure to map the two to eachother</strike>
** <strike>JSON blob for graph structure</strike>
 
= Downtime =
 
Rebuilds start at 10pm PDT (6am BST; 5pm NZST), so there may be some data gaps in there.
 
At the time of this writing, this process is taking a few hours.
 
= Installation =  


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.
* None listed at this time...


== General notes ==
== Downtime ==


The following packages are required:
Now that we have entered beta, downtimes are sporactic as we work with the software stack. As we approach production, the automatic update times will be decided and posted.


* ???
= Local installation (data and schema development) =


Also, you will need a version of Maven 3 (mvn) to use and build OWLTools if you are trying to load data. It is a fairly simple process to download it and make sure that it is in your path.
GOlr installation information and Solr installation help can be found [[GOlr:_Installation | here]].


==GOlr (geneontology repo)==
=Collaborations=


Server code and utilities for handling the GO Solr schema.
In order to make a truly useful system for the community at large, the Gene Ontology Consortium is working directly with other groups on GOlr tools, schema, and library development.


svn co https://geneontology.svn.sourceforge.net/svnroot/geneontology/golr geneontology/golr
==Virtual Fly Brain (VFB)==


This is just utility code and the GO data schema, no building is necessary.
We're working with [http://www.virtualflybrain.org VFB] on schema and ontology tools development to help enable rich ontology interaction and search at speed. This will also help push the envelope on the types of use cases that we might see.
 
==OWLTools==
 
This contains the loader code that GO uses for ontology and GAF files.
 
svn checkout http://owltools.googlecode.com/svn/trunk/ owltools-read-only
 
===Building===
 
The code should be self-sufficient on a machine with an internet connection.
 
cd WHEREVER/owltools/OWLTools-Parent/ && mvn clean package
 
Or, without unit tests (much quicker):
 
cd WHEREVER/owltools/OWLTools-Parent/ && mvn clean package -DskipTests
 
The ''owltools'' binary that we'll be referring to later will be in:
 
WHEREVER/owltools/OWLTools-Runner/bin/owltools
 
This should either be in your path or you will have to make this path explicit.
 
==Readying Solr==
 
While we have Jetty installed from the repos, we have our own Solr (3.6) in the GOlr repo as the one that comes with Ubuntu is ancient. While we install/handle our Jetty/Solr setup with the golr.el script found in the GOlr repo, you may find it easier to just look at the script and copy its actions unless you're really into Emacs.
 
The most important part is using the correct schema.xml (derived from YAML files using OWLTools, but that's [http://wiki.geneontology.org/index.php/GOlr another story]). The solrconfig.xml is also there and might be useful.
 
==Loading the data==
 
As an example, we will load four ontologies useful to GO right now and a single GAF file for annotations onto the localhost Solr instance. Please note the ''WHEREVER'', the other resources are on the web.
 
OWLTOOLS_MEMORY=32G owltools http://purl.obolibrary.org/obo/go.owl http://purl.obolibrary.org/obo/ncbitaxon/subsets/taxslim.owl http://purl.obolibrary.org/obo/cl.owl http://purl.obolibrary.org/obo/eco.owl --merge-support-ontologies --reasoner elk --solr-url http://localhost:8080/solr/ --solr-purge --solr-config WHEREVER/owltools/OWLTools-Solr/src/main/resources/ont-config.yaml --solr-load-ontology --solr-load-panther ~/tmp/PANTHER7.2_HMM_classifications ~/tmp/tree --solr-load-gafs http://www.geneontology.org/gene-associations/gene_association.GeneDB_Lmajor.gz
 
More memory is always welcome, but less is probably sufficient. The panther section
 
--solr-load-panther ~/tmp/PANTHER7.2_HMM_classifications ~/tmp/tree
 
is optional and experimental--it can be left out entirely.
 
 
[[Category:SWUG Projects]]
[[Category:Software]]
[[Category:AmiGO]]
[[Category:Software Progress]]
[[Category:Seth]]
[[Category:Mary]]

Latest revision as of 11:40, 12 August 2019

Overview

This page describes the status of the public Solr index for the GO. This index will replace some of the query functionality for GOOSE as well as become the new backend for AmiGO 2 and other services. A preview server is now active at http://golr.berkeleybop.org.

Public beta

The preview server at http://golr.berkeleybop.org is currently in beta.

Some preview documentation is at http://cdn.berkeleybop.org/jsapi/bbop-js/docs/index.html

Use

Feel free to use it as you will and start to write for it. As this is still a little early, we are only loading the GO, CL, ECO, and taxslim, as well as non-IEA annotations from the GAFs. Please see the AmiGO_Labs caveats, as well as the downtime information on this page.

Implementation progress

We are now loading properly from owltools.

We have looked at nginx as a reverse proxy for speed and to prevent unauthorized access to non-select URLs on the Solr server, and found it to be good.

The GOlr server is now active at http://golr.berkeleybop.org (nginx front on stove).

We now also have http://amigo2.berkeleybop.org working on stove and backed by golr.berkeleybop.org.

We are now on Solr 3.6.

Schema progress

We are currently working towards a flexible schema as defined in the owltools code. As we roll it out for the AmiGO backend and as a replacement for common GOOSE queries, we expect to find holes in the schema, documented below.

Currently, the index is entirely populated by through an owltools command line program, using YAML files for configuration. For more information, see the Installation section below.

Query examples for the GOlr Schema

Example queries on the wiki.

  • Some old queries require the use of Solr facets and some modification of code Seth has written to present simpler results queries (i.e. the facet results are not displayed).
  • Note: hierarchical queries that 'combine' facet queries can be handled by the facet.pivot functionality that is available in Solr 4. In the meantime, we'll see if we can devise a work-around.

Current holes in the GOlr schema

  • None listed at this time...

Downtime

Now that we have entered beta, downtimes are sporactic as we work with the software stack. As we approach production, the automatic update times will be decided and posted.

Local installation (data and schema development)

GOlr installation information and Solr installation help can be found here.

Collaborations

In order to make a truly useful system for the community at large, the Gene Ontology Consortium is working directly with other groups on GOlr tools, schema, and library development.

Virtual Fly Brain (VFB)

We're working with VFB on schema and ontology tools development to help enable rich ontology interaction and search at speed. This will also help push the envelope on the types of use cases that we might see.