Esempio n. 1
0
 def __init__(self,
              args=None,
              argumentList=(),
              output_dataset_type=AlignmentSet):
     """Initialize a PBAlignRunner object.
        argumentList is a list of arguments, such as:
        ['--debug', '--maxHits', '10', 'in.fasta', 'ref.fasta', 'out.sam']
     """
     desc = "Utilities for aligning PacBio reads to reference sequences."
     if args is None:  # FIXME unit testing hack
         args = get_contract_parser().arg_parser.parser.parse_args(
             argumentList)
     self.args = args
     # args.verbosity is computed by counting # of 'v's in '-vv...'.
     # However in parseOptions, arguments are parsed twice to import config
     # options and then overwrite them with argumentList (e.g. command-line)
     # options.
     #self.args.verbosity = 1 if (self.args.verbosity is None) else \
     #    (int(self.args.verbosity) / 2 + 1)
     super(PBAlignRunner, self).__init__(desc)
     self._output_dataset_type = output_dataset_type
     self._alnService = None
     self._filterService = None
     self.fileNames = PBAlignFiles()
     self._tempFileManager = TempFileManager()
Esempio n. 2
0
    def test_init(self):
        """Test TempFileManager all functions."""
        t = TempFileManager()
        t.SetRootDir("/scratch")

        newFN = t.RegisterNewTmpFile()
        self.assertTrue(path.isfile(newFN))

        existingDir = t.RegisterExistingTmpFile("/tmp", isDir=True)
        self.assertTrue(path.isdir(existingDir))

        with self.assertRaises(IOError) as cm:
            t.RegisterExistingTmpFile("filethatdoesnotexist")

        newDN = t.RegisterNewTmpFile(isDir=True)
        self.assertTrue(path.isdir(newDN))
        self.assertTrue(t._isRegistered(newDN))

        newTxt = t.RegisterNewTmpFile(suffix=".txt")
        self.assertTrue(newTxt.endswith(".txt"))

        t.SetRootDir("~/tmp/")

        t.CleanUp()
        self.assertFalse(path.exists(newFN))
        self.assertFalse(path.exists(newDN))
        self.assertEqual(t.fileDB, [])
        self.assertEqual(t.dirDB, [])
Esempio n. 3
0
    def __init__(self, options, fileNames, tempFileManager=None):
        """Initialize an AlignSerivce object.
            Need to resolve options specified within algorithmOptions;
                    patch default options if not specified by the user
                    inherit or initialize a tempory file manager
            Input:
                options        : options parsed from (a list of arguments and
                                 a config file if --configFile is specified).
                fileNames      : an object of PBAlignFiles
                tempFileManager: a temporary file manager. If it is None,
                                 create a new temporary file manager.
        """
        self._options = options

        # Verify and assign input & output files.
        self._fileNames = fileNames
        self._fileNames.SetInOutFiles(self._options.inputFileName,
                                      self._options.referencePath,
                                      self._options.outputFileName,
                                      self._options.regionTable,
                                      self._options.pulseFile)

        # Resolve options specified within --algorithmOptions with
        # options parsed from the argument list (e.g. the command-line)
        # or a config file.
        self._options = self._resolveAlgorithmOptions(self._options,
                                                      self._fileNames)

        # Patch PBalign default options if they havn't been specified yet.
        self._options = importDefaultOptions(self._options)[0]

        if tempFileManager is None:
            self._tempFileManager = TempFileManager(self._options.tmpDir)
        else:
            self._tempFileManager = tempFileManager
            self._tempFileManager.SetRootDir(self._options.tmpDir)
        # self.args is finalized.
        logging.debug("Parsed arguments considering configFile and " +
                      "algorithmOptions: " + str(self._options))