[Bioperl-l] UCSC database backend

Caleb Davis cdavis at bcm.tmc.edu
Thu Aug 31 23:53:51 UTC 2006


Hi folks, first time caller here.  Love the show!

I just started going through the archive and saw this thread.  I vote in 
favor of this interface, for what it's worth.  What about doing it this 
way?:

$objSeqIO  = Bio::SeqIO->new(-file => '~/seq/myseqCustomTrack.bed',
                         -format => 'bed',
                         -assembly => 'hg18',
                         -track => 'hg18_myfavgenes');    #see example below

If this worked you could have any genomic sequence from any assembly at 
your fingertips.  The custom track format is a common way to specify 
arbitrary genomic coordinates and region identifiers.  There are a few 
different formats, but BED is my current favorite 
(http://genome.ucsc.edu/goldenPath/help/customTrack.html#format).  The 
nice thing about custom tracks is that you can use them as hooks to 
retrieve assembly sequence, as well as to visualize the regions of 
interest directly in the browser.

A brief tutorial for using the table browser to retrieve 
sequence...Here's an example of a plausible myCustomTrack.bed.  In this 
example the coordinates happen to correspond to genes, but they could 
point to arbitrary genomic segments:
---------
browser position chr1:1940702-1952050
track name=hg18_myfavgenes description="my favorite genes"
chr1    1940702    1952050    GABRD|NM_000815    1000    +    1940722   
 1951581    0,0,0    9    88,113,68,221,83,138,156,212,769   
 0,5538,5930,6114,8173,8751,9707,10147,10579
chr1    6008966    6083110    KCNAB2|NM_003636    1000    +    6023215   
 6081221    0,0,0    16   
 126,129,42,44,38,80,45,45,44,87,86,121,95,121,89,1979   
 0,14197,15511,46435,47413,55875,58884,61147,62688,64069,68080,69003,69210,70316,70949,72165
track name=hg18_othergenes description="some other genes"
chr1    11788880    11825772    CLCN6|NM_001286    1000    +   
 11788906    11822867    0,0,0    23   
 113,60,66,66,67,107,127,68,59,133,114,167,127,124,154,160,107,187,158,157,108,126,2986   
 0,894,9609,10378,13251,16458,17470,18249,19919,20852,21869,22221,22959,27278,27640,27999,28247,29730,30762,31106,32098,32298,33906
chr1    16221696    16233131    CLCNKA|NM_004070    1000    +   
 16221701    16232740    0,0,0    19   
 105,129,129,140,78,79,126,85,102,85,174,70,111,214,134,89,84,87,439   
 0,1185,2148,3493,3921,4082,4695,5206,5403,6146,6511,7116,7350,7846,9095,9588,9828,10555,10996
---------
Submit the example into the form here: 
http://genome.ucsc.edu/cgi-bin/hgTracks?clade=vertebrate&org=Human&db=hg18&position=chrX%3A151%2C073%2C054-151%2C383%2C976&pix=620&hgsid=77004600&customTrackPage=add+your+own+custom+tracks

To retrieve the sequence you go to the table browser, select the custom 
track, and select sequence as the output format:
http://genome.ucsc.edu/cgi-bin/hgTables?clade=vertebrate&org=Human&db=hg18&hgta_group=user&hgta_track=ct_hg18myfavgenes&hgta_table=0&hgta_regionType=genome&position=chr1%3A1940702-1952050&hgta_outputType=primaryTable&hgta_outFileName=

Maybe assemblies are interesting enough that they would get their own 
objects, with a custom track query to an objAssembly generating an 
objSeqIO.  You folks rock!
--Caleb

 >Sean Davis wrote:
 >>
 >> Before we get too far down this line of thought, keep in mind that 
this will
 >> be dozens of Gb of sequence and database tables.  See here for details:
 >>
 >> http://genome.ucsc.edu/admin/mirror.html
 >>
 >> The sequences include all of genbank, essentially.  The mysql tables 
ALONE
 >> (no sequence) for only ONE human assembly is on the order of 
10Gb--not the
 >> kind of thing you can download in a few minutes (or even hours).  
Just to
 >> keep in mind....
 >
 >I think if someone needs heavy-duty access to genomic data, they'll find
 >the discspace. That wouldn't be the problem. The problem would be
 >finding an easy way of getting the data, which is where I hoped
 >something like a UCSC frontend would come in.
 >
 >
 >> On another point, the strength of UCSC is not in obtaining sequence, 
but in
 >> mapping to the genome.  I think getting actual sequence should be 
secondary
 >> here, if for no other reason than there are trivially easy ways of 
getting
 >> sequence information from elsewhere given an accession or ID.  There is
 >> simply too much information to be stored locally for most people and 
getting
 >> the data remotely from UCSC doesn't seem possible currently.
 >
 >The work would certainly be highly valuable even if it didn't allow for
 >sequence retrieval, but from my own point of view my main interest was
 >exactly the retrieval of arbitrary bits of genomic sequence - for which
 >there is no accession or ID that can be used to query some other database.
 >
 >How does the website table browser frontend allow retrieval of sequence
 >data?




More information about the Bioperl-l mailing list