diff --git a/deconvolution/d2_graph.py b/deconvolution/d2_graph.py index d22248f2262b45972606a719a871c8d2f27ed699..a6a13cc68a7d5c69a83e680edb3dcafa88840711 100644 --- a/deconvolution/d2_graph.py +++ b/deconvolution/d2_graph.py @@ -165,6 +165,10 @@ class D2Graph(object): # Find dominated for dmer, dg_list in self.index.items(): undominated = list_domination_filter(dg_list) + # if len(undominated) > 1: + # print(dmer) + # print("\n".join([str(x) for x in undominated])) + # print() # Register dominated if len(dg_list) != len(undominated): @@ -182,11 +186,11 @@ class D2Graph(object): # Remove dominated in index removable_dmers = [] - for dmer, indexed_list in self.index.items(): + for dmer in self.index: for r_dg in to_remove: - if r_dg in indexed_list: - indexed_list.remove(r_dg) - if len(indexed_list) == 0: + if r_dg in self.index[dmer]: + self.index[dmer] = list(filter(lambda x: x!=r_dg, self.index[dmer])) + if len(self.index[dmer]) == 0: removable_dmers.append(dmer) # Remove empty dmers diff --git a/tests/d2_graph_test.py b/tests/d2_graph_test.py index a0f3099e1f034815f5d4ec8cb522673c2ba74d26..21bda74e570148477f7ea6ee4c2d5107eb25c2d0 100644 --- a/tests/d2_graph_test.py +++ b/tests/d2_graph_test.py @@ -46,11 +46,13 @@ class TestD2Graph(unittest.TestCase): # Test index awaited_index_size = comb(2*d+1, index_k) + (size - (2*d+1)) * comb(2*d, index_k-1) - print(d, size, index_k, awaited_index_size) + # print(d, size, index_k, awaited_index_size) if len(d2.index) != awaited_index_size: dmers = [list(x) for x in d2.index] - dmers = [str(x) for x in dmers if len(x) != len(frozenset(x))] - print("\n".join(dmers)) + dmers = [x for x in dmers if len(x) != len(frozenset(x))] + + dmers = [str(x) for x in dmers] + # print("\n".join(dmers)) self.assertEquals(awaited_index_size, len(d2.index)) d2_nx = d2.nx_graph