def testShelveLocking(self):
        self._setUpShelve()

        BoundingRegionShelve('TestGenome', ['testBoundingRegionShelve'],
                             allowOverlaps=False)

        self._commonStoreBoundingRegions(sparse=True)

        BoundingRegionShelve('TestGenome', ['testBoundingRegionShelve'],
                             allowOverlaps=False)
Beispiel #2
0
    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
Beispiel #4
0
 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)