예제 #1
0
    def run_on_extracted_variables(cls, ts, analysisBins, choices_numberOfTimesToRandomize, choices_randAlg,
                                   choices_randType, galaxyFn, genome):
        assert choices_numberOfTimesToRandomize==1 #For now, since ts probably needs to be unique each time..

        outputGSuite = GSuite()
        for i in range(0, int(choices_numberOfTimesToRandomize)):
            print("TF leaf nodes")
            print(ts.getLeafNodes())
            randTvProvider = cls._createTrackViewProvider(ts, analysisBins, genome, choices_randAlg, choices_randType,
                                                          False, None)  # the last False and non are temporary..
            randomizedTs = getRandomizedVersionOfTs(ts, randTvProvider)

            # output files
            print("Leaf nodes")
            print(randomizedTs.getLeafNodes())
            for j, singleTrackTs in enumerate(randomizedTs.getLeafNodes()):
                uri = "outputfile"

                uri = FileGSuiteTrack.generateURI(path='/home/ivargry/outfile_' + str(randint(0,999999999)) + '_' + str(j) + ".bed", suffix='bed', doQuote=False)
                print("URI: " + uri)

                title = singleTrackTs.metadata.pop('title')
                gSuiteTrack = FileGSuiteTrack(uri, title=title + '.randomized', fileFormat='primary', trackType='segments',
                                          genome=genome, attributes=singleTrackTs.metadata)
                outputGSuite.addTrack(gSuiteTrack)
                singleTrackTs.metadata['trackFilePath'] = gSuiteTrack.path
                singleTrackTs.metadata['randomization_run'] = i

            spec = AnalysisSpec(TsWriterStat)

            res = doAnalysis(spec, analysisBins, randomizedTs)
        assert galaxyFn != ""
        GSuiteComposer.composeToFile(outputGSuite, galaxyFn)
예제 #2
0
    def testCreateFileGSuiteTrack(self):
        uri = FileGSuiteTrack.generateURI(path='/path/to/file',
                                          suffix='btrack',
                                          trackName=['trackname'],
                                          doQuote=False)
        track = GSuiteTrack(uri,
                            title='MyTrack',
                            trackType='segments',
                            genome='unknown',
                            attributes=OrderedDict([('extra', 'no')]))

        self.assertEquals('file:/path/to/file;btrack?track=trackname', uri)
        self.assertEquals('file', track.scheme)
        self.assertEquals('file:/path/to/file;btrack?track=trackname',
                          track.uri)
        self.assertEquals(None, track.netloc)
        self.assertEquals('/path/to/file', track.path)
        self.assertEquals('track=trackname', track.query)
        self.assertEquals('btrack', track.suffix)
        self.assertEquals('MyTrack', track.title)
        self.assertEquals(['trackname'], track.trackName)
        self.assertEquals('local', track.location)
        self.assertEquals('preprocessed', track.fileFormat)
        self.assertEquals('segments', track.trackType)
        self.assertEquals('unknown', track.genome)
        self.assertEquals(OrderedDict([('extra', 'no')]), track.attributes)
    def execute(cls, choices, galaxyFn=None, username=''):
        from quick.util.CommonFunctions import getFileSuffix
        import gold.gsuite.GSuiteComposer as GSuiteComposer
        from gold.gsuite.GSuite import GSuite
        from gold.gsuite.GSuiteTrack import registerGSuiteTrackClass, GSuiteTrack, FileGSuiteTrack

        registerGSuiteTrackClass(FileGSuiteTrack)

        gSuite = getGSuiteFromGalaxyTN(choices.gsuite)

        outGSuite = GSuite()

        for track in gSuite.allTracks():
            path = track.path
            suffix = track.suffix if track.suffix != getFileSuffix(
                path) else ''
            uri = FileGSuiteTrack.generateURI(path=path, suffix=suffix)

            newTrack = GSuiteTrack(uri,
                                   title=track.title,
                                   trackType=track.trackType,
                                   genome=track.genome,
                                   attributes=track.attributes)

            outGSuite.addTrack(newTrack)

        GSuiteComposer.composeToFile(outGSuite, galaxyFn)
예제 #4
0
    def testIncorrectTrackType(self):
        uri = FileGSuiteTrack.generateURI(path='/path/to/file')
        # track = GSuiteTrack(uri, trackType='segment')
        self.assertRaises(InvalidFormatError, GSuiteTrack, uri, trackType='segment')

        track = GSuiteTrack(uri)
        # track.trackType = 'segment'
        self.assertRaises(InvalidFormatError, track.__setattr__, 'trackType', 'segment')
예제 #5
0
    def testIncorrectFileFormat(self):
        uri = FileGSuiteTrack.generateURI(path='/path/to/file')
        # track = GSuiteTrack(uri, fileFormat='doc')
        self.assertRaises(InvalidFormatError, GSuiteTrack, uri, fileFormat='doc')

        track = GSuiteTrack(uri)
        # track.fileFormat = 'doc'
        self.assertRaises(InvalidFormatError, track.__setattr__, 'fileFormat', 'doc')
예제 #6
0
    def testQuoteInURLFile(self):
        uri = FileGSuiteTrack.generateURI(path='/path/to/file_with ;"[', suffix='btrack',
                                          trackName=['My', 'track ;"[', 'name'], doQuote=True)
        track = GSuiteTrack(uri, fileFormat='preprocessed', trackType='segments')

        self.assertEquals('file:/path/to/file_with%20%3B%22%5B;btrack?'
                          'track=My%3Atrack+%3B%22%5B%3Aname', uri)
        self.assertEquals('file', track.scheme)
        self.assertEquals('file:/path/to/file_with%20%3B%22%5B;btrack?'
                          'track=My%3Atrack+%3B%22%5B%3Aname', track.uri)
        self.assertEquals('/path/to/file_with ;"[', track.path)
        self.assertEquals('name', track.title)
        self.assertEquals('track=My:track ;"[:name', track.query)
        self.assertEquals(['My', 'track ;"[', 'name'], track.trackName)
        self.assertEquals('btrack', track.suffix)
    def execute(cls, choices, galaxyFn=None, username=''):
        inGSuite = getGSuiteFromGalaxyTN(choices.gsuite)

        if choices.genome != inGSuite.genome:
            inGSuite.setGenomeOfAllTracks(choices.genome)

        registerGSuiteTrackClass(FileGSuiteTrack)

        outGSuite = GSuite()

        for track in inGSuite.allTracks():
            origGalaxyTN = ETM.createGalaxyTnFromExternalTn(track.trackName)

            uri = FileGSuiteTrack.generateURI(
                path=ETM.extractFnFromGalaxyTN(origGalaxyTN),
                suffix=ETM.extractFileSuffixFromGalaxyTN(origGalaxyTN))
            newTrack = GSuiteTrack(uri,
                                   title=track.title,
                                   trackType=track.trackType,
                                   genome=track.genome,
                                   attributes=track.attributes)
            outGSuite.addTrack(newTrack)

        GSuiteComposer.composeToFile(outGSuite, galaxyFn)