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 isValidTrack(genome, trackName, fullAccess=False): if not TrackInfo(genome, trackName).isValid(fullAccess): return False for fn in ProcTrackOptions._getDirContents(genome, trackName): if GenomeInfo.isValidChr(genome, fn) or isBoundingRegionFileName(fn): return True return False