class Test_ForQuiverService(unittest.TestCase): """Test pbtools.pbalign.forquiverservice.forquiver.""" def setUp(self): self.rootDir = "/mnt/secondary-siv/secondarytest/" + \ "testdata/BlasrTestData/pbalign" self.inCmpFile = path.join(self.rootDir, "data/testforquiver.cmp.h5") #self.outCmpFile = path.join(self.rootDir, "out/testforquiver.cmp.h5") self.outCmpFile = mkstemp(suffix=".cmp.h5")[1] copyfile(self.inCmpFile, self.outCmpFile) self.basFile = path.join(self.rootDir, "data/lambda_bax.fofn") refpath = "/mnt/secondary/Smrtanalysis/opt/" + \ "smrtanalysis/common/references/lambda/" self.fileNames = PBAlignFiles() self.fileNames.SetInOutFiles(self.basFile, refpath, self.outCmpFile, None, None) self.options = Opt() self.obj = ForQuiverService(self.fileNames, self.options) def tearDown(self): remove(self.outCmpFile) def test_run(self): """Test ForQuiverService.__init__().""" self.obj.run()
def setUp(self): self.rootDir = "/mnt/secondary-siv/secondarytest/" + \ "testdata/BlasrTestData/pbalign" self.inCmpFile = path.join(self.rootDir, "data/testforquiver.cmp.h5") #self.outCmpFile = path.join(self.rootDir, "out/testforquiver.cmp.h5") self.outCmpFile = mkstemp(suffix=".cmp.h5")[1] copyfile(self.inCmpFile, self.outCmpFile) self.basFile = path.join(self.rootDir, "data/lambda_bax.fofn") refpath = "/mnt/secondary/Smrtanalysis/opt/" + \ "smrtanalysis/common/references/lambda/" self.fileNames = PBAlignFiles() self.fileNames.SetInOutFiles(self.basFile, refpath, self.outCmpFile, None, None) self.options = Opt() self.obj = ForQuiverService(self.fileNames, self.options)
def run(self): """ The main function, it is called by PBToolRunner.start(). """ startTime = time.time() logging.info("pbalign version: {version}".format(version=__VERSION__)) logging.debug("Original arguments: " + str(self._argumentList)) # Create an AlignService by algorithm name. self._alnService = self._createAlignService(self.args.algorithm, self.args, self.fileNames, self._tempFileManager) # Make sane. self._makeSane(self.args, self.fileNames) # Run align service. try: self._alnService.run() except RuntimeError: return 1 # Create a temporary filtered SAM file as output for FilterService. self.fileNames.filteredSam = self._tempFileManager.\ RegisterNewTmpFile(suffix=".sam") # Call filter service. self._filterService = FilterService(self.fileNames.alignerSamOut, self.fileNames.targetFileName, self.fileNames.filteredSam, self._alnService.name, self._alnService.scoreSign, self.args, self.fileNames.adapterGffFileName) try: self._filterService.run() except RuntimeError: return 1 # Output all hits either in SAM or CMP.H5. try: useSmrtTitle = False if (self.args.algorithm != "blasr" or self.fileNames.inputFileFormat == FILE_FORMATS.FASTA): useSmrtTitle = True self._output( self.fileNames.filteredSam, self.fileNames.targetFileName, self.fileNames.outputFileName, self.args.readType, useSmrtTitle) except RuntimeError: return 1 # Call post service for quiver. if self.args.forQuiver: postService = ForQuiverService(self.fileNames, self.args) try: postService.run() except RuntimeError: return 1 # Delete temporay files anyway to make self._cleanUp(False if (hasattr(self.args, "keepTmpFiles") and self.args.keepTmpFiles is True) else True) endTime = time.time() logging.info("Total time: {:.2f} s.".format(float(endTime - startTime))) return 0