Return the boundaries for the largest loop segment.
        
        This is just meant to be a reasonable default for various selectors and 
        filters to work with, in the case that more than one loop is being 
        modeled.  If you want to be more precise, you'll have to override the 
        selectors and filters in question.

def largest_loop(self):
        """
        Return the boundaries for the largest loop segment.
        
        This is just meant to be a reasonable default for various selectors and 
        filters to work with, in the case that more than one loop is being 
        modeled.  If you want to be more precise, you'll have to override the 
        selectors and filters in question.
        """
        from collections import namedtuple
        Loop = namedtuple('Loop', 'start end')
        largest_segment = sorted(
                self.loop_segments,
                key=lambda x: abs(x[1] - x[0]),
        )[-1]
        return Loop(*largest_segment)