Subtract the BED elements in es from self.

    :param es: a list of BED elements (or anything with chrom, start, end)
    :return: a list of BED elements which represent what is left of
             self after the subtraction. This might be an empty list.

def subtract(self, es):
    """
    Subtract the BED elements in es from self.

    :param es: a list of BED elements (or anything with chrom, start, end)
    :return: a list of BED elements which represent what is left of
             self after the subtraction. This might be an empty list.
    """
    workingSet = [self]
    for e in es:
      newWorkingSet = []
      for w in workingSet:
        newWorkingSet += w.__singleIntersect(e)
      workingSet = newWorkingSet
    return workingSet