def runOperation(self): """ Run the selected operation. :return: None """ logging.debug(self._args) logging.debug("Loaded operations: {0}".format( self._importedOperations.keys())) operation = self._args.which if operation == 'list': self._listTracksInGTrackCore(self._args.genome) elif operation == 'import': genome = Genome.createFromJson(self._args.genome) importTrackIntoGTrack(self._args.name, genome, self._args.path) elif operation == 'export': #genome = Genome.createFromJson(self._args.genome) # fileFormatName = GTrack exportFile(outFileName=self._args.outName, genome=self._args.genome, trackName=self._args.name, fileFormatName='GTrack', allowOverlaps=self._args.allowOverlaps) else: assert operation in self._importedOperations.keys() logging.debug("Running operation: {0}".format(operation)) oper = self._importedOperations[operation] # check args? a = oper.factory(self._args) res = a.calculate() if a.resultIsTrack: pass if res is not None and isinstance(res, TrackContents): # Save result if any # TODO add support for custom name.. name = a.createTrackName() logging.debug("Importing track. Name: {0}".format(name)) print(name) for k,v in res.trackViews.iteritems(): s = v.startsAsNumpyArray() if s is not None and len(s) > 0: print(s) print(type(s)) print(v.endsAsNumpyArray()) print(type(v.endsAsNumpyArray())) print(v.idsAsNumpyArray()) print(type(v.idsAsNumpyArray())) print(v.edgesAsNumpyArray()) print(type(v.edgesAsNumpyArray())) print(v.weightsAsNumpyArray()) print(type(v.weightsAsNumpyArray())) importTrackFromTrackContents(trackContents=res, trackName=name)