# Using go-perl

## Introduction

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

## Background

You should already be familiar with the Gene Ontology project:

- http://www.geneontology.org
- http://obo.sourcefore.net
- GO documentation

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

- goflat and OBO file formats
- annotation format

Documentation on the rest of the go-dev distribution:

- go-dev documentation

GO Database and Developers page:

- http://www.godatabase.org/dev

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)

## Download

You can get the official release from CPAN - http://search.cpan.org/~cmungall/go-perl. 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.

## Installation

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

## Scripts

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.

## About

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

## Documentation

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

- go-perl introduction
- GO::Parser parsing using go-perl
- GO::Model::Graph the core of the go-perl object model

### 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 http://www.godatabase.org/dev/database

## Mail Lists

- http://mail.fruitfly.org/mailman/listinfo/go-database -- Announcements and user help with the GO Database downloads and schema
- http://lists.sourceforge.net/lists/listinfo/gmod-ontol-sw-dev -- go-dev software discussion

Last modified: Sat Feb 12 18:00:02 PST 2005