88import pandas as pd
99
1010from elf .evaluation import matching , symmetric_best_dice_score
11+ import elf .parallel as parallel
1112
1213
1314def evaluate (labels , vesicles ):
@@ -43,6 +44,13 @@ def evaluate_file(labels_path, seg_path, model_name, segment_key, anno_key, mask
4344 print ("Could not find label file for" , seg_path )
4445 print ("Skipping..." )
4546
47+ if "Otof_AVCN03_429C_WT_M" in seg_path :
48+ print ("Removing unlabeled cristae by mitos" , seg_path )
49+ # read mito labels
50+ mito_labels = open_file (labels_path )["raw_mitos_combined" ][1 ][:]
51+ mito_labels = parallel .label (mito_labels , block_shape = (128 , 256 , 256 ), verbose = True )
52+ seg [mito_labels != 1 ] = 0
53+
4654 # evaluate the match of ground truth and vesicles
4755 scores = evaluate (labels , seg )
4856
@@ -72,7 +80,7 @@ def evaluate_file(labels_path, seg_path, model_name, segment_key, anno_key, mask
7280
7381
7482def evaluate_folder (labels_path , segmentation_path , model_name , segment_key ,
75- anno_key , mask_key , output_folder , ext = ".tif " ):
83+ anno_key , mask_key , output_folder , ext = ".n5 " ):
7684 print (f"Evaluating folder { segmentation_path } " )
7785 print (f"Using labels stored in { labels_path } " )
7886
@@ -81,9 +89,9 @@ def evaluate_folder(labels_path, segmentation_path, model_name, segment_key,
8189 if label_paths is None or seg_paths is None :
8290 print ("Could not find label file or segmentation file" )
8391 return
84-
8592 for seg_path in seg_paths :
86- label_path = find_label_file (seg_path , label_paths )
93+ # label_path = find_label_file(seg_path, label_paths)
94+ label_path = seg_path # both store in n5
8795 if label_path is not None :
8896 evaluate_file (label_path , seg_path , model_name , segment_key , anno_key , mask_key , output_folder )
8997 else :
@@ -120,16 +128,16 @@ def find_label_file(given_path: str, label_paths: list) -> str:
120128
121129def main ():
122130 parser = argparse .ArgumentParser ()
123- parser .add_argument ("-sp" , "--segmentation_path" , required = True ,
131+ parser .add_argument ("-sp" , "--segmentation_path" , required = False ,
124132 default = "/scratch-grete/projects/nim00007/data/mitochondria/cooper/cristae_test_segmentations/" )
125- parser .add_argument ("-gp" , "--groundtruth_path" , required = True ,
133+ parser .add_argument ("-gp" , "--groundtruth_path" , required = False ,
126134 default = "/scratch-grete/projects/nim00007/data/mitochondria/cooper/cristae_test_segmentations/" )
127135 parser .add_argument ("-n" , "--model_name" , required = True )
128- parser .add_argument ("-sk" , "--segmentation_key" , default = None , default = "labels/new_cristae_seg" )
129- parser .add_argument ("-gk" , "--groundtruth_key" , default = None , default = "labels/cristae" )
136+ parser .add_argument ("-sk" , "--segmentation_key" , default = "labels/new_cristae_seg" )
137+ parser .add_argument ("-gk" , "--groundtruth_key" , default = "labels/cristae" )
130138 parser .add_argument ("-m" , "--mask_key" , default = None )
131139 parser .add_argument (
132- "-o" , "--output_folder" , required = True ,
140+ "-o" , "--output_folder" , required = False ,
133141 default = "/scratch-grete/projects/nim00007/data/mitochondria/cooper/cristae_test_segmentations/eval"
134142 )
135143 args = parser .parse_args ()
0 commit comments