def path(self):
        from quick.application.ExternalTrackManager import ExternalTrackManager
        pathParts = self._parsedUri.path.split('/')

        if len(pathParts) == 2:
            return ExternalTrackManager.getGalaxyFnFromEncodedDatasetId(
                pathParts[1])
        elif len(pathParts) > 2:
            dir_ = ExternalTrackManager.getGalaxyFilesFnFromEncodedDatasetId(
                pathParts[1])
            return os.path.sep.join([dir_] + pathParts[2:])

        return None
Пример #2
0
    def __new__(cls,
                regSpec,
                binSpec,
                genome=None,
                categoryFilterList=None,
                strictMatch=True):
        if regSpec in ['file', 'track'] + getSupportedFileSuffixesForBinning():
            if genome is None:
                genome = DEFAULT_GENOME

            from gold.origdata.GenomeElementSource import GenomeElementSource
            if regSpec == 'track':
                from quick.util.CommonFunctions import convertTNstrToTNListFormat
                from gold.origdata.TrackGenomeElementSource import FullTrackGenomeElementSource
                trackName = convertTNstrToTNListFormat(binSpec)
                geSource = FullTrackGenomeElementSource(genome,
                                                        trackName,
                                                        allowOverlaps=False)
            else:
                from quick.application.ExternalTrackManager import ExternalTrackManager
                try:
                    fn = ExternalTrackManager.getGalaxyFnFromEncodedDatasetId(
                        binSpec)
                except:
                    fn = binSpec
                geSource = GenomeElementSource(
                    fn,
                    genome=genome,
                    suffix=regSpec if regSpec != 'file' else None)

            if categoryFilterList is not None:
                from gold.origdata.GECategoryFilter import GECategoryFilter
                geSource = GECategoryFilter(geSource,
                                            categoryFilterList,
                                            strict=strictMatch)
            return cls._applyEnvelope(geSource)
        else:
            if binSpec == '*':
                binSize = None
            else:
                binSize = parseShortenedSizeSpec(binSpec)

            from quick.application.AutoBinner import AutoBinner
            return AutoBinner(parseRegSpec(regSpec, genome), binSize)