Skip to content

Commit f75091d

Browse files
Update inner ear analysis
1 parent 4cdd288 commit f75091d

File tree

2 files changed

+127
-7
lines changed

2 files changed

+127
-7
lines changed

scripts/inner_ear/training/postprocessing_and_evaluation.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313

1414
from train_structure_segmentation import get_train_val_test_split
1515

16-
# ROOT = "/home/pape/Work/data/synaptic_reconstruction/moser"
17-
ROOT = "/mnt/lustre-emmy-hdd/projects/nim00007/data/synaptic-reconstruction/moser"
16+
ROOT = "/home/pape/Work/data/synaptic_reconstruction/moser"
17+
# ROOT = "/mnt/lustre-emmy-hdd/projects/nim00007/data/synaptic-reconstruction/moser"
1818
MODEL_PATH = "/mnt/lustre-emmy-hdd/projects/nim00007/models/synaptic-reconstruction/vesicle-DA-inner_ear-v2"
1919
OUTPUT_ROOT = "./predictions"
2020

@@ -133,7 +133,11 @@ def visualize(input_paths, name, is_nested=False, label_names=None, prefixes=Non
133133
for name, seg in labels.items():
134134
v.add_labels(seg, name=f"labels/{name}", visible=False)
135135
for name, seg in predictions.items():
136-
v.add_labels(seg, name=name)
136+
if name == "ribbon":
137+
cmap = {1: "orange"}
138+
else:
139+
cmap = {1: "green"}
140+
v.add_labels(seg, name=name, colormap=cmap)
137141
v.title = fname
138142
napari.run()
139143

@@ -183,7 +187,7 @@ def segment_train_domain():
183187
name = "train_domain"
184188
run_vesicle_segmentation(paths, MODEL_PATH, name, is_nested=True)
185189
postprocess_structures(paths, name, is_nested=True)
186-
# visualize(paths, name, is_nested=True)
190+
visualize(paths, name, is_nested=True)
187191
results = evaluate(paths, name, is_nested=True, save_path="./results/train_domain_postprocessed.csv")
188192
print(results)
189193
print("Ribbon segmentation:", results["ribbon"].mean(), "+-", results["ribbon"].std())
@@ -229,9 +233,9 @@ def segment_rat():
229233

230234

231235
def main():
232-
# segment_train_domain()
233-
segment_vesicle_pools()
234-
segment_rat()
236+
segment_train_domain()
237+
# segment_vesicle_pools()
238+
# segment_rat()
235239

236240

237241
if __name__ == "__main__":
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
import numpy as np
2+
import pandas as pd
3+
4+
5+
def summarize_source_domain():
6+
result_path = "./results/train_domain_postprocessed.csv"
7+
results = pd.read_csv(result_path)
8+
9+
ribbon_results = {
10+
"dataset": [],
11+
"source_model": [],
12+
"target_model": [],
13+
}
14+
ribbon_mean = np.round(results["ribbon"].mean() * 100, 2)
15+
ribbon_std = np.round(results["ribbon"].std() * 100, 2)
16+
ribbon_results["dataset"].append("source")
17+
ribbon_results["source_model"].append(f"{ribbon_mean} +- {ribbon_std}")
18+
ribbon_results["target_model"].append("")
19+
ribbon_results = pd.DataFrame(ribbon_results)
20+
21+
PD_results = {
22+
"dataset": [],
23+
"source_model": [],
24+
"target_model": [],
25+
}
26+
PD_mean = np.round(results["PD"].mean() * 100, 2)
27+
PD_std = np.round(results["PD"].std() * 100, 2)
28+
PD_results["dataset"].append("source")
29+
PD_results["source_model"].append(f"{PD_mean} +- {PD_std}")
30+
PD_results["target_model"].append("")
31+
PD_results = pd.DataFrame(PD_results)
32+
33+
return ribbon_results, PD_results
34+
35+
36+
def summarize_rat():
37+
ribbon_results = {
38+
"dataset": [],
39+
"source_model": [],
40+
"target_model": [],
41+
}
42+
PD_results = {
43+
"dataset": [],
44+
"source_model": [],
45+
"target_model": [],
46+
}
47+
48+
result_paths = {
49+
"source_model": "results/rat_Src.csv",
50+
"target_model": "results/rat_Adapted.csv",
51+
}
52+
53+
ribbon_results["dataset"].append("source")
54+
PD_results["dataset"].append("source")
55+
56+
for model, result_path in result_paths.items():
57+
results = pd.read_csv(result_path)
58+
ribbon_mean = np.round(results["ribbon"].mean() * 100, 2)
59+
ribbon_std = np.round(results["ribbon"].std() * 100, 2)
60+
ribbon_results[model].append(f"{ribbon_mean} +- {ribbon_std}")
61+
62+
PD_mean = np.round(results["PD"].mean() * 100, 2)
63+
PD_std = np.round(results["PD"].std() * 100, 2)
64+
PD_results[model].append(f"{PD_mean} +- {PD_std}")
65+
66+
ribbon_results = pd.DataFrame(ribbon_results)
67+
PD_results = pd.DataFrame(PD_results)
68+
return ribbon_results, PD_results
69+
70+
71+
def summarize_ves_pool():
72+
ribbon_results = {
73+
"dataset": [],
74+
"source_model": [],
75+
"target_model": [],
76+
}
77+
PD_results = {
78+
"dataset": [],
79+
"source_model": [],
80+
"target_model": [],
81+
}
82+
83+
result_paths = {
84+
"source_model": "results/vesicle_pools_Src.csv",
85+
"target_model": "results/vesicle_pools_Adapted.csv",
86+
}
87+
88+
ribbon_results["dataset"].append("source")
89+
PD_results["dataset"].append("source")
90+
91+
for model, result_path in result_paths.items():
92+
results = pd.read_csv(result_path)
93+
ribbon_mean = np.round(results["ribbon"].mean() * 100, 2)
94+
ribbon_std = np.round(results["ribbon"].std() * 100, 2)
95+
ribbon_results[model].append(f"{ribbon_mean} +- {ribbon_std}")
96+
97+
PD_mean = np.round(results["PD"].mean() * 100, 2)
98+
PD_std = np.round(results["PD"].std() * 100, 2)
99+
PD_results[model].append(f"{PD_mean} +- {PD_std}")
100+
101+
ribbon_results = pd.DataFrame(ribbon_results)
102+
PD_results = pd.DataFrame(PD_results)
103+
return ribbon_results, PD_results
104+
105+
106+
def main():
107+
ribbon_results, PD_results = summarize_source_domain()
108+
# ribbon_results, PD_results = summarize_ves_pool()
109+
print("Ribbon")
110+
print(ribbon_results)
111+
print("PD")
112+
print(PD_results)
113+
114+
115+
if __name__ == "__main__":
116+
main()

0 commit comments

Comments
 (0)