Skip to content

Commit c8e7e1b

Browse files
author
Seren
committed
JBrowseDataSource modified for new JBrowse 1.2.1 JSON structure. There are no subfeature files anymore
1 parent b3d0e5d commit c8e7e1b

File tree

1 file changed

+8
-34
lines changed

1 file changed

+8
-34
lines changed

backend/JBrowseDataSource.py

Lines changed: 8 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@ def __init__(self,data_folder,trackData):
1717
self.__featureNCList = trackData['featureNCList']
1818
self.__sublistIndex = trackData['sublistIndex']
1919
self.__lazyIndex = trackData['lazyIndex']
20-
self.__subFeatureArray = trackData['subfeatureArray']
2120
self.__lazyFeatureFile = self.__data_folder + '/' + re.sub('{chunk}','%s',trackData['lazyfeatureUrlTemplate'])
22-
self.__subFeatureFile = self.__data_folder+'/'+self.__subFeatureArray['urlTemplate'].replace('{chunk}','%s')
2321

2422
def getGenes(self,start,end,getFeatures=True):
2523
genes = []
@@ -45,38 +43,13 @@ def _getGenesFromNCList(self,nclist,start,end,getFeatures = True,genes = []):
4543

4644
def _getGeneFeaturesForGene(self,gene,getFeatures=True):
4745
stripped_gene = gene[0:4]
48-
stripped_gene.append([])
49-
if gene[4] != None and getFeatures:
50-
for subFeature in gene[4]:
51-
stripped_gene[4].append(self._getGeneFeaturesFromPos(subFeature,subFeature))
46+
if gene[self.__sublistIndex-1] != None and getFeatures:
47+
stripped_gene.append(gene[self.__sublistIndex-1])
48+
else:
49+
stripped_gene.append([])
5250
return stripped_gene
5351

54-
def _getGeneFeaturesFromPos(self,start,end):
55-
import math
56-
features = []
57-
start = max([0,start])
58-
end = min([end,self.__subFeatureArray['length']])
59-
firstChunk = int(math.floor(start / self.__subFeatureArray['chunkSize']))
60-
lastChunk = int(math.floor(end / self.__subFeatureArray['chunkSize']))
61-
62-
for chunk in range(firstChunk,lastChunk+1):
63-
if not chunk in self.__lazyArrayChunks:
64-
fp = open(self.__subFeatureFile % chunk)
65-
lazyFeatures = simplejson.load(fp)
66-
fp.close()
67-
self.__lazyArrayChunks[chunk] = lazyFeatures
68-
features+=self._getGeneFeaturesFromChunk(chunk,start,end)
69-
return features
70-
71-
def _getGeneFeaturesFromChunk(self,chunk,start,end):
72-
features = []
73-
chunkSize = self.__subFeatureArray['chunkSize']
74-
firstIndex = chunk*chunkSize
75-
chunkStart = max([start - firstIndex,0])
76-
chunkEnd = min([end - firstIndex,chunkSize-1])
77-
for i in range(chunkStart,chunkEnd+1):
78-
features+=self.__lazyArrayChunks[chunk][i]
79-
return features
52+
8053

8154
@classmethod
8255
def _binary_search(cls,arr, item, low=-1, high=None,index =1):
@@ -118,10 +91,11 @@ def getGenes(self,chromosome,start,end,getFeatures=True):
11891

11992

12093
def __initChromocomeSources(self,fname):
121-
fp = open(self.__getChromosomeTrackFolder(fname)+'trackData.json')
94+
track_folder = self.__getChromosomeTrackFolder(fname)
95+
fp = open(track_folder+'trackData.json')
12296
trackData = simplejson.load(fp)
12397
fp.close()
124-
self.__chromosomeSources[fname] = ChromosomeData(self.__jbrowse_tracks_folder,trackData)
98+
self.__chromosomeSources[fname] = ChromosomeData(track_folder,trackData)
12599

126100
def __getChromosomeTrackFolder(self,chromosome):
127101
return self.__jbrowse_tracks_folder + '/data/tracks/%s/%s/' % (chromosome,self.__track_key)

0 commit comments

Comments
 (0)