def test_recursive_merge(self):
     x = [(25646452, 25653625), (25650142, 25650525), (25650556,
        25651103),(25651121, 25652114), (25652132, 25652179),
        (25652288,25652586)]
     x.sort()
     expected = [(25646452,25653625)]
     results = recursive_merge_both(deque(x))
     self.assertEqual(results,expected)
Example #2
0
def merge_feats(feats):
    merge_same_feats = set(feats)
    feats = list(merge_same_feats)
    feats.sort()
    if len(feats) > 1:
        merge_overlapping_feats = recursive_merge_both(deque(feats))
        merge_overlapping_feats.sort()
        feats = merge_overlapping_feats

    return feats
Example #3
0
def merge_feats(feat):
    merge_same_feats = set(feat["locs"])
    feat["locs"] = list(merge_same_feats)
    feat["locs"].sort()
    if len(feat["locs"]) > 1:
        merge_overlapping_feats =recursive_merge_both(deque(feat["locs"]))
        merge_overlapping_feats.sort()
        feat["locs"] = merge_overlapping_feats
        locs_start = feat["locs"][0][0]
        locs_end = feat["locs"][-1][1]
        feat["start"] = heapq.nsmallest(1,[locs_start,feat["start"]])[0]
        feat["end"] = heapq.nlargest(1,[locs_end,feat["end"]])[0]
    return feat
Example #4
0
def merge_feats(feat):
    merge_same_feats = set(feat["locs"])
    feat["locs"] = list(merge_same_feats)
    feat["locs"].sort()
    if len(feat["locs"]) > 1:
        merge_overlapping_feats = recursive_merge_both(deque(feat["locs"]))
        merge_overlapping_feats.sort()
        feat["locs"] = merge_overlapping_feats
        locs_start = feat["locs"][0][0]
        locs_end = feat["locs"][-1][1]
        feat["start"] = heapq.nsmallest(1, [locs_start, feat["start"]])[0]
        feat["end"] = heapq.nlargest(1, [locs_end, feat["end"]])[0]
    return feat
 def test_unon(self):
     #x= [(5785295, 5787370), (5787723, 5788769), (5788850, 5788891),
     #        (5789359, 5797146), (5790143, 5792771), (5793155, 5793305)]
     x = [(1,2),(3,4),(5,7),(12,20),(13,24),(26,30)]
     y = recursive_merge_both(deque(x))
     print y