Interval set module documentation¶
Functions to manage and convert intervals set.
An interval is a tuple (begin, end). An interval of 1 element where eID is the element ID is formated (eID, eID).
An interval set is a list of non overlapping intervals.
-
interval_set.interval_set.
aggregate
(itvs)[source]¶ Aggregate NOT overlapping intervals (intersect must be empty) to remove gaps.
>>> aggregate([]) [] >>> aggregate([(1, 2), (3, 4)]) [(1, 4)] >>> aggregate([(3, 4), (1, 2)]) [(1, 4)]
-
interval_set.interval_set.
difference
(itvs_base, itvs2)[source]¶ returns the difference between an interval set and an other
>>> difference([], [(1, 1)]) [] >>> difference([(1, 1), (3, 4)], [(1, 2), (4, 7)]) [(3, 3)] >>> difference([(1, 12)], [(1, 2), (4, 7)]) [(3, 3), (8, 12)]
-
interval_set.interval_set.
equals
(itvs1, itvs2)[source]¶ Check for equality between two interval sets
TODO: this version is working bu it is not optimized...
>>> equals([],[]) True >>> equals([(1, 1)],[(1, 2)]) False >>> equals([(1, 10)],[]) False >>> equals([(1, 2), (3, 4)], [(1, 4)]) True >>> equals([(5, 100), (3, 4)], [(3, 4), (5, 100)]) True
-
interval_set.interval_set.
id_list_to_iterval_set
(ids)[source]¶ Convert list of ID (int) to an intervals set
-
interval_set.interval_set.
intersection
(itvs1, itvs2)[source]¶ Returns an interval set that is an intersection of itvs1 and itvs2.
>>> intersection([(1, 2), (4, 5)], [(1, 3), (5, 7)]) [(1, 2), (5, 5)] >>> intersection([(2, 3), (5, 7)], [(1, 1), (4, 4)]) [] >>> intersection([(3, 7)], [(2, 8)]) [(3, 7)] >>> intersection([(3, 7)], [(2, 6)]) [(3, 6)]
-
interval_set.interval_set.
interval_set_to_id_list
(itvs)[source]¶ Convert an interval set to a list of ID (int)
-
interval_set.interval_set.
interval_set_to_set
(intervals)[source]¶ Convert interval set to python set
>>> interval_set_to_set([]) set() >>> interval_set_to_set([(1, 1), (3, 4)]) {1, 3, 4}
-
interval_set.interval_set.
interval_set_to_string
(intervals, separator=' ')[source]¶ Convert interval set to strings:
>>> interval_set_to_string([(1, 2), (5, 5), (10, 50)]) '1-2 5 10-50'
-
interval_set.interval_set.
set_to_interval_set
(s)[source]¶ Convert python set to interval set
>>> set_to_interval_set(set()) [] >>> set_to_interval_set({1, 2, 5, 7, 9, 10, 11}) [(1, 2), (5, 5), (7, 7), (9, 11)]
-
interval_set.interval_set.
string_to_interval_set
(s, separator=' ')[source]¶ Transforms a string interval set representation to interval set
>>> string_to_interval_set("1 2 3 7-9 13") [(1, 1), (2, 2), (3, 3), (7, 9), (13, 13)] >>> string_to_interval_set("") [] >>> string_to_interval_set("(2,3)") Traceback (most recent call last): ... ValueError: Bad interval format. Parsed string is: (2,3)