def testShelveLocking(self): self._setUpShelve() BoundingRegionShelve('TestGenome', ['testBoundingRegionShelve'], allowOverlaps=False) self._commonStoreBoundingRegions(sparse=True) BoundingRegionShelve('TestGenome', ['testBoundingRegionShelve'], allowOverlaps=False)
def getTrackData(self, trackName, genome, chr, allowOverlaps, forceChrFolders=False): trackData = TrackData() brShelve = BoundingRegionShelve(genome, trackName, allowOverlaps) if not forceChrFolders and brShelve.fileExists(): chr = None dir = createDirPath(trackName, genome, chr, allowOverlaps) for fn in os.listdir(dir): fullFn = dir + os.sep + fn if fn[0] == '.' or os.path.isdir(fullFn): continue if isBoundingRegionFileName(fn): if fullFn not in self._fileDict: self._fileDict[fullFn] = brShelve trackData.boundingRegionShelve = self._fileDict[fullFn] continue prefix, elementDim, dtypeDim, dtype = parseMemmapFileFn(fn) assert prefix not in trackData trackData[prefix] = self._getFile(chr, dir, fullFn, elementDim, dtype, dtypeDim) return trackData
def _getBoundingRegionShelve(self, trackName): if trackName in [None, []] or ExternalTrackManager.isVirtualTrack(trackName): brShelve = None else: brShelve = BoundingRegionShelve(self.genome, trackName, allowOverlaps=False) if not brShelve.fileExists(): raise BoundingRegionsNotAvailableError('Bounding regions not available for track: ' + \ prettyPrintTrackName(trackName)) return brShelve
def __init__(self, genome, trackName, allowOverlaps=False, *args, **kwArgs): from gtrackcore.track.memmap.BoundingRegionShelve import BoundingRegionShelve brShelve = BoundingRegionShelve(genome, trackName, allowOverlaps) if brShelve.fileExists(): boundingRegions = list(brShelve.getAllBoundingRegions()) else: boundingRegions = GenomeInfo.getStdChrRegionList(genome) TrackGenomeElementSource.__init__(self, genome=genome, trackName=trackName, \ boundingRegions=boundingRegions, globalCoords=True, \ allowOverlaps=allowOverlaps, printWarnings=True)
def _setUpShelve(self): self._brShelve = BoundingRegionShelve('TestGenome', ['testBoundingRegionShelve'], allowOverlaps=False)