def Worker_BlastScores(cmd_queue, seqsInfo, fileInfo, nProcesses, nToDo): while True: try: i, args = cmd_queue.get(True, 1) nDone = i - nProcesses + 1 if nDone >= 0 and divmod(nDone, 10 if nToDo <= 200 else 100 if nToDo <= 2000 else 1000)[1] == 0: util.PrintTime("Done %d of %d" % (nDone, nToDo)) B = BlastFileProcessor.GetBLAST6Scores(seqsInfo, fileInfo, *args, qExcludeSelfHits = False) matrices.DumpMatrix("Bit", B, fileInfo, args[0], args[1]) except Queue.Empty: return
def Worker_BlastScores(cmd_queue, seqsInfo, fileInfo, nProcesses, nToDo): while True: try: i, args = cmd_queue.get(True, 1) nDone = i - nProcesses + 1 if nDone >= 0 and divmod(nDone, 10 if nToDo <= 200 else 100 if nToDo <= 2000 else 1000)[1] == 0: util.PrintTime("Done %d of %d" % (nDone, nToDo)) B = BlastFileProcessor.GetBLAST6Scores(seqsInfo, fileInfo, *args, qExcludeSelfHits = False) with open(fileInfo.workingDir + "Bit%d_%d.pic" % args, 'wb') as outfile: pic.dump(B, outfile, protocol = util.picProtocol) except Queue.Empty: return
def Worker_OGMatrices_ReadBLASTAndUpdateDistances(cmd_queue, worker_status_queue, iWorker, ogMatrices, nGenes, seqsInfo, blastDir_list, ogsPerSpecies, qDoubleBlast): speciesToUse = seqsInfo.speciesToUse with np.errstate(divide='ignore'): while True: try: iiSp, sp1, nSeqs_sp1 = cmd_queue.get(True, 1) worker_status_queue.put(("start", iWorker, iiSp)) Bs = [BlastFileProcessor.GetBLAST6Scores(seqsInfo, blastDir_list, sp1, sp2, qExcludeSelfHits = False, qDoubleBlast=qDoubleBlast) for sp2 in speciesToUse] mins = np.ones((nSeqs_sp1, 1), dtype=np.float64)*9e99 maxes = np.zeros((nSeqs_sp1, 1), dtype=np.float64) for B in Bs: m0, m1 = lil_minmax(B) mins = np.minimum(mins, m0) maxes = np.maximum(maxes, m1) maxes_inv = 1./maxes for jjSp, B in enumerate(Bs): for og, m in zip(ogsPerSpecies, ogMatrices): for gi, i in og[iiSp]: for gj, j in og[jjSp]: m[i][j] = 0.5*max(B[gi.iSeq, gj.iSeq], mins[gi.iSeq]) * maxes_inv[gi.iSeq] worker_status_queue.put(("finish", iWorker, iiSp)) except Queue.Empty: worker_status_queue.put(("empty", iWorker, None)) return