def get_piles(allgenes):
    from jcvi.utils.range import Range, range_piles

    ranges = [Range(a.seqid, a.start, a.end, 0, i) \
                    for i, a in enumerate(allgenes)]

    for pile in range_piles(ranges):
        yield [allgenes[x] for x in pile]
Before running uniq, we need to compute all the piles. The piles are a set
dataset/ETHPy150Open tanghaibao/jcvi/formats/gff.py/get_piles