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)
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
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 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