def run(self, fileStore): sequenceFiles1 = [ fileStore.readGlobalFile(fileID) for fileID in self.sequenceFileIDs1 ] if self.blastOptions.gpuLastz == True: # wga-gpu has a 3G limit. self.blastOptions.chunkSize = 3000000000 chunks = runGetChunks( sequenceFiles=sequenceFiles1, chunksDir=getTempDirectory(rootDir=fileStore.getLocalTempDir()), chunkSize=self.blastOptions.chunkSize, overlapSize=self.blastOptions.overlapSize) if len(chunks) == 0: raise Exception( "no chunks produced for files: {} ".format(sequenceFiles1)) logger.info( "Broken up the sequence files into individual 'chunk' files") chunkIDs = [ fileStore.writeGlobalFile(chunk, cleanup=True) for chunk in chunks ] diagonalResultsID = self.addChild( MakeSelfBlasts(self.blastOptions, chunkIDs)).rv() offDiagonalResultsID = self.addChild( MakeOffDiagonalBlasts(self.blastOptions, chunkIDs)).rv() logger.debug("Collating the blasts after blasting all-against-all") return self.addFollowOn( CollateBlasts(self.blastOptions, [diagonalResultsID, offDiagonalResultsID])).rv()
def run(self, fileStore): sequenceFiles1 = [ fileStore.readGlobalFile(fileID) for fileID in self.sequenceFileIDs1 ] chunks = runGetChunks( sequenceFiles=sequenceFiles1, chunksDir=getTempDirectory(rootDir=fileStore.getLocalTempDir()), chunkSize=self.blastOptions.chunkSize, overlapSize=self.blastOptions.overlapSize) assert len(chunks) > 0 logger.info( "Broken up the sequence files into individual 'chunk' files") chunkIDs = [ fileStore.writeGlobalFile(chunk, cleanup=True) for chunk in chunks ] diagonalResultsID = self.addChild( MakeSelfBlasts(self.blastOptions, chunkIDs)).rv() offDiagonalResultsID = self.addChild( MakeOffDiagonalBlasts(self.blastOptions, chunkIDs)).rv() logger.debug("Collating the blasts after blasting all-against-all") return self.addFollowOn( CollateBlasts(self.blastOptions, [diagonalResultsID, offDiagonalResultsID])).rv()
def run(self, fileStore): sequenceFiles1 = [fileStore.readGlobalFile(fileID) for fileID in self.sequenceFileIDs1] chunks = runGetChunks(sequenceFiles=sequenceFiles1, chunksDir=getTempDirectory(rootDir=fileStore.getLocalTempDir()), chunkSize = self.blastOptions.chunkSize, overlapSize=self.blastOptions.overlapSize) assert len(chunks) > 0 logger.info("Broken up the sequence files into individual 'chunk' files") chunkIDs = [fileStore.writeGlobalFile(chunk, cleanup=True) for chunk in chunks] diagonalResultsID = self.addChild(MakeSelfBlasts(self.blastOptions, chunkIDs)).rv() offDiagonalResultsID = self.addChild(MakeOffDiagonalBlasts(self.blastOptions, chunkIDs)).rv() logger.debug("Collating the blasts after blasting all-against-all") return self.addFollowOn(CollateBlasts(self.blastOptions, [diagonalResultsID, offDiagonalResultsID])).rv()
def run(self, fileStore): logger.info("Chunk IDs: %s" % self.chunkIDs) #Avoid compression if just one chunk self.blastOptions.compressFiles = self.blastOptions.compressFiles and len(self.chunkIDs) > 2 resultsIDs = [] for i in range(len(self.chunkIDs)): resultsIDs.append(self.addChild(RunSelfBlast(self.blastOptions, self.chunkIDs[i])).rv()) logger.info("Made the list of self blasts") #Setup job to make all-against-all blasts logger.debug("Collating self blasts.") logger.info("Blast file IDs: %s" % resultsIDs) return self.addFollowOn(CollateBlasts(self.blastOptions, resultsIDs)).rv()
def run(self, fileStore): logger.info("Chunk IDs: %s" % self.chunkIDs) #Avoid compression if just one chunk self.blastOptions.compressFiles = self.blastOptions.compressFiles and len(self.chunkIDs) > 2 resultsIDs = [] for i in xrange(len(self.chunkIDs)): resultsIDs.append(self.addChild(RunSelfBlast(self.blastOptions, self.chunkIDs[i])).rv()) logger.info("Made the list of self blasts") #Setup job to make all-against-all blasts logger.debug("Collating self blasts.") logger.info("Blast file IDs: %s" % resultsIDs) return self.addFollowOn(CollateBlasts(self.blastOptions, resultsIDs)).rv()
def findOccupiedPorts(): """Attempt to find all currently taken TCP ports. Returns a set of ints, representing taken ports.""" netstatOutput = cactus_call(parameters=["netstat", "-tuplen"], check_output=True) ports = set() for line in netstatOutput.split("\n"): fields = line.split() if len(fields) != 9: # Header or other garbage line continue port = int(fields[3].split(':')[-1]) ports.add(port) logger.debug('Detected ports in use: %s' % repr(ports)) return ports