[Bioperl-l] UCSC database backend

Chris Fields cjfields at uiuc.edu
Wed Aug 9 10:41:02 EDT 2006


Sean, 

If you have your CVS account set up you could go ahead and add it in.  I
think the plan is to try and include this in the next dev release (1.5.5),
which we are trying to get out by end-Sept at the latest.  I think a few RCs
may be made beforehand, but that's really up to the pumpkin.

As RandomAccessI is already available, we could use that as a start to
implement sequence retrieval.  Other interfaces would be added over time to
round out getting data into the proper Bio* objects.

Chris

> -----Original Message-----
> From: bioperl-l-bounces at lists.open-bio.org [mailto:bioperl-l-
> bounces at lists.open-bio.org] On Behalf Of Sean Davis
> Sent: Wednesday, August 09, 2006 8:10 AM
> To: bioperl-l at lists.open-bio.org list
> Subject: [Bioperl-l] UCSC database backend
> 
> I have put together a variation of the database backend.  It is based on
> DBIx::Abstract and exposes a bit more of the SQL and DBI.  Since UCSC uses
> cross-database queries, it might be a better fit for the problem than an
> ORM.  It is pretty simple, but I don't know that we need much more here.
> The harder problem, as I mentioned earlier, is to determine what to
> return,
> not how to return it.  I am showing only a couple of the DBIx::Abstract
> methods here; there are a number of others for fetching data.  In
> particular, pretty much any of the fetch_* are available.
> 
> Here is the basic POD:
> 
> 
> 
> NAME
>        Bio::DB::UCSC::DB - database abstraction for UCSC
> 
> SYNOPSIS
>           use Bio::DB::UCSC::DB;
> 
>           # By default, connect to MySQL server at UCSC, hg18 database
>           my $db =  Bio::DB::UCSC::DB->new();
> 
>           if ($db->select('*','refGene')->rows) {
>               while (my $data = $db->fetchrow_hashref) {
>                   ....
>               }
>           }
> 
>           #get table database descriptions from hgcentral database
>           my $db_descriptions = $db->db_descriptions(); #arrayref of
> hashrefs
> 
>           #get full listing of tables (and attributes)
>           my $dbi_table_info = $db->dbi_table_info(); #arrayref of
> hashrefs
> 
>           #get full column information for the "tissue" table
>           my $dbi_column_info = $db->dbi_column_info('tissue'); #arrayref
> of
> hashrefs
> 
>           #get table descriptions from UCSC tableDescriptions table
>           #Still needs a bit of cleanup, but....
>           my $table_descriptions = $db->table_descriptions(); #arrayref of
> hashrefs
> 
> DESCRIPTION
>        This module provides some database abstraction via DBIx::Abstract.
> The
>        connection parameters are currently passed directly to
>        DBIx::Abstract->connect().  All the methods of DBIx::Abstract are
>        available, with the addition of a ->dbh() method to get at the DBI
>        database handle and the database introspection methods noted above.
> 
> TODO
>        A fair bit of work on the connection end.  In particular, I will
> proba-
>        bly make a "Bio::DB::SQL" class that encapsulates some methods for
>        working with SQL databases and some kind of abstraction for
> connection
>        information, making it easier to switch from local to remote
> versions
>        of a database.
> 
> See Also
>            L<DBIx::Abstract>,L<DBI>
> 
> Author
>        Sean Davis <sdavis2 at mail.nih.gov>
> 
> 
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l



More information about the Bioperl-l mailing list