Skip to content

Commit 612117a

Browse files
anna-grimanna-grim
andauthored
Run updates (#130)
* bug: fixed sorting issue and p_merged * results updates --------- Co-authored-by: anna-grim <[email protected]>
1 parent e21e29c commit 612117a

File tree

1 file changed

+21
-18
lines changed

1 file changed

+21
-18
lines changed

src/segmentation_skeleton_metrics/skeleton_metric.py

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -683,8 +683,7 @@ def process_merge_sites(self):
683683

684684
# Save results
685685
path = os.path.join(self.output_dir, "merge_sites.csv")
686-
self.merge_sites.to_csv(path, index=True)
687-
686+
self.merge_sites.to_csv(path, index=True)
688687

689688
def adjust_metrics(self, key):
690689
"""
@@ -706,21 +705,24 @@ def adjust_metrics(self, key):
706705
"""
707706
visited = set()
708707
for label in self.preexisting_merges:
709-
label = self.label_handler.mapping[label]
710-
if label in self.graphs[key].get_labels():
711-
if label not in visited and label != 0:
712-
# Get component with label
713-
nodes = self.graphs[key].nodes_with_label(label)
714-
root = util.sample_once(list(nodes))
715-
716-
# Adjust metrics
717-
rl = self.graphs[key].run_length_from(root)
718-
self.graphs[key].run_length -= np.sum(rl)
719-
self.graphs[key].graph["n_edges"] -= len(nodes) - 1
720-
721-
# Update graph
722-
self.graphs[key].remove_nodes_from(nodes)
723-
visited.add(label)
708+
try:
709+
label = self.label_handler.mapping[label]
710+
if label in self.graphs[key].get_labels():
711+
if label not in visited and label != 0:
712+
# Get component with label
713+
nodes = self.graphs[key].nodes_with_label(label)
714+
root = util.sample_once(list(nodes))
715+
716+
# Adjust metrics
717+
rl = self.graphs[key].run_length_from(root)
718+
self.graphs[key].run_length -= np.sum(rl)
719+
self.graphs[key].graph["n_edges"] -= len(nodes) - 1
720+
721+
# Update graph
722+
self.graphs[key].remove_nodes_from(nodes)
723+
visited.add(label)
724+
except:
725+
pass
724726

725727
def find_label_intersections(self):
726728
"""
@@ -794,7 +796,8 @@ def quantify_merges(self):
794796
795797
"""
796798
for key in self.graphs:
797-
p = self.n_merged_edges[key] / self.graphs[key].graph["n_edges"]
799+
n_edges = max(self.graphs[key].graph["n_edges"], 1)
800+
p = self.n_merged_edges[key] / n_edges
798801
self.metrics.loc[key, "% Merged"] = round(100 * p, 2)
799802

800803
# -- Compute Metrics --

0 commit comments

Comments
 (0)