NAME
Bio::GMOD - Unified API across Model Organism Databases
SYNOPSIS
Check the installed version of a MOD
use Bio::GMOD::Util::CheckVersions.pm
my $gmod = Bio::GMOD::Util::CheckVersions->new(-mod=>'WormBase');
my $version = $gmod->live_version;
Update a MOD installation
use Bio::GMOD::Update;
my $gmod = Bio::GMOD::Update->new(-mod=>'WormBase');
$gmod->update();
Build archives of MOD releases (coming soon...)
Do some common datamining tasks (coming soon...)
DESCRIPTION
Bio::GMOD is a unified API for accessing various Model Organism Databases. It is a part of the Generic Model Organism Database project, as well as distributed on CPAN.
MODs are highly curated resources of biological knowledge. MODs typically incorporate the typical information found at common community sites such as NCBI. However, they greatly extend this information, placing it within a framework of experimental and published observations of biological function gleaned from experiments in model organisms.
Given the great proliferation of MODs, cross-site data mining strategies have been difficult to implement. Furthermore, the quickly-evolving nature of these projects have made installing a MOD locally and keeping it up-to-date a delicate and time-consuming experience.
Bio::GMOD aims to solve these problems by:
1. Making MODs easy to install
2. Making MODs easy to upgrade
3. Enabling cross-MOD data mining through a unified API
4. Insulating programmatic end users from model changes
NOTES FOR DEVELOPERS
Bio::GMOD.pm uses a generically subclass-able architecture that lets MOD developers support various features as needed or desired. For example, a developer may wish to override the default methods for Update.pm by building a Bio::GMOD::Update::FlyBase package that provides an update() method, as well as various supporting methods.
Currently, the only participating MOD is WormBase. The authors hope that this will change in the future!
PUBLIC METHODS
- Bio::GMOD->new(@options)
-
Name : new() Status : public Required args : mod || organism || species Optional args : hash of system defaults to override Returns : Bio::GMOD::* object as appropriate, with embedded Bio::GMOD::Adaptor::* object
Bio::GMOD->new() is the generic factory new constructor for all of Bio::GMOD.pm (with the exception of Bio::GMOD::Adaptor, discussed elsewhere). new() will create an object of the appropriate class, including dynamic subclassing when necessary, as well as initializing an appropriate default Bio::GMOD::Adaptor::* object.
Required options: You must provide one of the following three arguments: -mod The symbolic name of the MOD to use (WormBase, FlyBase, SGD, etc) -species A species to use (inc case you don't know the symbolic name) -organism Even more generic, you can also specify an organism (ie 'worm')
Any additional options, passed in the named parameter "-name => value" style will automatically be considered to be default values specific to the MOD adaptor of choice. These values will be parsed and loaded into the Bio::GMOD::Adaptor::"your_mod" object. A corresponding accessor method (ie $adaptor->name) will be generated. See Bio::GMOD::Adaptor for additional details.
- $self->species2mod($species);
-
Name : species2mod($species) Status : public Required args : a species name Optional args : none Returns : a MOD name as string
Provided with a single species, return the most appropriate MOD name. Species can be in the form of "G. species", "Genus species", or simple "species" for the lazy.
eg: my $mod = $self->_species2mod('elegans'); # $mod contains 'WormBase'
- $self->organism2mod($organism)
-
Name : organism2mod($organism) Status : public Required args : a general organism name Optional args : none Returns : a MOD name as string
Like species2mod(), _organism2mod translates a general organism into the most appropriate hosting MOD.
eg: my $mod = $self->_organism2mod('nematode'); # $mod contains 'WormBase'
BUGS
None reported.
SEE ALSO
Bio::GMOD::Update, Bio::GMOD::Adaptor
AUTHOR
Todd W. Harris <harris@cshl.org>.
Copyright (c) 2003-2005 Cold Spring Harbor Laboratory.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
ACKNOWLEDGEMENTS
Much thanks to David Craig (dacraig@stanford.edu) for extensive alpha testing.