comparison segmetrics.xml @ 4:7989264b5780 draft

planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/segmetrics/ commit 075271cee9cb9c2625c04dbefd903cdea6e74724
author imgteam
date Tue, 20 Jun 2023 21:40:31 +0000
parents c496306c1cba
children ac55e2f4d9e3
comparison
equal deleted inserted replaced
3:c496306c1cba 4:7989264b5780
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>