From 51f71fb9f6223fbb0053859523848e1a20fa18ba Mon Sep 17 00:00:00 2001
From: Yoann Dufresne <yoann.dufresne0@gmail.com>
Date: Thu, 2 Apr 2020 11:08:25 +0200
Subject: [PATCH] bugfix: empty clique don't bug anymore

---
 deconvolution/dgraph/CliqueDGFactory.py | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/deconvolution/dgraph/CliqueDGFactory.py b/deconvolution/dgraph/CliqueDGFactory.py
index ddbf0e9..5500b00 100644
--- a/deconvolution/dgraph/CliqueDGFactory.py
+++ b/deconvolution/dgraph/CliqueDGFactory.py
@@ -30,6 +30,13 @@ class CliqueDGFactory(AbstractDGFactory):
                     clq_per_node[node] = []
                 clq_per_node[node].append(idx)
 
+        # clq_per_node for nei can be empty because of minimum clique size
+        # So we add singleton cliques for those nodes
+        for node in subgraph.nodes:
+            if node not in clq_per_node:
+                cliques.append([node])
+                clq_per_node[node] = [len(cliques) - 1]
+
         # Pair cliques
         clq_pairs = set()
         for idx, clq in enumerate(cliques):
@@ -37,10 +44,6 @@ class CliqueDGFactory(AbstractDGFactory):
                 neighbors = list(subgraph.neighbors(node))
                 # Looks into the neighbors for clique pairing
                 for nei in neighbors:
-                    if nei not in clq_per_node:
-                        print("!!!!!!!!!!!!!!!")
-                        print(clq_per_node)
-                        print("!!!!!!!!!!!!!!!")
                     nei_clqs = clq_per_node[nei]
                     # Pair useful cliques
                     for nei_clq in nei_clqs:
-- 
GitLab