def _create_gn(seqScrDict, args, seqLength, resultsQueue, repertoire): # Get a reference to the bit manipulator bitManip = BitManipFactory.getBitSeqManip(args.moleculeType, seqLength, args.useIndels, args.use_reverse_complements) # Get the sequences for the given repertoire sequences = seqScrDict.keys() # Get the list of scores for the given repertoire scores = [seqScrDict[sequence] for sequence in sequences] # Create a network builder object netBuilder = NetworkBuilder(bitManip) # Create the genotype network network = netBuilder.createGenoNet(repertoire, sequences, scores) # Get the number of components in the network numComponents = len(netBuilder.getComponents(network)) # If there are more than one components, if numComponents > 1: # Get the giant component giant = netBuilder.getGiantComponent(network) # Set 'name' attribute for giant giant["name"] = repertoire + "_dominant" else: # The network and giant component are the same giant = network # Create a tuple in which to put the results netTuple = (repertoire, (network, giant)) # Add the created network objects to the shared queue resultsQueue.put(netTuple) # Close the queue for this process resultsQueue.close()
def _bit_manipulator(self): return BitManipFactory.getBitSeqManip(self.cmdArgs.moleculeType, self.seqLength, self.cmdArgs.useIndels, self.cmdArgs.use_reverse_complements)