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 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 downloader or used over the web, see the main GO Tools page.
Unless stated otherwise, tools are open source and free for academic use.
BioConductor
BioConductor [external website]
BioConductor [external website] is a package for statistical analysis of genomic data using the R language. It includes modules for analysis of GO datasets:
BioPerl
BioPerl [external website] 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
Berkeley Bioinformatics Open-Source Projects [external website]
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
go-perl [external website] is a set of perl modules for parsing, manipulating and exporting ontologies and annotations. It includes parsers for OBO and GO association file formats. It is also an object model, centered around graphs [external website], with methods for graph traversal. For more details, see the go-perl introduction [external website].
go-perl comes bundled with various XSL transforms [external website] (which can also be used independently of perl, provided you have obo-xml files), as well as various scripts such as map2slim [external website] that can be used as standalone tools.
Installation should be simple, provided you have some experience with perl and CPAN - there are only a few dependencies. See the INSTALL [external website] files for details.
go-db-perl
go-db-perl extends the functionality of go-perl (on which it depends) with GO Database access functionality.
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/DBD modules. Follow the INSTALL instructions in the Makefile.PL
go-db-perl is in use both to drive AmiGO and internally within Ensembl.
LexGrid
European Bioinformatics Institute [external website]
LexGrid is the foundation of the National Center for Biomedical Ontology BioPortal interface and web-services. LexGrid can parse obo-format, as well as other formats such as OWL.
Ontology Lookup Service
European Bioinformatics Institute [external website]
The OLS is best known as a web interface to the Open Bio-Ontologies (OBO) collection. The OLS codebase can also be used as a web service or as a colection of J2EE compliant libraries
The OLS code depends on org.geneontology.oboedit
org.geneontology.oboedit
OBOEdit is best known as a standalone application for editing ontologies. In fact, the UI components are cleanly separated from the datamodel 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).
org.geneontology.oboedit is used in tools such as the Ontology Lookup Service and Phenote
See the wiki for instructions on downloading the source
OWLAPI
University of Manchester [external website]
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 ones of direct relevance to GO)