def run(self):
        cmd = self.args.subCommand
        try:
            if cmd == 'merge':
                cmpH5Merge(self.args.inCmps, self.args.outCmp, self.args.referencesFile)

            elif cmd == 'sort':
                cmpH5Sort(self.args.inCmp, self.args.outCmp, self.args.tmpdir,
                          deep = self.args.deepsort,
                          useNative = not self.args.usePythonIndexer,
                          inPlace = self.args.inPlace)

            elif cmd == 'select':
                cmpH5Select(self.args.inCmp, self.args.outCmp,
                            idxs = self.args.idxs, whereStr = self.args.where,
                            groupByStr = self.args.groupBy,
                            groupByCsv = self.args.groupByCsv,
                            outDir = self.args.outDir)

            elif cmd == 'stats':
                cmpH5Stats(self.args.inCmp, 
                           whatStr = self.args.what, 
                           whereStr = self.args.where,
                           groupByStr = self.args.groupBy, 
                           sortByStr = self.args.sortBy,
                           limit     = self.args.limit,
                           outFile =  self.args.outCsv)

            elif cmd == 'listMetrics':
                print '--- Metrics:'
                print "\t\n".join(DocumentedMetric.list())
                print '\n--- Statistics:'
                print "\t\n".join(DocumentedStatistic.list())

            elif cmd == 'equal':
                ret = cmpH5Equal(self.args.inCmp1, self.args.inCmp2)
                if not ret[0]:
                    print >> sys.stderr, ret[1]
                    return 1
                else:
                    return 0

            elif cmd == 'summarize':
                for inCmp in self.args.inCmps:
                    print "".join(["-"] * 40)
                    print cmpH5Summarize(inCmp)

            elif cmd == 'validate':
                if cmpH5Validate(self.args.inCmp):
                    return 0
                else:
                    return 1
            else:
                raise PBH5ToolsException("", "Unkown command passed to cmph5tools.py:" +
                                         self.args.subName)
            return 0

        except PBH5ToolsException as pbe:
            logging.exception(pbe)
            return 1
    def test_basic(self):
        inputFiles = [_CMP_H5]
        outputFile = self._getTempFile(suffix="_merge_basic.cmp.h5")
        cmpH5Merge(inputFiles, outputFile)

        n = _getNAlignments(outputFile)
        correctNAlignments = 2764
        self.assertEqual(n, correctNAlignments)
    def test_basic(self):
        inputFiles = [_CMP_H5]
        outputFile = self._getTempFile(suffix="_merge_basic.cmp.h5")
        cmpH5Merge(inputFiles, outputFile)

        n = _getNAlignments(outputFile)
        correctNAlignments = 2764
        self.assertEqual(n, correctNAlignments)
Exemple #4
0
    def run(self):
        cmd = self.args.subCommand
        try:
            if cmd == 'merge':
                cmpH5Merge(self.args.inCmps, self.args.outCmp,
                           self.args.referencesFile)

            elif cmd == 'sort':
                cmpH5Sort(self.args.inCmp,
                          self.args.outCmp,
                          self.args.tmpdir,
                          deep=self.args.deepsort,
                          useNative=not self.args.usePythonIndexer,
                          inPlace=self.args.inPlace)

            elif cmd == 'select':
                cmpH5Select(self.args.inCmp,
                            self.args.outCmp,
                            idxs=self.args.idxs,
                            whereStr=self.args.where,
                            groupByStr=self.args.groupBy,
                            groupByCsv=self.args.groupByCsv,
                            outDir=self.args.outDir)

            elif cmd == 'stats':
                cmpH5Stats(self.args.inCmp,
                           whatStr=self.args.what,
                           whereStr=self.args.where,
                           groupByStr=self.args.groupBy,
                           sortByStr=self.args.sortBy,
                           limit=self.args.limit,
                           outFile=self.args.outCsv)

            elif cmd == 'listMetrics':
                print '--- Metrics:'
                print "\t\n".join(DocumentedMetric.list())
                print '\n--- Statistics:'
                print "\t\n".join(DocumentedStatistic.list())

            elif cmd == 'equal':
                ret = cmpH5Equal(self.args.inCmp1, self.args.inCmp2)
                if not ret[0]:
                    print >> sys.stderr, ret[1]
                    return 1
                else:
                    return 0

            elif cmd == 'summarize':
                for inCmp in self.args.inCmps:
                    print "".join(["-"] * 40)
                    print cmpH5Summarize(inCmp)

            elif cmd == 'validate':
                if cmpH5Validate(self.args.inCmp):
                    return 0
                else:
                    return 1
            else:
                raise PBH5ToolsException(
                    "", "Unkown command passed to cmph5tools.py:" +
                    self.args.subName)
            return 0

        except PBH5ToolsException as pbe:
            logging.exception(pbe)
            return 1
 def test_output_file_in_inputs(self):
     inputFiles = [_CMP_H5]
     outputFile = _CMP_H5
     with self.assertRaises(ValueError) as e:
         cmpH5Merge(inputFiles, outputFile)
 def test_output_file_in_inputs(self):
     inputFiles = [_CMP_H5]
     outputFile = _CMP_H5
     with self.assertRaises(ValueError) as e:
         cmpH5Merge(inputFiles, outputFile)