def interval_not_within_wiggle_room_intervals(intervals, interval, wiggle_room=0):
    """
    Same thing as interval_not_intersect_intervals but looks within wiggle_room bases to count a valid lack of
    intersection. Wiggle room can exist on either side.
    :param intervals: iterable of ChromosomeIntervals
    :param interval: one ChromosomeInterval
    :param wiggle_room: How many bases of wiggle are allowed. This number is for one side only, and so will be
        multiplied by 2.
    :return: boolean
    """
    try:
        separation = [sum(interval.symmetric_separation(target_interval)) for target_interval in intervals]
    except TypeError:
        return False
    return not any(x <= 2 * wiggle_room for x in separation)