[Bioperl-l] Database Retrieval

Sendu Bala bix at sendu.me.uk
Tue Aug 8 05:21:38 EDT 2006

Sean Davis wrote:
> On 8/7/06 1:53 PM, "Sendu Bala" <bix at sendu.me.uk> wrote:
>> Do you want to go ahead and look into making those classes for
>> accessing the common tables? It's in my plan to make various
>> aspects of genomic data retrieval a strength of bioperl as opposed
>> to a surprising missing link
>> (http://www.bioperl.org/wiki/Getting_Genomic_Sequences); I'll get 
>> to that in a few weeks but if you lay the ground work or better yet
>> complete everything before then that would be great! :)
> So, there is a sketch of what things would look like here:
> http://watson.nci.nih.gov/~sdavis/Bio-DB-UCSC.tar.gz

Thanks for that.

> only includes the refLink and refFlat tables so far, but adding other
> tables is pretty straightforward, as you can see from the code.  I
> would love to hear comments.  Basically, to use, you can do something
> like that shown in the synopsis and output is given below:
> NAME Bio::DB::UCSC - Access UCSC MySQL tables nicely
> SYNOPSIS use Bio::DB::UCSC::RefLink::Manager;
> my $reflinks = Bio::DB::UCSC::RefLink::Manager->get_reflinks( query
> => [ mrnaAcc => {like => 'NM_00002%'}, ], );

I appreciate that this is due to the way Rose::DB works, but is it
possible to hide the SQL nature of what we're doing? Is it possible to
hide even the table names?

Ideally the interface API would survive a complete change in UCSC's
table structures. The implementation would have to change, but user code
would not.

Are you willing to take this on from your outline and develop a set of
more bioperlish modules? Even if you don't have time your contribution 
so far is certainly valuable, so thank you.

I envisage that Bio::DB::UCSC.pm would be the easy-to-use starting 
point, presenting a code interface similar to the UCSC table browsing 
web interface. And while it would implement using various submodules, 
even UCSC.pm would be protected from SQL and table changes.

More information about the Bioperl-l mailing list