def __processBin(self, outDir, tableOut, hmmerOut, markerFile, bKeepAlignment, bNucORFs, bCalledGenes, queueIn, queueOut): """Thread safe bin processing.""" markerSetParser = MarkerSetParser(self.threadsPerSearch) while True: binFile = queueIn.get(block=True, timeout=None) if binFile == None: break binId = binIdFromFilename(binFile) binDir = os.path.join(outDir, 'bins', binId) makeSurePathExists(binDir) # run Prodigal if not bCalledGenes: prodigal = ProdigalRunner(binDir) if not prodigal.areORFsCalled(bNucORFs): prodigal.run(binFile, bNucORFs) aaGeneFile = prodigal.aaGeneFile else: aaGeneFile = binFile shutil.copyfile( aaGeneFile, os.path.join(binDir, DefaultValues.PRODIGAL_AA)) # extract HMMs into temporary file hmmModelFile = markerSetParser.createHmmModelFile( binId, markerFile) # run HMMER hmmer = HMMERRunner() tableOutPath = os.path.join(binDir, tableOut) hmmerOutPath = os.path.join(binDir, hmmerOut) keepAlignStr = '' if not bKeepAlignment: keepAlignStr = '--noali' hmmer.search( hmmModelFile, aaGeneFile, tableOutPath, hmmerOutPath, '--cpu ' + str(self.threadsPerSearch) + ' --notextw -E 0.1 --domE 0.1 ' + keepAlignStr, bKeepAlignment) queueOut.put((binId, hmmModelFile))
def __processBin(self, outDir, tableOut, hmmerOut, markerFile, bKeepAlignment, bNucORFs, bCalledGenes, queueIn, queueOut): """Thread safe bin processing.""" markerSetParser = MarkerSetParser(self.threadsPerSearch) while True: binFile = queueIn.get(block=True, timeout=None) if binFile == None: break binId = binIdFromFilename(binFile) binDir = os.path.join(outDir, 'bins', binId) makeSurePathExists(binDir) # run Prodigal if not bCalledGenes: prodigal = ProdigalRunner(binDir) if not prodigal.areORFsCalled(bNucORFs): prodigal.run(binFile, bNucORFs) aaGeneFile = prodigal.aaGeneFile else: aaGeneFile = binFile shutil.copyfile(aaGeneFile, os.path.join(binDir, DefaultValues.PRODIGAL_AA)) # extract HMMs into temporary file hmmModelFile = markerSetParser.createHmmModelFile(binId, markerFile) # run HMMER hmmer = HMMERRunner() tableOutPath = os.path.join(binDir, tableOut) hmmerOutPath = os.path.join(binDir, hmmerOut) keepAlignStr = '' if not bKeepAlignment: keepAlignStr = '--noali' hmmer.search(hmmModelFile, aaGeneFile, tableOutPath, hmmerOutPath, '--cpu ' + str(self.threadsPerSearch) + ' --notextw -E 0.1 --domE 0.1 ' + keepAlignStr, bKeepAlignment) queueOut.put((binId, hmmModelFile))