view bf2raw.xml @ 2:51d1460d03e6 draft default tip

planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/bioformats2raw commit d12bb8de65b311ab1c07b69147388a4bd3d9887a
author imgteam
date Tue, 20 Jan 2026 11:48:35 +0000
parents 21fedce225f6
children
line wrap: on
line source

<tool id="bf2raw" name="Convert to OME-Zarr" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="24.0">
    <description>with Bio-Formats</description>
    <macros>
        <import>creators.xml</import>
        <token name="@TOOL_VERSION@">0.7.0</token>
        <token name="@VERSION_SUFFIX@">5</token>
    </macros>
    <creator>
        <expand macro="creators/bugraoezdemir"/>
        <expand macro="creators/bmcv"/>
        <expand macro="creators/kostrykin"/>
    </creator>
    <edam_operations>
        <edam_operation>operation_3443</edam_operation>
    </edam_operations>
    <xrefs>
        <xref type="bio.tools">bio-formats</xref>
        <xref type="biii">bio-formats</xref>
    </xrefs>
    <requirements>
        <container type="docker">quay.io/biocontainers/mulled-v2-ea5a9ffc5f22f92a78f0cd24aac43eb503c0e523:4c010c399f61cde74da64343581999ada3e11e24-0</container>
    </requirements>
    <command><![CDATA[

## Create final output directory
if [ ! -d $output.files_path ]; then
    mkdir -p $output.files_path;
fi;

## Use an intermediate output directory if only a subgroup of the Zarr is wanted for export
#if str($io_options.subgroup) == ''
    ln -s $output.files_path ./output;
#else
    mkdir ./output;
#end if

## Input symlink to obscure the dataset directory for reproducible results
ln -s ${io_options.input} ./input;

export _JAVA_OPTIONS="-Djava.io.tmpdir=/usr/local/man/" && bioformats2raw ./input ./output/.
#if $bf2raw_params.multiscales['options'] == 'auto':
    --target-min-size $bf2raw_params.multiscales.min_xy_size
#elif $bf2raw_params.multiscales['options'] == 'manual':
    --resolutions $bf2raw_params.resolutions
#end if
--tile_height $bf2raw_params.tile_height
--tile_width $bf2raw_params.tile_width
--chunk_depth $bf2raw_params.chunk_depth
--downsample-type $bf2raw_params.downsample_type
--compression $bf2raw_params.compression
--max_workers "\${GALAXY_SLOTS:-4}"
$bf2raw_params.nesting
$bf2raw_params.omefolder
$bf2raw_params.droptop
#if not str($bf2raw_params.dimension_order) == 'keep input order':
    --dimension-order $bf2raw_params.dimension_order
#end if
--overwrite &> /dev/null;

## Optionally, export a subgroup of the Zarr
#if str($io_options.subgroup) != ''
    mv "./output/${io_options.subgroup}"/* "./output/${io_options.subgroup}"/.* "${output.files_path}/";
    mv "./output/OME" "${output.files_path}/OME";
#end if

    ]]></command>
    <inputs>
        <section name="io_options" title="Input/Output" expanded="true">
            <param name="input" type="data"
                   format="scn,ndpi,tf8,vms,xml,pcx,binary,hdr,mov,psd,pbm,nrrd,tiff,pgm,ppm,txt,tf2,zip,top,gif,wav,btf,bmp,png,gz,cif,fli,btf,jpg,avi,html,sif,csv,ome.tiff,par,fits,jp2,eps,nhdr,svs,mrc"
                   label="Input image"/>
            <param name="subgroup" type="text" value="" optional="true" label="Select a subgroup"
                   help='Only export a subgroup of the Zarr dataset (e.g., use "&lt;tt&gt;0&lt;/tt&gt;" to only export the &lt;tt&gt;/0&lt;/tt&gt; subgroup of the Zarr). Leave empty to export the full Zarr.'>
                <validator type="regex" message="Subgroup name cannot be empty." negate="true">.*//.*</validator>
                <validator type="expression" message='Subgroup name must not start with a "/"' negate="true">value.startswith("/")</validator>
                <validator type="expression" message='Subgroup name must not end with a "/"' negate="true">value.endswith("/")</validator>
            </param>
        </section>
        <section name="bf2raw_params" title="Parameters fed to file conversion module">
            <conditional name="multiscales" >
                <param name="options" type="select" multiple="false" label="How should the number of resolutions be determined?" >
                    <option value="auto" selected="true">auto</option>
                    <option value="manual" selected="false">manual</option>
                </param>
                <when value="auto">
                    <param name="min_xy_size" type="integer" min="1" optional="true" label="Min x-y dimension for the lowest resolution" value="256" />
                </when>
                <when value="manual">
                    <param name="resolution_count" type="integer" min="1" optional="true" label="Number of resolution layers" value="3"/>
                </when>
            </conditional >
            <param name="tile_height" type="integer" label="Tile height" value="96" min="1" />
            <param name="tile_width" type="integer" label="Tile width" value="96" min="1" />
            <param name="chunk_depth" type="integer" label="Chunk depth" value="1" min="1" />
            <param name="downsample_type" type="select" label="Downsampling method" multiple="false" >
                <option value="SIMPLE" selected="true">SIMPLE</option>
                <option value="GAUSSIAN" selected="false">GAUSSIAN</option>
                <option value="AREA" selected="false">AREA</option>
                <option value="LINEAR" selected="false">LINEAR</option>
                <option value="CUBIC" selected="false">CUBIC</option>
                <option value="LANCZOS" selected="false">LANCZOS</option>
            </param>
            <param name="compression" type="select" label="Compression method" multiple="false" >
                <option value="null" selected="false">null</option>
                <option value="zlib" selected="false">zlib</option>
                <option value="blosc" selected="true">blosc</option>
            </param>
            <param name="dimension_order" type="select" label="Dimension order" multiple="false">
                <option value="keep input order" selected="true">keep input order</option>
                <option value="XYZCT" selected="false">XYZCT</option>
                <option value="XYZTC" selected="false">XYZTC</option>
                <option value="XYCTZ" selected="false">XYCTZ</option>
                <option value="XYCZT" selected="false">XYCZT</option>
                <option value="XYTCZ" selected="false">XYTCZ</option>
                <option value="XYTZC" selected="false">XYTZC</option>
            </param>
            <param name="nesting" type="boolean" label="Use ' / ' as chunk path separator" truevalue="" falsevalue="--no-nested" checked="true" />
            <param name="omefolder" type="boolean" label="Export OME metadata" truevalue="" falsevalue="--no-ome-meta-export" checked="true" />
            <param name="droptop" type="boolean" label="Drop the series layer in the OME-Zarr folder hierarchy" truevalue="--scale-format-string '%2$d'" falsevalue="" checked="false" />
        </section>
    </inputs>
    <outputs>
        <data name="output" format="zarr"/>
    </outputs>
    <tests>
        <test expect_num_outputs="1">
            <section name="io_options">
                <param name="input" value="xyz_8bit__mitotic_plate_calibrated.tiff"/>
            </section>
            <output name="output" ftype="zarr">
                <extra_files type="file" name=".zattrs" value="xyz_8bit__mitotic_plate_calibrated.ome.zarr/.zattrs"/>
                <extra_files type="file" name=".zgroup" value="xyz_8bit__mitotic_plate_calibrated.ome.zarr/.zgroup"/>
                <extra_files type="file" name="OME/METADATA.ome.xml" value="xyz_8bit__mitotic_plate_calibrated.ome.zarr/OME/METADATA.ome.xml"/>
            </output>
        </test>
        <test expect_num_outputs="1">
            <section name="io_options">
                <param name="input" value="coins.png"/>
            </section>
            <output name="output" ftype="zarr">
                <extra_files type="file" name=".zattrs" value="coins.ome.zarr/.zattrs"/>
                <extra_files type="file" name=".zgroup" value="coins.ome.zarr/.zgroup"/>
                <extra_files type="file" name="OME/METADATA.ome.xml" value="coins.ome.zarr/OME/METADATA.ome.xml"/>
            </output>
        </test>
        <test expect_num_outputs="1">
            <section name="io_options">
                <param name="input" value="camera.jpg"/>
            </section>
            <output name="output" ftype="zarr">
                <extra_files type="file" name=".zattrs" value="camera.ome.zarr/.zattrs"/>
                <extra_files type="file" name=".zgroup" value="camera.ome.zarr/.zgroup"/>
                <extra_files type="file" name="OME/METADATA.ome.xml" value="camera.ome.zarr/OME/METADATA.ome.xml"/>
            </output>
        </test>
        <test expect_num_outputs="1">
            <section name="io_options">
                <param name="input" value="coins.png"/>
                <param name="subgroup" value="0"/>
            </section>
            <output name="output" ftype="zarr">
                <extra_files type="file" name=".zattrs" value="coins.ome.zarr/0/.zattrs"/>
                <extra_files type="file" name=".zgroup" value="coins.ome.zarr/0/.zgroup"/>
                <extra_files type="file" name="OME/METADATA.ome.xml" value="coins.ome.zarr/OME/METADATA.ome.xml"/>
            </output>
        </test>
    </tests>
    <help>

        **Converts images to OME-Zarr.**

        Tool based on Bio-Formats that converts a wide range of image file formats to the cloud-optimised format
        OME-Zarr following the `OME-NGFF`_ specification.

        .. _OME-NGFF: https://ngff.openmicroscopy.org/latest

    </help>
    <citations>
        <citation type="doi">https://doi.org/10.5281/zenodo.5548102 </citation>
    </citations>
</tool>