<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def overlap(self, other, method='fraction'):
 """ Compute the overlap between this region and another. Optional methods are a symmetric measure of overlap based on the fraction of intersecting pixels relative to the union ('fraction'), or an assymmetric measure of overlap using precision and recall rates ('rates'). Parameters other : one region The region to compute overlap with. method : str Which estimate of overlap to compute, options are 'fraction' (symmetric) or 'rates' (asymmetric) """

        checkopts(method, ['fraction', 'rates'])

        coords_self = self.coordinates.tolist()
        coords_other = other.coordinates.tolist()

        intersection = [a for a in coords_self if a in coords_other]
        nhit = float(len(intersection))
        ntotal = float(len(set([tuple(x) for x in coords_self] + 
            [tuple(x) for x in coords_other])))

        if method == 'rates':
            recall = nhit / len(coords_self)
            precision = nhit / len(coords_other)
            return recall, precision

        if method == 'fraction':
            return nhit / float(ntotal)