changeset 0:52ce80b36435 draft default tip

planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/rfove/ commit 8e99ddb62ceab1da15996906a0813826b62d38fe
author imgteam
date Wed, 17 Dec 2025 11:22:59 +0000
parents
children
files creators.xml rfove.xml test-data/BBBC033_C2_z28.png test-data/output.tiff tests.xml
diffstat 5 files changed, 204 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/creators.xml	Wed Dec 17 11:22:59 2025 +0000
@@ -0,0 +1,43 @@
+<macros>
+
+    <xml name="creators/bmcv">
+        <organization name="Biomedical Computer Vision Group, Heidelberg Universtiy" alternateName="BMCV" url="http://www.bioquant.uni-heidelberg.de/research/groups/biomedical_computer_vision.html" />
+        <yield />
+    </xml>
+
+    <xml name="creators/kostrykin">
+        <person givenName="Leonid" familyName="Kostrykin"/>
+        <yield/>
+    </xml>
+
+    <xml name="creators/rmassei">
+        <person givenName="Riccardo" familyName="Massei"/>
+        <yield/>
+    </xml>
+
+    <xml name="creators/alliecreason">
+        <person givenName="Allison" familyName="Creason"/>
+        <yield/>
+    </xml>
+
+    <xml name="creators/bugraoezdemir">
+        <person givenName="Bugra" familyName="Oezdemir"/>
+        <yield/>
+    </xml>
+
+    <xml name="creators/thawn">
+        <person givenName="Till" familyName="Korten"/>
+        <yield/>
+    </xml>
+
+    <xml name="creators/pavanvidem">
+        <person givenName="Pavan" familyName="Videm"/>
+        <yield/>
+    </xml>
+
+    <xml name="creators/tuncK">
+        <person givenName="Tunc" familyName="Kayikcioglu"/>
+        <yield/>
+    </xml>
+
+</macros>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rfove.xml	Wed Dec 17 11:22:59 2025 +0000
@@ -0,0 +1,66 @@
+<tool id="rfove" name="Perform segmentation using region-based fitting of overlapping ellipses" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="20.05">
+    <description>with RFOVE</description>
+    <macros>
+        <import>creators.xml</import>
+        <import>tests.xml</import>
+        <token name="@TOOL_VERSION@">2023.11.12</token>
+        <token name="@VERSION_SUFFIX@">2</token>
+    </macros>
+    <creator>
+        <expand macro="creators/bmcv"/>
+    </creator>
+    <edam_operations>
+        <edam_operation>operation_3443</edam_operation>
+    </edam_operations>
+    <xrefs>
+        <xref type="bio.tools">rfove</xref>
+    </xrefs>
+    <requirements> 
+        <container type="docker">docker.io/kostrykin/rfove:@TOOL_VERSION@</container>
+    </requirements>
+    <command detect_errors="aggressive">
+    <![CDATA[
+    #set $neighborhood_size = "%d" % ($half_neighborhood_size.value * 2 + 1)
+    /rfove
+        ${area_ub}
+        ${min_area_max_area_ratio_ub}
+        ${overlap_ub}
+        ${neighborhood_size}
+        '${dataset}'
+
+        output.tiff
+    ]]>
+    </command>
+    <inputs>
+        <param name="dataset" type="data" format="tiff,png" label="Input image" />
+        <param name="area_ub" type="integer" label="Maximum ellipse area" min="5" value="250" />
+        <param name="min_area_max_area_ratio_ub" type="float" min="0" max="1" value="0.1" label="Upper bound of the ratio: minimum area / maximum area" />
+
+        <param name="overlap_ub" type="float" label="Maximum ellipse overlap" min="0" value="0.2" />
+        <param name="half_neighborhood_size" type="integer" label="Half neighborhood size" min="1" value="100" />
+    </inputs>
+    <outputs>
+        <data format="tiff" name="masks" from_work_dir="output.tiff" label="${tool.name} on ${on_string}" />
+    </outputs>
+    <tests>
+        <test>
+            <param name="dataset" value="BBBC033_C2_z28.png" />
+            <expand macro="tests/label_image_diff" name="masks" value="output.tiff" ftype="tiff"/>
+        </test>
+    </tests>
+    <help>
+
+        **Perform segmentation using shape decomposition based on elliptical models and expectation maximization.**
+
+        RFOVE is completely unsupervised, operates without any assumption or prior knowledge on the object's shape
+        and extends and improves the *Decremental Ellipse Fitting Algorithm* (DEFA). Both RFOVE and DEFA solve the
+        multi-ellipse fitting problem by performing model selection that is guided by the minimization of the
+        *Akaike Information Criterion* on a suitably defined shape complexity measure. However, in contrast to
+        DEFA, RFOVE minimizes an objective function that allows for ellipses with higher degree of overlap and,
+        thus, achieves better ellipse-based shape approximation.
+
+    </help>
+    <citations>
+        <citation type="doi">10.1016/j.imavis.2019.09.001</citation>
+    </citations>
+</tool>
Binary file test-data/BBBC033_C2_z28.png has changed
Binary file test-data/output.tiff has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests.xml	Wed Dec 17 11:22:59 2025 +0000
@@ -0,0 +1,95 @@
+<macros>
+
+    <!-- Macros for verification of image outputs -->
+
+    <xml
+        name="tests/binary_image_diff"
+        tokens="name,value,ftype,metric,eps"
+        token_metric="mae"
+        token_eps="0.01">
+
+        <output name="@NAME@" value="@VALUE@" ftype="@FTYPE@" compare="image_diff" metric="@METRIC@" eps="@EPS@" pin_labels="0">
+            <assert_contents>
+                <has_image_n_labels n="2"/>
+                <yield/>
+            </assert_contents>
+        </output>
+
+    </xml>
+
+    <xml
+        name="tests/label_image_diff"
+        tokens="name,value,ftype,metric,eps,pin_labels"
+        token_metric="iou"
+        token_eps="0.01"
+        token_pin_labels="0">
+
+        <output name="@NAME@" value="@VALUE@" ftype="@FTYPE@" compare="image_diff" metric="@METRIC@" eps="@EPS@" pin_labels="@PIN_LABELS@">
+            <assert_contents>
+                <yield/>
+            </assert_contents>
+        </output>
+
+    </xml>
+
+    <xml
+        name="tests/intensity_image_diff"
+        tokens="name,value,ftype,metric,eps"
+        token_metric="rms"
+        token_eps="0.01">
+
+        <output name="@NAME@" value="@VALUE@" ftype="@FTYPE@" compare="image_diff" metric="@METRIC@" eps="@EPS@">
+            <assert_contents>
+                <yield/>
+            </assert_contents>
+        </output>
+
+    </xml>
+
+    <!-- Variants of the above for verification of collection elements -->
+
+    <xml
+        name="tests/binary_image_diff/element"
+        tokens="name,value,ftype,metric,eps"
+        token_metric="mae"
+        token_eps="0.01">
+
+        <element name="@NAME@" value="@VALUE@" ftype="@FTYPE@" compare="image_diff" metric="@METRIC@" eps="@EPS@" pin_labels="0">
+            <assert_contents>
+                <has_image_n_labels n="2"/>
+                <yield/>
+            </assert_contents>
+        </element>
+
+    </xml>
+
+    <xml
+        name="tests/label_image_diff/element"
+        tokens="name,value,ftype,metric,eps"
+        token_metric="iou"
+        token_eps="0.01"
+        token_pin_labels="0">
+
+        <element name="@NAME@" value="@VALUE@" ftype="@FTYPE@" compare="image_diff" metric="@METRIC@" eps="@EPS@" pin_labels="@PIN_LABELS@">
+            <assert_contents>
+                <yield/>
+            </assert_contents>
+        </element>
+
+    </xml>
+
+    <xml
+        name="tests/intensity_image_diff/element"
+        tokens="name,value,ftype,metric,eps"
+        token_metric="rms"
+        token_eps="0.01">
+
+        <element name="@NAME@" value="@VALUE@" ftype="@FTYPE@" compare="image_diff" metric="@METRIC@" eps="@EPS@">
+            <assert_contents>
+                <yield/>
+            </assert_contents>
+        </element>
+
+    </xml>
+
+</macros>