The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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.