Using go-perl


The go-perl library provides modules to help parse and navigate GO/OBO style ontologies together with associated gene product annotations.

The go-perl library does not deal with interfacing or querying the GO database; for this you need go-db-perl, part of this distribution. You need go-perl in order for go-db-perl to work


You should already be familiar with the Gene Ontology project:

You should also be familiar with the file formats GO uses:

Documentation on the rest of the go-dev distribution:

GO Database and Developers page:

And you should be familiar with perl, particularly object-oriented perl (unless you just want to run the scripts that are part of go-perl)


You can get the official release from CPAN - You can get the latest bleeding edge version from Sourceforge CVS. In addition, the GO Database daily, weekly, and monthly releases come with the version of the code used to build that release.


go-perl requires installation of several third-party perl modules. The instructions below should help guide you through this process. If you have never installed perl modules before, and you do not have full write privileges on your machine, you may need the help of a system administrator here.

Full installation instructions are in the file INSTALL.html or INSTALL


The go-perl distribution comes with a number of scripts. These should all be executable if you follow the installation instructions.

See go-perl for a full list of scripts.


To use the NOTE: if you do not intend to use the go-perl library as a programmer then you don't need to read any further here. Simply follow the installation instructions above, and you will be able to use any of the tools in the scripts directory.

go-perl is a set of perl modules for parsing, manipulating and exporting GO or OBO style ontology files. It includes parsers for the various GO/OBO formats, extendable handlers for dealing with the results of a parse, and an object model.

Unlike packages such as BioPerl, the object model is not strictly necessary for performing a lot of useful tasks. You can actually get by quite well with just using the Parser/Handler framework


Most of the relevant documentation is kept in POD format. You can read the HTML version here:

Event Handling Architecture

You can also read about the internal details of the event handling mechanism and how to write your own perl event handlers here: go-perl event handling

Database API

The go-perl module does not have a database API - you need the go-db-perl modules, also part of the go-dev distribution. You also need the go-database - see the GO Database SQL Docs go-dev/sql, or download the latest build from

Mail Lists