Mercurial > repos > imgteam > segmetrics
comparison segmetrics.xml @ 4:ef65ecafa3ef draft default tip
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/segmetrics/ commit 075271cee9cb9c2625c04dbefd903cdea6e74724
author | imgteam |
---|---|
date | Tue, 20 Jun 2023 21:40:19 +0000 |
parents | 48dcf95aebc7 |
children |
comparison
equal
deleted
inserted
replaced
3:48dcf95aebc7 | 4:ef65ecafa3ef |
---|---|
1 <tool id="ip_segmetrics" name="SegMetrics" version="0.11.3-2" profile="20.05"> | 1 <tool id="ip_segmetrics" name="SegMetrics" version="1.4.0-1" profile="20.05"> |
2 <description>image segmentation and object detection performance measures</description> | 2 <description>image segmentation and object detection performance measures</description> |
3 <requirements> | 3 <requirements> |
4 <requirement type="package" version="0.11.3">segmetrics</requirement> | 4 <requirement type="package" version="1.4">segmetrics</requirement> |
5 <requirement type="package" version="0.18.1">scikit-image</requirement> | 5 <requirement type="package" version="0.23.4">pandas</requirement> |
6 </requirements> | 6 </requirements> |
7 <command detect_errors="aggressive"> | 7 <command detect_errors="aggressive"> |
8 <![CDATA[ | 8 <![CDATA[ |
9 python '$__tool_directory__/run-segmetrics.py' | 9 python '$__tool_directory__/run-segmetrics.py' |
10 '$input_seg' | 10 '$input_seg' |
11 '$input_gt' | 11 '$input_gt' |
12 ./results.tsv | 12 ./results.tsv |
13 $unzip | 13 $unzip |
14 $is_seg_unique | 14 $is_seg_unique |
15 $is_gt_unique | 15 $is_gt_unique |
16 $measures.dice | 16 #for $m in $measures |
17 $measures.seg | 17 #set $kwargs = '' |
18 $measures.jc | 18 #set $suffix = '' |
19 $measures.ji | 19 #set $is_distance = False |
20 $measures.ri | 20 #if str($m.measure_type.measure_type_selector) == 'ISBIScore': |
21 $measures.ari | 21 #set $kwargs = 'min_ref_size=' + str($m.measure_type.min_ref_size) + ', ' |
22 $measures.hsd_sym | 22 #elif str($m.measure_type.measure_type_selector) == 'Hausdorff': |
23 $measures.hsd_e2a | 23 #set $kwargs = 'mode="' + str($m.measure_type.mode) + '", quantile=' + str($m.measure_type.quantile) + ', ' |
24 $measures.hsd_a2e | 24 #set $is_distance = True |
25 $measures.nsd | 25 #elif str($m.measure_type.measure_type_selector) == 'NSD': |
26 $measures.o_hsd_sym | 26 #set $is_distance = True |
27 $measures.o_hsd_e2a | 27 #end if |
28 $measures.o_hsd_a2e | 28 #if $is_distance: |
29 $measures.o_nsd | 29 #if $m.measure_type.object_based: |
30 $measures.fs | 30 #set $suffix = '.object_based()' |
31 $measures.fm | 31 #end if |
32 $measures.fp | 32 #end if |
33 $measures.fn | 33 #if str($m.measure_type.aggregation) != '': |
34 #set $kwargs = 'aggregation="' + str($m.measure_type.aggregation) + '", ' + $kwargs | |
35 #end if | |
36 'sm.${m.measure_type.measure_type_selector}(${kwargs})${suffix}' | |
37 #end for | |
34 ]]> | 38 ]]> |
35 </command> | 39 </command> |
36 <inputs> | 40 <inputs> |
37 | 41 |
38 <param name="input_seg" type="data" format="tiff,png,zip" label="Segmented images" /> | 42 <param name="input_seg" type="data" format="tiff,png,zip" label="Segmented images" /> |
41 <param name="unzip" type="boolean" checked="false" truevalue="-unzip" falsevalue="" label="Unzip" /> | 45 <param name="unzip" type="boolean" checked="false" truevalue="-unzip" falsevalue="" label="Unzip" /> |
42 | 46 |
43 <param name="is_seg_unique" type="boolean" checked="false" truevalue="-seg_unique" falsevalue="" label="Segmentation is uniquely labeled" /> | 47 <param name="is_seg_unique" type="boolean" checked="false" truevalue="-seg_unique" falsevalue="" label="Segmentation is uniquely labeled" /> |
44 <param name="is_gt_unique" type="boolean" checked="false" truevalue="-gt_unique" falsevalue="" label="Ground truth is uniquely labeled" /> | 48 <param name="is_gt_unique" type="boolean" checked="false" truevalue="-gt_unique" falsevalue="" label="Ground truth is uniquely labeled" /> |
45 | 49 |
46 <section name="measures" title="Performance measures" > | 50 <repeat name="measures" title="Performance measure(s)" min="1"> |
47 <param name="dice" type="boolean" checked="true" truevalue="-measure-dice" falsevalue="" label="Dice" /> | 51 <conditional name="measure_type"> |
48 <param name="seg" type="boolean" checked="true" truevalue="-measure-seg" falsevalue="" label="SEG" /> | 52 <param name="measure_type_selector" type="select" label="Type"> |
49 <param name="jc" type="boolean" checked="false" truevalue="-measure-jc" falsevalue="" label="Jaccard coefficient" /> | 53 <option value="Dice">Region-based / Dice</option> |
50 <param name="ji" type="boolean" checked="true" truevalue="-measure-ji" falsevalue="" label="Jaccard index" /> | 54 <option value="ISBIScore">Region-based / SEG</option> |
51 <param name="ri" type="boolean" checked="false" truevalue="-measure-ri" falsevalue="" label="Rand index" /> | 55 <option value="JaccardCoefficient">Region-based / Jaccard Coefficient</option> |
52 <param name="ari" type="boolean" checked="false" truevalue="-measure-ari" falsevalue="" label="Adjusted Rand index" /> | 56 <option value="JaccardIndex">Region-based / Jaccard Index</option> |
53 <param name="hsd_sym" type="boolean" checked="false" truevalue="-measure-hsd_sym" falsevalue="" label="Hausdorff distance (symmetric)" /> | 57 <option value="RandIndex">Region-based / Rand Index</option> |
54 <param name="hsd_e2a" type="boolean" checked="false" truevalue="-measure-hsd_e2a" falsevalue="" label="Hausdorff distance (ground truth to segmented)" /> | 58 <option value="AdjustedRandIndex">Region-based / Adjusted Rand Index</option> |
55 <param name="hsd_a2e" type="boolean" checked="false" truevalue="-measure-hsd_a2e" falsevalue="" label="Hausdorff distance (segmented to ground truth)" /> | 59 <option value="Hausdorff">Contour-based / Hausdorff Distance</option> |
56 <param name="nsd" type="boolean" checked="false" truevalue="-measure-nsd" falsevalue="" label="Normalized sum of distances" /> | 60 <option value="NSD">Contour-based / Normalized Sum of Distances</option> |
57 <param name="o_hsd_sym" type="boolean" checked="true" truevalue="-measure-o_hsd_sym" falsevalue="" label="Object-based Hausdorff distance (symmetric)" /> | 61 <option value="FalseSplit">Detection-based / Count Falsely Split Objects</option> |
58 <param name="o_hsd_e2a" type="boolean" checked="false" truevalue="-measure-o_hsd_e2a" falsevalue="" label="Object-based Hausdorff distance (ground truth to segmented)" /> | 62 <option value="FalseMerge">Detection-based / Count Falsely Merged Objects</option> |
59 <param name="o_hsd_a2e" type="boolean" checked="false" truevalue="-measure-o_hsd_a2e" falsevalue="" label="Object-based Hausdorff distance (segmented to ground truth)" /> | 63 <option value="FalsePositive">Detection-based / Count Spurious Objects</option> |
60 <param name="o_nsd" type="boolean" checked="true" truevalue="-measure-o_nsd" falsevalue="" label="Object-based normalized sum of distances" /> | 64 <option value="FalseNegative">Detection-based / Count Missing Objects</option> |
61 <param name="fs" type="boolean" checked="true" truevalue="-measure-fs" falsevalue="" label="Falsely split objects per image" /> | 65 </param> |
62 <param name="fm" type="boolean" checked="true" truevalue="-measure-fm" falsevalue="" label="Falsely merged objects per image" /> | 66 <when value="Dice"> |
63 <param name="fp" type="boolean" checked="true" truevalue="-measure-fp" falsevalue="" label="Spurious objects per image" /> | 67 <param name="aggregation" type="hidden" value="" /> |
64 <param name="fn" type="boolean" checked="true" truevalue="-measure-fn" falsevalue="" label="Missing objects per image" /> | 68 </when> |
65 </section> | 69 <when value="ISBIScore"> |
66 | 70 <param name="aggregation" type="hidden" value="" /> |
71 <param name="min_ref_size" type="integer" value="1" label="Minimum size of ground truth objects (in pixels)" help="Ground truth objects smaller than this value (in pixels) are skipped. It is reasonable to set this value to 2 so that objects of a single pixel in size are skipped, since such objects obviously correspond to misannotations which distort the performance evaluation. However, for compatibility to the official implementation, the value is set to 1 by default so all ground truth objects are included."/> | |
72 </when> | |
73 <when value="JaccardCoefficient"> | |
74 <param name="aggregation" type="hidden" value="" /> | |
75 </when> | |
76 <when value="JaccardIndex"> | |
77 <param name="aggregation" type="hidden" value="" /> | |
78 </when> | |
79 <when value="RandIndex"> | |
80 <param name="aggregation" type="hidden" value="" /> | |
81 </when> | |
82 <when value="AdjustedRandIndex"> | |
83 <param name="aggregation" type="hidden" value="" /> | |
84 </when> | |
85 <when value="Hausdorff"> | |
86 <param name="aggregation" type="hidden" value="" /> | |
87 <param name="mode" type="select" label="Direction"> | |
88 <option value="a2e">Actual (segmentation result) to expected (ground truth)</option> | |
89 <option value="e2a">Expected (ground truth) to actual (segmentation result)</option> | |
90 <option value="sym" selected="true">Symmetric (maximum of the two)</option> | |
91 </param> | |
92 <param name="quantile" type="float" min="0" max="1" value="1" label="Quantile" help="Must be between 0 and 1. If set to 1, then the implementaiton corresponds to the Hausdorff distance described by Bamford (2003). Any other value corresponds to the quantile method described by Rucklidge (1997)." /> | |
93 <param name="object_based" type="boolean" label="Object-based" help="Object correspondances between the segmented and the ground truth objects are established on a many-to-many basis, so that the resulting distances are minimal." /> | |
94 </when> | |
95 <when value="NSD"> | |
96 <param name="aggregation" type="hidden" value="" /> | |
97 <param name="object_based" type="boolean" label="Object-based" help="Object correspondances between the segmented and the ground truth objects are established on a many-to-many basis, so that the resulting distances are minimal." /> | |
98 </when> | |
99 <when value="FalseSplit"> | |
100 <param name="aggregation" type="select" label="Aggregation"> | |
101 <option value="mean" selected="true">Mean per Image</option> | |
102 <option value="sum">Sum over all images</option> | |
103 <option value="obj-mean">Proportion w.r.t. ground truth objects</option> | |
104 </param> | |
105 </when> | |
106 <when value="FalseMerge"> | |
107 <param name="aggregation" type="select" label="Aggregation"> | |
108 <option value="mean" selected="true">Mean per Image</option> | |
109 <option value="sum">Sum over all images</option> | |
110 <option value="obj-mean">Proportion w.r.t. ground truth objects</option> | |
111 </param> | |
112 </when> | |
113 <when value="FalsePositive"> | |
114 <param name="aggregation" type="select" label="Aggregation"> | |
115 <option value="mean" selected="true">Mean per Image</option> | |
116 <option value="sum">Sum over all images</option> | |
117 <option value="obj-mean">Proportion w.r.t. ground truth objects</option> | |
118 </param> | |
119 </when> | |
120 <when value="FalseNegative"> | |
121 <param name="aggregation" type="select" label="Aggregation"> | |
122 <option value="mean" selected="true">Mean per Image</option> | |
123 <option value="sum">Sum over all images</option> | |
124 <option value="obj-mean">Proportion w.r.t. ground truth objects</option> | |
125 </param> | |
126 </when> | |
127 </conditional> | |
128 </repeat> | |
67 </inputs> | 129 </inputs> |
68 <outputs> | 130 <outputs> |
69 <data format="tsv" name="results" from_work_dir="results.tsv" /> | 131 <data format="tsv" name="results" from_work_dir="results.tsv" /> |
70 </outputs> | 132 </outputs> |
71 <tests> | 133 <tests> |
72 <test> | 134 <test> |
73 <param name="input_seg" value="input2.png"/> | 135 <param name="input_seg" value="input1.png"/> |
74 <param name="input_gt" value="input1.png"/> | 136 <param name="input_gt" value="input2.png"/> |
75 <output name="results" value="results1.tsv" ftype="tsv" compare="diff"/> | 137 <output name="results" value="results1.tsv" ftype="tsv" compare="diff"/> |
76 <param name="is_seg_unique" value="True"/> | 138 <param name="is_seg_unique" value="true"/> |
77 <param name="is_gt_unique" value="True"/> | 139 <param name="is_gt_unique" value="true"/> |
140 <repeat name="measures"> | |
141 <conditional name="measure_type"> | |
142 <param name="measure_type_selector" value="Dice" /> | |
143 </conditional> | |
144 </repeat> | |
145 <repeat name="measures"> | |
146 <conditional name="measure_type"> | |
147 <param name="measure_type_selector" value="ISBIScore" /> | |
148 </conditional> | |
149 </repeat> | |
150 <repeat name="measures"> | |
151 <conditional name="measure_type"> | |
152 <param name="measure_type_selector" value="JaccardCoefficient" /> | |
153 </conditional> | |
154 </repeat> | |
155 <repeat name="measures"> | |
156 <conditional name="measure_type"> | |
157 <param name="measure_type_selector" value="JaccardIndex" /> | |
158 </conditional> | |
159 </repeat> | |
160 <repeat name="measures"> | |
161 <conditional name="measure_type"> | |
162 <param name="measure_type_selector" value="RandIndex" /> | |
163 </conditional> | |
164 </repeat> | |
165 <repeat name="measures"> | |
166 <conditional name="measure_type"> | |
167 <param name="measure_type_selector" value="AdjustedRandIndex" /> | |
168 </conditional> | |
169 </repeat> | |
170 <repeat name="measures"> | |
171 <conditional name="measure_type"> | |
172 <param name="measure_type_selector" value="Hausdorff" /> | |
173 </conditional> | |
174 </repeat> | |
175 <repeat name="measures"> | |
176 <conditional name="measure_type"> | |
177 <param name="measure_type_selector" value="Hausdorff" /> | |
178 <param name="quantile" value="0.9" /> | |
179 </conditional> | |
180 </repeat> | |
181 <repeat name="measures"> | |
182 <conditional name="measure_type"> | |
183 <param name="measure_type_selector" value="Hausdorff" /> | |
184 <param name="object_based" value="true" /> | |
185 </conditional> | |
186 </repeat> | |
187 <repeat name="measures"> | |
188 <conditional name="measure_type"> | |
189 <param name="measure_type_selector" value="NSD" /> | |
190 </conditional> | |
191 </repeat> | |
192 <repeat name="measures"> | |
193 <conditional name="measure_type"> | |
194 <param name="measure_type_selector" value="NSD" /> | |
195 <param name="object_based" value="true" /> | |
196 </conditional> | |
197 </repeat> | |
198 <repeat name="measures"> | |
199 <conditional name="measure_type"> | |
200 <param name="measure_type_selector" value="FalseSplit" /> | |
201 </conditional> | |
202 </repeat> | |
203 <repeat name="measures"> | |
204 <conditional name="measure_type"> | |
205 <param name="measure_type_selector" value="FalseMerge" /> | |
206 </conditional> | |
207 </repeat> | |
208 <repeat name="measures"> | |
209 <conditional name="measure_type"> | |
210 <param name="measure_type_selector" value="FalsePositive" /> | |
211 </conditional> | |
212 </repeat> | |
213 <repeat name="measures"> | |
214 <conditional name="measure_type"> | |
215 <param name="measure_type_selector" value="FalseNegative" /> | |
216 </conditional> | |
217 </repeat> | |
78 </test> | 218 </test> |
79 <test> | 219 <test> |
80 <param name="input_seg" value="input1.zip"/> | 220 <param name="input_seg" value="input1.zip"/> |
81 <param name="input_gt" value="input2.zip"/> | 221 <param name="input_gt" value="input2.zip"/> |
82 <output name="results" value="results2.tsv" ftype="tsv" compare="diff"/> | 222 <output name="results" value="results2.tsv" ftype="tsv" compare="diff"/> |
83 <param name="is_seg_unique" value="True"/> | 223 <param name="is_seg_unique" value="true"/> |
84 <param name="is_gt_unique" value="True"/> | 224 <param name="is_gt_unique" value="true"/> |
85 <param name="unzip" value="True"/> | 225 <param name="unzip" value="true"/> |
226 <repeat name="measures"> | |
227 <conditional name="measure_type"> | |
228 <param name="measure_type_selector" value="Dice" /> | |
229 </conditional> | |
230 </repeat> | |
231 <repeat name="measures"> | |
232 <conditional name="measure_type"> | |
233 <param name="measure_type_selector" value="ISBIScore" /> | |
234 </conditional> | |
235 </repeat> | |
236 <repeat name="measures"> | |
237 <conditional name="measure_type"> | |
238 <param name="measure_type_selector" value="JaccardCoefficient" /> | |
239 </conditional> | |
240 </repeat> | |
241 <repeat name="measures"> | |
242 <conditional name="measure_type"> | |
243 <param name="measure_type_selector" value="JaccardIndex" /> | |
244 </conditional> | |
245 </repeat> | |
246 <repeat name="measures"> | |
247 <conditional name="measure_type"> | |
248 <param name="measure_type_selector" value="RandIndex" /> | |
249 </conditional> | |
250 </repeat> | |
251 <repeat name="measures"> | |
252 <conditional name="measure_type"> | |
253 <param name="measure_type_selector" value="AdjustedRandIndex" /> | |
254 </conditional> | |
255 </repeat> | |
256 <repeat name="measures"> | |
257 <conditional name="measure_type"> | |
258 <param name="measure_type_selector" value="Hausdorff" /> | |
259 </conditional> | |
260 </repeat> | |
261 <repeat name="measures"> | |
262 <conditional name="measure_type"> | |
263 <param name="measure_type_selector" value="Hausdorff" /> | |
264 <param name="quantile" value="0.9" /> | |
265 </conditional> | |
266 </repeat> | |
267 <repeat name="measures"> | |
268 <conditional name="measure_type"> | |
269 <param name="measure_type_selector" value="Hausdorff" /> | |
270 <param name="object_based" value="true" /> | |
271 </conditional> | |
272 </repeat> | |
273 <repeat name="measures"> | |
274 <conditional name="measure_type"> | |
275 <param name="measure_type_selector" value="NSD" /> | |
276 </conditional> | |
277 </repeat> | |
278 <repeat name="measures"> | |
279 <conditional name="measure_type"> | |
280 <param name="measure_type_selector" value="NSD" /> | |
281 <param name="object_based" value="true" /> | |
282 </conditional> | |
283 </repeat> | |
284 <repeat name="measures"> | |
285 <conditional name="measure_type"> | |
286 <param name="measure_type_selector" value="FalseSplit" /> | |
287 </conditional> | |
288 </repeat> | |
289 <repeat name="measures"> | |
290 <conditional name="measure_type"> | |
291 <param name="measure_type_selector" value="FalseMerge" /> | |
292 </conditional> | |
293 </repeat> | |
294 <repeat name="measures"> | |
295 <conditional name="measure_type"> | |
296 <param name="measure_type_selector" value="FalsePositive" /> | |
297 </conditional> | |
298 </repeat> | |
299 <repeat name="measures"> | |
300 <conditional name="measure_type"> | |
301 <param name="measure_type_selector" value="FalseNegative" /> | |
302 </conditional> | |
303 </repeat> | |
86 </test> | 304 </test> |
87 </tests> | 305 </tests> |
88 <help> | 306 <help> |
89 This tool permits the computation of image segmentation and object detection performance measures for 2-D image data. | 307 This tool permits the computation of image segmentation and object detection performance measures for 2-D image data. |
90 | 308 |
94 </help> | 312 </help> |
95 <citations> | 313 <citations> |
96 <citation type="doi">10.1093/bioinformatics/btu080</citation> | 314 <citation type="doi">10.1093/bioinformatics/btu080</citation> |
97 <citation type="doi">10.1109/ISBI.2009.5193098</citation> | 315 <citation type="doi">10.1109/ISBI.2009.5193098</citation> |
98 <citation type="doi">10.1109/ICIP.2003.1246871</citation> | 316 <citation type="doi">10.1109/ICIP.2003.1246871</citation> |
317 <citation type="doi">10.1023/A:1007975324482</citation> | |
99 </citations> | 318 </citations> |
100 </tool> | 319 </tool> |