Beispiel #1
0
    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)