@@ -136,7 +136,7 @@ def __init__(
136136 self .load_fragments (fragments_pointer )
137137
138138 # Initialize metrics
139- util .mkdir (output_dir , delete = True )
139+ util .mkdir (output_dir )
140140 self .init_writers ()
141141 self .merge_sites = list ()
142142
@@ -589,7 +589,7 @@ def is_fragment_merge(self, key, label, kdtree):
589589 else :
590590 segment_id = util .get_segment_id (fragment_graph .filename )
591591 self .merged_labels .add ((key , segment_id , - 1 ))
592- print (f"Skipping { segment_id } - run_length={ fragment_graph .run_length } " )
592+ print (f"Skipping { fragment_graph . filename } - run_length={ fragment_graph .run_length } " )
593593
594594 def find_merge_site (self , key , kdtree , fragment_graph , source , visited ):
595595 for _ , node in nx .dfs_edges (fragment_graph , source = source ):
@@ -668,21 +668,24 @@ def adjust_metrics(self, key):
668668 """
669669 visited = set ()
670670 for label in self .preexisting_merges :
671- label = self .label_handler .mapping [label ]
672- if label in self .graphs [key ].get_labels ():
673- if label not in visited and label != 0 :
674- # Get component with label
675- nodes = self .graphs [key ].nodes_with_label (label )
676- root = util .sample_once (list (nodes ))
677-
678- # Adjust metrics
679- rl = self .graphs [key ].run_length_from (root )
680- self .graphs [key ].run_length -= np .sum (rl )
681- self .graphs [key ].graph ["n_edges" ] -= len (nodes ) - 1
682-
683- # Update graph
684- self .graphs [key ].remove_nodes_from (nodes )
685- visited .add (label )
671+ try :
672+ label = self .label_handler .mapping [label ]
673+ if label in self .graphs [key ].get_labels ():
674+ if label not in visited and label != 0 :
675+ # Get component with label
676+ nodes = self .graphs [key ].nodes_with_label (label )
677+ root = util .sample_once (list (nodes ))
678+
679+ # Adjust metrics
680+ rl = self .graphs [key ].run_length_from (root )
681+ self .graphs [key ].run_length -= np .sum (rl )
682+ self .graphs [key ].graph ["n_edges" ] -= len (nodes ) - 1
683+
684+ # Update graph
685+ self .graphs [key ].remove_nodes_from (nodes )
686+ visited .add (label )
687+ except :
688+ pass
686689
687690 def find_label_intersections (self ):
688691 """
@@ -756,7 +759,8 @@ def quantify_merges(self):
756759
757760 """
758761 for key in self .graphs :
759- p = self .n_merged_edges [key ] / self .graphs [key ].graph ["n_edges" ]
762+ n_edges = max (self .graphs [key ].graph ["n_edges" ], 1 )
763+ p = self .n_merged_edges [key ] / n_edges
760764 self .metrics .loc [key , "% Merged" ] = 100 * p
761765
762766 # -- Compute Metrics --
0 commit comments