Mercurial > repos > imgteam > image_math
view image_math.xml @ 0:e0beec1d4bf1 draft default tip
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/image_math commit cddd14dcfe71bb7a7e77aaf09bd2c5535e1dd643
| author | imgteam |
|---|---|
| date | Fri, 06 Mar 2026 17:31:48 +0000 |
| parents | |
| children |
line wrap: on
line source
<tool id="image_math" name="Process images using arithmetic expressions" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="23.0"> <description>with NumPy</description> <macros> <import>creators.xml</import> <import>tests.xml</import> <token name="@TOOL_VERSION@">2.3.5</token> <token name="@VERSION_SUFFIX@">0</token> </macros> <creator> <expand macro="creators/bmcv"/> <expand macro="creators/kostrykin"/> </creator> <edam_operations> <edam_operation>operation_3443</edam_operation> </edam_operations> <requirements> <requirement type="package" version="@TOOL_VERSION@">numpy</requirement> <requirement type="package" version="0.7.3">giatools</requirement> </requirements> <required_files> <include type="glob" path="*.py"/> </required_files> <command><![CDATA[ ## Inputs python '$__tool_directory__/image_math.py' --expression='$expression' #if '$dtype' != '': --dtype='$dtype' #end if #for $item in $inputs: --input='$item.name:$item.image' #end for ## Outputs --output='./result.tiff' ]]> </command> <inputs> <param argument="--expression" type="text" label="Expression" optional="false"> <validator type="regex">^[a-zA-Z0-9-_\*\+ \(\)/\.]+$</validator> </param> <param name="dtype" type="select" label="Data type of the produced TIFF image"> <option value="" selected="true">Determine automatically</option> <option value="float16">16-bit floating point</option> <option value="float32">32-bit floating point</option> <option value="float64">64-bit floating point</option> <option value="int8">8-bit signed integer</option> <option value="int16">16-bit signed integer</option> <option value="int32">32-bit signed integer</option> <option value="uint8">8-bit unsigned integer</option> <option value="uint16">16-bit unsigned integer</option> <option value="uint32">32-bit unsigned integer</option> </param> <repeat name="inputs" title="Input images" min="1"> <param name="image" type="data" format="png,tiff" label="Image" /> <param name="name" type="text" label="Variable for representation of the image within the expression" optional="false"> <validator type="regex">^[a-zA-Z_][a-zA-Z0-9_]*$</validator> </param> </repeat> </inputs> <outputs> <data format="tiff" name="result" from_work_dir="result.tiff" /> </outputs> <tests> <!-- Multiplication with a scalar --> <test> <!-- GIA204: :relax_indent: python '$__tool_directory__/image_math.py' ––expression='input1 * 2' ––dtype='' ––input='input1:input1.tiff' ––output='./result.tiff' --> <param name="expression" value="input1 * 2" /> <repeat name="inputs"> <param name="image" value="input1.tiff" /> <param name="name" value="input1" /> </repeat> <expand macro="tests/intensity_image_diff" name="result" value="input1_times_2.tiff" ftype="tiff"/> </test> <!-- Unary negation operator --> <test> <!-- GIA204: :relax_indent: python '$__tool_directory__/image_math.py' ––expression='-input1' ––dtype='' ––input='input1:input1.tiff' ––output='./result.tiff' --> <param name="expression" value="-input1" /> <repeat name="inputs"> <param name="image" value="input1.tiff" /> <param name="name" value="input1" /> </repeat> <expand macro="tests/intensity_image_diff" name="result" value="minus_input1.tiff" ftype="tiff"/> </test> <!-- Binary addition, neutral element, addition with scalar --> <test> <!-- GIA204: :relax_indent: python '$__tool_directory__/image_math.py' ––expression='input1 + input2 + 1' ––dtype='' ––input='input1:input1.tiff' ––input='input2:minus_input1.tiff' ––output='./result.tiff' --> <param name="expression" value="input1 + input2 + 1" /> <repeat name="inputs"> <param name="image" value="input1.tiff" /> <param name="name" value="input1" /> </repeat> <repeat name="inputs"> <param name="image" value="minus_input1.tiff" /> <param name="name" value="input2" /> </repeat> <expand macro="tests/intensity_image_diff" name="result" value="ones.tiff" ftype="tiff"/> </test> <!-- Parentheses --> <test> <!-- GIA204: :relax_indent: python '$__tool_directory__/image_math.py' ––expression='(input1 + input2) / 2' ––dtype='' ––input='input1:input1.tiff' ––input='input2:ones.tiff' ––output='./result.tiff' --> <param name="expression" value="(input1 + input2) / 2" /> <repeat name="inputs"> <param name="image" value="input1.tiff" /> <param name="name" value="input1" /> </repeat> <repeat name="inputs"> <param name="image" value="ones.tiff" /> <param name="name" value="input2" /> </repeat> <expand macro="tests/intensity_image_diff" name="result" value="half_of_input1_plus_one.tiff" ftype="tiff"/> </test> <!-- Abs --> <test> <!-- GIA204: :relax_indent: python '$__tool_directory__/image_math.py' ––expression='abs(input)' ––dtype='' ––input='input:input1.tiff' ––output='./result.tiff' --> <param name="expression" value="abs(input)" /> <repeat name="inputs"> <param name="image" value="input1.tiff" /> <param name="name" value="input" /> </repeat> <expand macro="tests/intensity_image_diff" name="result" value="input1_abs.tiff" ftype="tiff"/> </test> <!-- Decimal, conversion to explicit `dtype` --> <test> <!-- GIA204: :relax_indent: python '$__tool_directory__/image_math.py' ––expression='input1 / 0.5' ––dtype='uint8' ––input='input1:input1.tiff' ––output='./result.tiff' --> <param name="expression" value="input1 / 0.5" /> <param name="dtype" value="uint8" /> <repeat name="inputs"> <param name="image" value="input1.tiff" /> <param name="name" value="input1" /> </repeat> <expand macro="tests/intensity_image_diff" name="result" value="input1_times_2_uint8.tiff" ftype="tiff"/> </test> </tests> <help> **Processes images according to pixel-wise arithmetic expressions.** The supported pixel-wise expressions are: - Addition, subtraction, multiplication, and division (``+``, ``-``, ``*``, ``/``) - Integer division (e.g., ``input // 2``) - Power (e.g., ``input ** 2``) - Negation (e.g., ``-input``) - Absolute values (e.g., ``abs(input)``) - Square root (e.g., ``sqrt(input)``) - Combinations of the above (also using parentheses) Examples: - **Negate an image.** Expression: ``-image`` where ``image`` is an arbitrary input image. - **Mean of two images.** Expression: ``(image1 + image2) / 2`` where ``image1`` and `image2` are two arbitrary input images. - **Perform division avoiding division-by-zero.** Expression: ``image1 / (abs(image2) + 1e-8)`` where ``image1`` and `image2` are two arbitrary input images. </help> <citations> <citation type="doi">10.1038/s41586-020-2649-2</citation> </citations> </tool>
