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)
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)
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')
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')
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)