[Bioperl-l] bioperl-db -- a cautious first baby-steps

Ewan Birney birney@ebi.ac.uk
Mon, 2 Apr 2001 20:17:00 +0100 (BST)

bioperl-db is ready for its first little baby-steps into the big bad

bioperl-db is a pretty vanilla mysql-database-and-perl bindings for
sequence database, written with an eye for more than sequence data being
stored in there, but definitely sequence orientated at the moment.

It is basically a starting point for replacing flat-file + DBM index, or
simple usage of SRS/efetch etc. 

I did look at David Block's annotation database, which I might steal stuff
from in the future, but the implementation here was very "close
binding" (ie, objects updated on set methods) and there was no easy way to
move between implementations of Seq objects to be stored, something I
favoured. Sorry David --- (But, I have to admit, I was very ammused to see
the chat table in the middle of the database schema there. Much fun!)

bascially I wrote it very "new Ensembl style", which is basically like
Java Beans (I hear). There are business objects which comply to the
interfaces Bio::SeqI etc which store at least the database primary_id in
the object and singleton "Adaptor" objects which mediates access to the
database for all instances of the business object. 

The mysql schema is in


The code is mainly in




I have done basic sequence and description and database loading. This is
enough for the Ensembl web site's use of this stuff, the whole reason I
set off on this road, so now anything more is "just for fun". I am going
to tackle basic sequence features over the next couple of days.

The code base is pretty bare but there are two tests - filched Ensembl's
great database test harness for testing. For people with a strong perl
constitution and/or ensembl experience, the whole thing should be very
useable. I will attempt to write a good README/bioperl-db.pod at some

wait I guess 15mins or so if you are using anonymous cvs, otherwise code
etc is at

  cvs module - bioperl-db


Ewan Birney. Mobile: +44 (0)7970 151230, Work: +44 1223 494420