Example #1
0
    def parallel_num_iterator(self, num_proc=None):
        nerr_tups = list(self._nsub_ndel_nins_iterator())
        def dna_nums_given_nerr_tup(nerr_tup):
            nsub, ndel, nins = nerr_tup
            return [seqtools.dna2num(seq)
                    for seq in self._freediv_subsphere_given_counts(nsub, ndel, nins)]

        pl = ProcessPool(num_proc)
        results = pl.map(dna_nums_given_nerr_tup, nerr_tups)
        for num in itertools.chain(*results):
            yield num
        pl._clear()
        del pl