diff --git a/src/Global_Var.py b/src/Global_Var.py
index 1bb137573ee5b83c248f61258ad4738622ce8b1b..ce8d739856f5660c0e50e2576f6bed3570d7c9cc 100755
--- a/src/Global_Var.py
+++ b/src/Global_Var.py
@@ -48,7 +48,7 @@ class Global_Var():
         self.Max = 0
 
         self.LayersNeuronsInfo = []
-        self.NeuronsSize = None
+        self.NeuronsSize = {"x":0,"y":0}
         self.Layer_Neuron = None
         self.NeuronsNbr = 0
         self.LayersNbr = 0
@@ -139,7 +139,6 @@ class Global_Var():
             col.create_index([("C", 1)])
             col.create_index([("L", 1)])
             col.create_index([("To", 1)])
-            col.create_index([("index", 1)])
             print("Synapses index done")
 
     def getLabelTime(self, step, value):
diff --git a/src/Modules/General/callbacks.py b/src/Modules/General/callbacks.py
index aec930b5aa0c8d91360f602eaa5e102c414f5f63..4aa190e2689ff57baf385cd0a58a90e1b3293ca2 100755
--- a/src/Modules/General/callbacks.py
+++ b/src/Modules/General/callbacks.py
@@ -761,7 +761,7 @@ class callbacks(callbacksOp):
                             if (str(l["Label"]) != str(a["Input"])):
                                 loss += 1
 
-                return round((loss*100) / len(spikes), 2)
+                return min(100,round((loss*100) / len(spikes), 2))
             # ---------------------------------------------------------------------
 
         except Exception as e:
diff --git a/src/Modules/General/spark.py b/src/Modules/General/spark.py
index fb2e3cee6af842e7047c40c90cee43eb3e0f7e29..94379361f6569f56fd24d498aaa1c8ed50954c04 100755
--- a/src/Modules/General/spark.py
+++ b/src/Modules/General/spark.py
@@ -44,12 +44,13 @@ class spark(sparkOp):
                         {"layer": l, "neuronNbr": int(LN[l])})
                     self.g.NeuronsNbr += int(LN[l])
                     self.g.LayersNbr += 1
-            
-            self.g.NeuronsSize = pymongo.collection.Collection(self.g.db, 'synapseWeight').find_one(sort=[("index.x", -1),("index.y", -1)])["index"]
+
+            #pymongo.collection.Collection(self.g.db, 'synapseWeight').find_one(sort=[("index.x", -1),("index.y", -1)])["index"]
 
             # get date & time of the simulation
             self.g.Date = data["T"]
             # calculate simulation time
+
             try:
                 M = 0
                 if ('spikes' in self.g.db.list_collection_names()):
@@ -67,7 +68,7 @@ class spark(sparkOp):
                         self.g.db, 'labels').find_one(sort=[("T", -1)])["T"])
                 else:
                     print("No labels")
-
+            
             except Exception as e:
                 print("MongoError:" + str(e))
                 pass
diff --git a/src/Modules/Synapse/spark.py b/src/Modules/Synapse/spark.py
index d577247e156c012a2e57901c407dccb145d8e6fb..557b1c992ab766f00f9af9fa410f36421b1684a3 100755
--- a/src/Modules/Synapse/spark.py
+++ b/src/Modules/Synapse/spark.py
@@ -51,12 +51,17 @@ class spark(sparkOp):
                 col.create_index([("T", 1)])
                 col.create_index([("_id.index", 1)])
                 col.create_index([("V", 1)])
-
-                # --------------------------------------------------------
+                
             else:
                 if(not self.DOCUMENT_NAME in self.g.db.list_collection_names()):
                     print(self.DOCUMENT_NAME, "not found")
                     self.g.modules = [module for module in self.g.modules if module != self.MODULE_NAME]
+                
+            # get dimensions for the heatmap
+            col = pymongo.collection.Collection(self.g.db, 'synapseWeightFinal')
+            globalSynapseWeights = pd.DataFrame(list(col.aggregate([{"$group": {"_id":None, "x":{"$max":"$_id.index.x"}, "y":{"$max":"$_id.index.y"}}}])))
+            self.g.NeuronsSize = {"x":globalSynapseWeights["x"].max(),"y":globalSynapseWeights["y"].max()}
+                
             print("done", self.MODULE_NAME)
 
         except Exception as e: