An implementation of Jan Aerts' LocusTree
-
Upload
pierre-lindenbaum -
Category
Technology
-
view
561 -
download
3
description
Transcript of An implementation of Jan Aerts' LocusTree
Another Genome Browser
LocusTree
Pierre Lindenbaum PhD. Fondation Jean Dausset
Dec. 2009
[email protected]://plindenbaum.blogspot.com
“A brave new genome browser”
Saaien Tist
http://saaientist.blogspot.com
BerkeleyDB:A Key/Value Database
(Oracle)
C APIJava Bindings (JNI)
PureJava
http://www.oracle.com/database/berkeley-db/index.html
How it works
Loading the Data
<organisms>
<organism id="36">
<name>hg18</name>
<description>
Human Genome Build v.36
</description>
<metadata>{"taxon-id":9606}</metadata>
</organism>
</organisms>
Organisms
<tracks>
<track id="1">
<name>cytobands</name>
<description>UCSC cytobands</description>
</track>
<track id="2">
<name>knownGene</name>
<description>UCSC knownGene</description>
</track>
<track id="3">
<name>snp130</name>
<description>dbSNP v.130</description>
</track>
</tracks>
Tracks
<chromosomes organism-id="36">
<chromosome id="1">
<name>chr1</name>
<metadata>
{"size":247249719,"type":"autosomal"}
</metadata>
</chromosome>
<chromosome id="10">
<name>chr10</name>
<metadata>
{"size":135374737,"type":"autosomal"}
</metadata>
</chromosome>
(...)
</chromosomes>
ChromosomesChromosomes
public interface LTLoader
{
public MappedObject getMappedObject();
public String getChromosome();
public Set<String> getKeywords();
}
public interface LTStreamLoader
extends LTLoader
{
public void open(String uri) throws IOException;
public void close() throws IOException;
public boolean next() throws IOException;
}
Objects
<loaders>
<load organism-id="36" track-id="5"
class-loader="fr.cephb.locustree.loaders.UCSCAllMrnaLoader"
limit="10000">
http://hgdownload.cse.ucsc.edu/(...)/all_mrna.txt.gz
</load>
<load organism-id="36" track-id="4"
class-loader="fr.cephb.locustree.loaders.UCSCSnpCodingLoader"
limit="10000">
http://hgdownload.cse.ucsc.edu/(...)/snp130CodingDbSnp.txt.gz
</load>
</loaders>
Objects
Implementation:Servlet/JSP
Apache Tomcat
Searching
Browsing
SVG
hg18 chr1 knownGene uc001act.2 Q96HA4 1007060 1041599 {'exonEnds':[1008230,1009626,1009749,1011255,1012447,1012840,1015671,1016226,1016808,1017346,1040318,1041599],'exonStarts':[1007060,1009157,1009723,1011120,1012381,1012744,1015595,1016118,1016714,1017233,1040264,1041302],'strand':'-'}hg18 chr1 knownGene uc001acm.2 Q96HA4-2 1007060 1017346 {'exonEnds':[1008230,1011255,1012447,1012840,1015671,1016808,1017346],'exonStarts':[1007060,1011120,1012381,1012744,1015595,1016714,1017233],'strand':'-'}hg18 chr1 knownGene uc001acu.2 Q96HA4-4 1007060 1041599 {'exonEnds':[1008230,1009626,1009749,1011255,1012447,1012840,1015671,1016808,1017346,1041599],'exonStarts':[1007060,1009595,1009723,1011120,1012381,1012744,1015595,1016714,1017233,1041302],'strand':'-'}hg18 chr1 knownGene uc009vju.1 uc009vju.1 1007060 1017346 {'exonEnds':[1008230,1009626,1009749,1011255,1012840,1015671,1016808,1017346],'exonStarts':[1007060,1009595,1009723,1011120,1012744,1015595,1016714,1017233],'strand':'-'}hg18 chr1 knownGene uc001acr.2 uc001acr.2 1007060 1041599 {'exonEnds':[1008230,1009329,1009626,1009749,1011255,1012447,1012840,1015671,1016617,1016808,1017346,1041599],'exonStarts':[1007060,1009157,1009595,1009723,1011120,1012381,1012744,1015595,1016520,1016714,1017233,1041302],'strand':'-'}hg18 chr1 knownGene uc001acs.2 uc001acs.2 1007060 1041599 {'exonEnds':[1008230,1009329,1009626,1009749,1011255,1012447,1012840,1015671,1016808,1017346,1041599],'exonStarts':[1007060,1009157,1009595,1009723,1011120,1012381,1012744,1015595,1016714,1017233,1041302],'strand':'-'}
Export: text/plain
Distributed Annotation SystemDAS
LocusTreeService service=new LocusTreeService();
LocusTree locustree=service.getLocusTreeSePort();
final int organismId=36;
for(Chromosome chrom :
locustree.getChromosomes(organismId))
{
System.out.println(
chrom.getId()+"\t"+
chrom.getName()+"\t"+
chrom.getOrganismId()+"\t"+
chrom.getLength()
);
}
1 chr1 36 247249719
2 chr2 36 242951149
3 chr3 36 199501827
4 chr4 36 191273063
5 chr5 36 180857866
6 chr6 36 170899992
7 chr7 36 158821424
8 chr8 36 146274826
9 chr9 36 140273252
(...)
Thank you.