@@ -18,12 +18,25 @@ def __init__(self,data_folder,trackData):
18
18
self .__sublistIndex = trackData ['sublistIndex' ]
19
19
self .__lazyIndex = trackData ['lazyIndex' ]
20
20
self .__lazyFeatureFile = self .__data_folder + '/' + re .sub ('{chunk}' ,'%s' ,trackData ['lazyfeatureUrlTemplate' ])
21
+ self .__histogramFile = self .__data_folder + '/' + re .sub ('{chunk}' ,'%s' ,trackData ['histogramMeta' ][0 ]['arrayParams' ]['urlTemplate' ])
22
+ self ._initHistogramData ()
21
23
24
+
25
+ def _initHistogramData (self ):
26
+ self .histogramData = []
27
+ fp = open ((self .__histogramFile % 0 ),'r' )
28
+ self .histogramData = simplejson .load (fp )
29
+ fp .close ()
30
+
22
31
def getGenes (self ,start ,end ,getFeatures = True ):
23
32
genes = []
24
33
genes = self ._getGenesFromNCList (self .__featureNCList ,start , end ,getFeatures ,genes )
25
34
return genes
26
35
36
+
37
+ def getGeneHistogram (self ):
38
+ return self .histogramData
39
+
27
40
def _getGenesFromNCList (self ,nclist ,start ,end ,getFeatures = True ,genes = []):
28
41
length = len (nclist )
29
42
i = self ._binary_search (nclist ,start )
@@ -81,21 +94,26 @@ def __init__(self,jbrowse_tracks_folder,track_key):
81
94
self .__genenametree = GeneNameTree (jbrowse_tracks_folder )
82
95
dirList = os .listdir (self .__jbrowse_tracks_folder + "/data/tracks/" )
83
96
for fname in dirList :
84
- self .__initChromocomeSources (fname )
97
+ self .__initChromosomeSources (fname )
85
98
86
99
def getGenes (self ,chromosome ,start ,end ,getFeatures = True ):
87
100
if chromosome not in self .__chromosomeSources :
88
101
raise Exception ('Chromosome Data-Source %s not found' % chromosome )
89
102
genes = self .__chromosomeSources [chromosome ].getGenes (start ,end ,getFeatures )
90
103
return genes
91
104
105
+ def getGeneHistogram (self ,chromosome ):
106
+ if chromosome not in self .__chromosomeSources :
107
+ raise Exception ('Chromosome Data-Source %s not found' % chromosome )
108
+ data = self .__chromosomeSources [chromosome ].getGeneHistogram ()
109
+ return int (self .trackData ['histogramMeta' ][0 ]['basesPerBin' ]),data
92
110
93
- def __initChromocomeSources (self ,fname ):
111
+ def __initChromosomeSources (self ,fname ):
94
112
track_folder = self .__getChromosomeTrackFolder (fname )
95
113
fp = open (track_folder + 'trackData.json' )
96
- trackData = simplejson .load (fp )
114
+ self . trackData = simplejson .load (fp )
97
115
fp .close ()
98
- self .__chromosomeSources [fname ] = ChromosomeData (track_folder ,trackData )
116
+ self .__chromosomeSources [fname ] = ChromosomeData (track_folder ,self . trackData )
99
117
100
118
def __getChromosomeTrackFolder (self ,chromosome ):
101
119
return self .__jbrowse_tracks_folder + '/data/tracks/%s/%s/' % (chromosome ,self .__track_key )
0 commit comments