GO Related Software Libraries
The following software libraries and application programmer interfaces (APIs) are intended for software developers and advanced users with some programming capabilities. It includes parsers and object models for the file formats used by the consortium, such as OBO Format and the GO association file format.
This is not intended as a list of end-user tools; rather they are construction kits programmers can re-use to make new tools and utilities. For a more general list of tools that can be downloaded or used over the web, see the main GO tools page.
Unless stated otherwise, tools are open source and free for academic use.
BioConductor is a package for statistical analysis of genomic data using the R language. It includes modules for analysis of GO datasets:
BioPerl is a set of perl modules for use in bioinformatics. It includes modules written by Sohel Merchant of the GO Consortium for parsing and manipulating OBO ontologies
Blip (Biomedical LogIcal Programming) is a research-oriented deductive database and prolog application library for handling biological and biomedical data. It includes packages for advanced querying of ontologies and annotations.
Blip underpins the Obol tool
go-perl is a set of Perl modules for parsing, manipulating and exporting ontologies and annotations. It includes parsers for the OBO and GO gene association file formats. It has a graph-based object model with methods for graph traversal. For more details, see the documentation included with the modules.
go-perl comes bundled with XSL [Extensible Stylesheet Language] transforms (which can also be used independently of Perl, provided you have files in OBO-XML format), as well as scripts that can be used as standalone tools.
Installation should be simple, provided you have some experience with Perl and CPAN; see the INSTALL file for details.
go-db-perl comes bundled with various scripts and a shell command line interface that can be used as standalone tools.
Installation is more involved than for go-perl; you will need a MySQL database plus the requisite DBI and DBD Perl modules. Full installation instructions are included in the download.
Ontology Lookup Service
The Ontology Lookup Service is best known as a web interface to the Open Biomedical Ontologies (OBO) collection. The OLS codebase can also be used as a web service or as a collection of J2EE-compliant libraries.
The OLS code depends on org.geneontology.oboedit.
OBO-Edit is best known as a standalone application for editing ontologies. In fact, the UI components are cleanly separated from the data model and data adapters, so these can be reused in other applications. The oboedit foward-chaining reasoner can also be used independently (for example, for traversing ontology graphs).
See the GO wiki for instructions on downloading the source code.
The OWLAPI is a java application programmer interface for OWL-based ontologies. The latest version of the API contains an OBO-Format parser. The OWLAPI underpins ontology browsing and editing tools and platforms such as SWOOP and Protege4
Note that this API, or any other OWL-based API, can be used without an integrated OWL parser if you download a pre-converted OWL file generated from OBO. See OBO Ontologies List for all OBO ontologies converted to OWL (we do not list the full complement of OWL-based APIs here, only those of direct relevance to GO).