Skip to content

Commit c6f4040

Browse files
anna-grimanna-grim
andauthored
Refactor optimize merge (#119)
* refactor: optimized merge detection * bug: removed subroutine * removed test tqdm * bug: close zip writer * refactor: metrics in pandas df * refactor: detect all sites * bug: empty merge list --------- Co-authored-by: anna-grim <[email protected]>
1 parent ed564ea commit c6f4040

File tree

1 file changed

+22
-21
lines changed

1 file changed

+22
-21
lines changed

src/segmentation_skeleton_metrics/skeleton_metric.py

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -611,28 +611,29 @@ def find_merge_site(self, key, kdtree, fragment_graph, source, visited):
611611
return visited
612612

613613
def process_merge_sites(self):
614-
# Remove duplicates
615-
idxs = set()
616-
pts = [s["World"] for s in self.merge_sites]
617-
for idx_1, idx_2 in KDTree(pts).query_pairs(30):
618-
idxs.add(idx_1)
619-
self.merge_sites = pd.DataFrame(self.merge_sites).drop(idxs)
620-
621-
# Save merge sites
622-
for i in range(len(self.merge_sites)):
623-
filename = f"merge-{i + 1}.swc"
624-
xyz = self.merge_sites.iloc[i]["World"]
625-
swc_util.to_zipped_point(self.merge_writer, filename, xyz)
626-
627-
# Update counter
628-
for key in self.graphs.keys():
629-
idx_mask = self.merge_sites["GroundTruth_ID"] == key
630-
self.metrics.loc[key, "# Merges"] = int(idx_mask.sum())
614+
if self.merge_sites:
615+
# Remove duplicates
616+
idxs = set()
617+
pts = [s["World"] for s in self.merge_sites]
618+
for idx_1, idx_2 in KDTree(pts).query_pairs(30):
619+
idxs.add(idx_1)
620+
self.merge_sites = pd.DataFrame(self.merge_sites).drop(idxs)
621+
622+
# Save merge sites
623+
for i in range(len(self.merge_sites)):
624+
filename = f"merge-{i + 1}.swc"
625+
xyz = self.merge_sites.iloc[i]["World"]
626+
swc_util.to_zipped_point(self.merge_writer, filename, xyz)
627+
628+
# Update counter
629+
for key in self.graphs.keys():
630+
idx_mask = self.merge_sites["GroundTruth_ID"] == key
631+
self.metrics.loc[key, "# Merges"] = int(idx_mask.sum())
631632

632-
# Save results
633-
path = os.path.join(self.output_dir, "merge_sites.csv")
634-
self.merge_sites.to_csv(path, index=False)
635-
self.merge_writer.close()
633+
# Save results
634+
path = os.path.join(self.output_dir, "merge_sites.csv")
635+
self.merge_sites.to_csv(path, index=False)
636+
self.merge_writer.close()
636637

637638
def adjust_metrics(self, key):
638639
"""

0 commit comments

Comments
 (0)