Skip to content

Commit 28b9547

Browse files
anna-grimanna-grim
andauthored
feat: merge rate metric (#138)
Co-authored-by: anna-grim <[email protected]>
1 parent 68f1025 commit 28b9547

File tree

6 files changed

+137
-336
lines changed

6 files changed

+137
-336
lines changed

demo/results-overview.txt

Lines changed: 0 additions & 276 deletions
Original file line numberDiff line numberDiff line change
@@ -1,279 +1,3 @@
1-
Average Results...
2-
# Splits: 7.9680
3-
# Merges: 0.0000
4-
% Split: 1.1996
5-
% Omit: 4.5086
6-
% Merged: 0.0000
7-
Edge Accuracy: 95.4914
8-
ERL: 180.8849
9-
Normalized ERL: 0.3949
10-
11-
Total Results...
12-
# Splits: 31
13-
# Merges: 0
14-
Average Results...
15-
# Splits: 7.9680
16-
# Merges: 0.0000
17-
% Split: 1.1996
18-
% Omit: 4.5086
19-
% Merged: 0.0000
20-
Edge Accuracy: 95.4914
21-
ERL: 180.8849
22-
Normalized ERL: 0.3949
23-
24-
Total Results...
25-
# Splits: 31
26-
# Merges: 0
27-
Average Results...
28-
# Splits: 7.9680
29-
# Merges: 0.0000
30-
% Split: 1.1996
31-
% Omit: 4.5086
32-
% Merged: 0.0000
33-
Edge Accuracy: 95.4914
34-
ERL: 180.8849
35-
Normalized ERL: 0.3949
36-
37-
Total Results...
38-
# Splits: 31
39-
# Merges: 0
40-
Average Results...
41-
# Splits: 7.9680
42-
# Merges: 0.0000
43-
Split Rate: 0.0000
44-
Merge Rate: 0.0000
45-
% Split Edges: 1.1996
46-
% Omit Edges: 4.5086
47-
% Merged Edges: 0.0000
48-
Edge Accuracy: 95.4914
49-
ERL: 180.8849
50-
Normalized ERL: 0.3949
51-
52-
Total Results...
53-
# Splits: 31
54-
# Merges: 0
55-
Average Results...
56-
# Splits: 0.0000
57-
# Merges: 0.0000
58-
Split Rate: 0.0000
59-
Merge Rate: 0.0000
60-
% Split Edges: 0.9218
61-
% Omit Edges: 0.9218
62-
% Merged Edges: 9.0909
63-
Edge Accuracy: 89.9873
64-
ERL: 0.0000
65-
Normalized ERL: 0.0000
66-
67-
Total Results...
68-
# Splits: 0
69-
# Merges: 0
70-
Average Results...
71-
# Splits: 0.0000
72-
# Merges: 0.0000
73-
Split Rate: 0.0000
74-
Merge Rate: 0.0000
75-
% Split Edges: 0.9218
76-
% Omit Edges: 0.9218
77-
% Merged Edges: 0.0000
78-
Edge Accuracy: 99.0782
79-
ERL: 331.6691
80-
Normalized ERL: 1.0000
81-
82-
Total Results...
83-
# Splits: 0
84-
# Merges: 0
85-
Average Results...
86-
# Splits: 0.0000
87-
# Merges: 0.0000
88-
Split Rate: 0.0000
89-
Merge Rate: 0.0000
90-
% Split Edges: 0.9218
91-
% Omit Edges: 3.6209
92-
% Merged Edges: 0.0000
93-
Edge Accuracy: 0.0000
94-
ERL: 130.9891
95-
Normalized ERL: 0.6413
96-
% Merged e: 0.0000
97-
98-
Total Results...
99-
# Splits: 0
100-
# Merges: 0
101-
Average Results...
102-
# Splits: 7.9680
103-
# Merges: 0.0000
104-
Split Rate: 0.0000
105-
Merge Rate: 0.0000
106-
% Split Edges: 1.1996
107-
% Omit Edges: 4.5086
108-
% Merged Edges: 0.0000
109-
Edge Accuracy: 0.0000
110-
ERL: 180.8849
111-
Normalized ERL: 0.3949
112-
% Merged e: 0.0000
113-
114-
Total Results...
115-
# Splits: 31
116-
# Merges: 0
117-
Average Results...
118-
# Splits: 7.9680
119-
# Merges: 0.0000
120-
Split Rate: 0.0000
121-
Merge Rate: 0.0000
122-
% Split Edges: 1.1996
123-
% Omit Edges: 4.5086
124-
% Merged Edges: 0.0000
125-
Edge Accuracy: 0.0000
126-
ERL: 180.8849
127-
Normalized ERL: 0.3949
128-
% Merged e: 0.0000
129-
130-
Total Results...
131-
# Splits: 31
132-
# Merges: 0
133-
Average Results...
134-
# Splits: 0.0000
135-
# Merges: 0.0000
136-
Split Rate: 0.0000
137-
Merge Rate: 0.0000
138-
% Split Edges: 1.1996
139-
% Omit Edges: 1.1996
140-
% Merged Edges: 0.0000
141-
Edge Accuracy: 0.0000
142-
ERL: 842.7172
143-
Normalized ERL: 1.0000
144-
% Merged e: 0.0000
145-
146-
Total Results...
147-
# Splits: 0
148-
# Merges: 0
149-
Average Results...
150-
# Splits: 7.9680
151-
# Merges: 0.0000
152-
Split Rate: inf
153-
Merge Rate: 0.0000
154-
% Split Edges: 1.1996
155-
% Omit Edges: 4.5086
156-
% Merged Edges: 0.0000
157-
Edge Accuracy: 0.0000
158-
ERL: 180.8849
159-
Normalized ERL: 0.3949
160-
% Merged e: 0.0000
161-
162-
Total Results...
163-
# Splits: 31
164-
# Merges: 0
165-
Average Results...
166-
# Splits: 7.9680
167-
# Merges: 0.0000
168-
Split Rate: inf
169-
Merge Rate: 0.0000
170-
% Split Edges: 1.1996
171-
% Omit Edges: 4.5086
172-
% Merged Edges: 0.0000
173-
Edge Accuracy: 0.0000
174-
ERL: 180.8849
175-
Normalized ERL: 0.3949
176-
% Merged e: 0.0000
177-
178-
Total Results...
179-
# Splits: 31
180-
# Merges: 0
181-
Average Results...
182-
# Splits: 7.9680
183-
# Merges: 0.0000
184-
Split Rate: inf
185-
Merge Rate: 0.0000
186-
% Split Edges: 1.1996
187-
% Omit Edges: 4.5086
188-
% Merged Edges: 0.0000
189-
Edge Accuracy: 0.0000
190-
ERL: 180.8849
191-
Normalized ERL: 0.3949
192-
% Merged e: 0.0000
193-
194-
Total Results...
195-
# Splits: 31
196-
# Merges: 0
197-
Average Results...
198-
# Splits: 7.9680
199-
# Merges: 0.0000
200-
Split Rate: inf
201-
Merge Rate: 0.0000
202-
% Split Edges: 1.1996
203-
% Omit Edges: 4.5086
204-
% Merged Edges: 0.0000
205-
Edge Accuracy: 0.0000
206-
ERL: 180.8849
207-
Normalized ERL: 0.3949
208-
% Merged e: 0.0000
209-
210-
Total Results...
211-
# Splits: 31
212-
# Merges: 0
213-
Average Results...
214-
# Splits: 7.9680
215-
# Merges: 0.0000
216-
Split Rate: 100.5656
217-
Merge Rate: 0.0000
218-
% Split Edges: 1.1996
219-
% Omit Edges: 4.5086
220-
% Merged Edges: 0.0000
221-
Edge Accuracy: 0.0000
222-
ERL: 180.8849
223-
Normalized ERL: 0.3949
224-
% Merged e: 0.0000
225-
226-
Total Results...
227-
# Splits: 31
228-
# Merges: 0
229-
Average Results...
230-
# Splits: 7.9680
231-
# Merges: 0.0000
232-
Split Rate: 114.6940
233-
Merge Rate: 0.0000
234-
% Split Edges: 1.1996
235-
% Omit Edges: 4.5086
236-
% Merged Edges: 0.0000
237-
Edge Accuracy: 0.0000
238-
ERL: 180.8849
239-
Normalized ERL: 0.3949
240-
% Merged e: 0.0000
241-
242-
Total Results...
243-
# Splits: 31
244-
# Merges: 0
245-
Average Results...
246-
# Splits: 7.9680
247-
# Merges: 0.0000
248-
Split Rate: 114.6940
249-
Merge Rate: 0.0000
250-
% Split Edges: 1.1996
251-
% Omit Edges: 4.5086
252-
% Merged Edges: 0.0000
253-
Edge Accuracy: 0.0000
254-
ERL: 180.8849
255-
Normalized ERL: 0.3949
256-
% Merged e: 0.0000
257-
258-
Total Results...
259-
# Splits: 31
260-
# Merges: 0
261-
Average Results...
262-
# Splits: 7.9680
263-
# Merges: 0.0000
264-
Split Rate: 114.6940
265-
Merge Rate: 0.0000
266-
% Split Edges: 1.1996
267-
% Omit Edges: 4.5086
268-
% Merged Edges: 0.0000
269-
Edge Accuracy: 0.0000
270-
ERL: 180.8849
271-
Normalized ERL: 0.3949
272-
% Merged e: 0.0000
273-
274-
Total Results...
275-
# Splits: 31
276-
# Merges: 0
2771
Average Results...
2782
# Splits: 7.9680
2793
# Merges: 0.0000

demo/results.csv

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
,# Splits,# Merges,Split Rate,Merge Rate,% Split Edges,% Omit Edges,% Merged Edges,Edge Accuracy,ERL,Normalized ERL,GT Run Length
2-
SNT_Data-002,0,,84.08376161857129,,0.0,0.0,0.0,100.0,84.08,1.0,84.08
3-
SNT_Data-035,0,,163.37074041968344,,0.0,0.0,0.0,100.0,163.37,1.0,163.37
2+
SNT_Data-002,0,,84.0837616185713,,0.0,0.0,0.0,100.0,84.08,1.0,84.08
3+
SNT_Data-035,0,,163.37074041968347,,0.0,0.0,0.0,100.0,163.37,1.0,163.37
44
SNT_Data-037,1,,211.98055903143307,,0.98,1.96,0.0,98.04,184.57,0.8585,214.98
5-
SNT_Data-038,1,,251.78664303157592,,0.83,1.65,0.0,98.35,144.38,0.5667,254.79
6-
SNT_Data-041,4,,55.46881994891758,,2.83,7.55,0.0,92.45,52.62,0.2286,230.17
5+
SNT_Data-038,1,,251.78664303157586,,0.83,1.65,0.0,98.35,144.38,0.5667,254.79
6+
SNT_Data-041,4,,55.46881994891756,,2.83,7.55,0.0,92.45,52.62,0.2286,230.17
77
SNT_Data-043,2,,46.354813254114404,,1.92,9.62,0.0,90.38,35.32,0.3334,105.96
88
SNT_Data-051,0,,106.56843799568803,,0.0,0.0,0.0,100.0,106.57,1.0,106.57
9-
SNT_Data-052,6,,99.17738848187405,,1.37,6.48,0.0,93.52,265.1,0.4184,633.57
9+
SNT_Data-052,6,,99.17738848187408,,1.37,6.48,0.0,93.52,265.1,0.4184,633.57
1010
SNT_Data-053,15,,98.71530688808681,,1.31,4.46,0.0,95.54,207.79,0.1343,1547.45
1111
SNT_Data-062,2,,105.18979564964228,,0.9,8.11,0.0,91.89,116.9,0.5144,227.24
12-
SNT_Data-074,0,,80.17991450259146,,0.0,0.0,0.0,100.0,80.18,1.0,80.18
12+
SNT_Data-074,0,,80.17991450259144,,0.0,0.0,0.0,100.0,80.18,1.0,80.18

src/segmentation_skeleton_metrics/skeleton_graph.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
class SkeletonGraph(nx.Graph):
2222
"""
2323
A subclass of the NetworkX.Graph designed for graphs built from SWC files.
24-
This class extends the functionality of the standard Graph by adding
24+
This class extends the functionality of the standard Graph class by adding
2525
support for handling node labels and voxel coordinates. In this subclass,
2626
node IDs serve as direct indices for accessing the labels and voxels
2727
attributes.
@@ -31,10 +31,15 @@ class SkeletonGraph(nx.Graph):
3131
anisotropy : numpy.ndarray
3232
Image to physical coordinates scaling factors to account for the
3333
anisotropy of the microscope.
34-
run_length : float
35-
Physical path length of the graph.
34+
filename : str
35+
Filename of SWC file that graph is built from.
36+
is_groundtruth : bool
37+
Indication of whether this graph corresponds to a ground truth
38+
tracing.
3639
labels : numpy.ndarray
3740
A 1D array that contains a label value associated with each node.
41+
run_length : float
42+
Physical path length of the graph.
3843
voxels : numpy.ndarray
3944
A 3D array that contains a voxel coordinate for each node.
4045
"""
@@ -63,7 +68,6 @@ def __init__(self, anisotropy=(1.0, 1.0, 1.0), is_groundtruth=False):
6368
is_groundtruth : bool, optional
6469
Indication of whether this graph corresponds to a ground truth
6570
tracing. Default is False.
66-
None
6771
"""
6872
# Call parent class
6973
super(SkeletonGraph, self).__init__()
@@ -145,7 +149,7 @@ def nodes_with_label(self, label):
145149
Returns
146150
-------
147151
numpy.ndarray
148-
A 1D array of node IDs that have the specified label.
152+
Node IDs that have the specified label.
149153
"""
150154
return np.where(self.labels == label)[0]
151155

0 commit comments

Comments
 (0)