INNER CODE UNIT · Python
merge_regions
cbg-ethz/V-pipe · workflow/scripts/alignmentIntervals.py:153
def merge_regions(intervals_new, intervals_old):
"""
Merge intervals by:
(1) sorting the intervals in decreasing order, and
(2) iterate through intervals, comparing the current interval with the
last one. If the interval overlap, merge both intervals into one
"""
intervals = intervals_old + intervals_new
intervals_sorted = sorted(intervals, key=lambda tup: tup[0])
intervals_merged = []
for interval in intervals_sorted:
if not intervals_merged:
intervals_merged.append(interval)
else:
last = intervals_merged[-1]
# Test for overlap between current interval and the last one.
# We know that last[0] <= interval[0]