INNER CODE UNIT · Python
intervals
cbg-ethz/V-pipe · workflow/scripts/alignmentIntervals.py:160
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]
if interval[0] <= last[1]:
upper_bound = max(last[1], interval[1])
intervals_merged[-1] = (last[0], upper_bound)
else:
intervals_merged.append(interval)
return intervals_merged