view ipfp_normalisation.xml @ 0:8b5e4ea144a5 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
author iuc
date Tue, 04 Feb 2025 09:11:16 +0000
parents
children
line wrap: on
line source

<tool id="ipfp_norm" name="IPFP Normalisation" version="0.1.0+galaxy0" profile="21.05">
    <requirements>
        <requirement type="package" version="2.2.2">numpy</requirement>
    </requirements>
    <command detect_errors="exit_code"><![CDATA[
    python '${__tool_directory__}/ipfp_normalisation.py'
    --input '$input'

    #if $precision:
        --precision $precision
    #end if

    #if $maxIterations:
        --maxIterations $maxIterations
    #end if

    #if $skipHeaders:
        --skipHeaders $skipHeaders
    #end if

    ]]></command>
    <inputs>
        <param argument="--input" type="data" format="tsv" label="input" help="Input file"/>
        <param argument="--precision" type="float" value="1e-05" optional="true" label="precision" help="Precision"/>
        <param argument="--maxIterations" type="integer" value="50" optional="true" label="maxIterations" help="Max iterations"/>
        <param argument="--skipHeaders" type="integer" value="0" optional="true" label="skipHeaders" help="Skips the first n lines to skip headers"/>
    </inputs>
    <outputs>
        <data name="output" from_work_dir="output.tsv" format="tsv" />
    </outputs>
    <tests>
        <test>
            <param name="input" value="small-input/input.tsv"/>
            <output name="output" file="small-input/output.tsv" />
        </test>
        <test>
            <param name="input" value="medium-input/input.tsv"/>
            <param name="precision" value="1e-08"/>
            <param name="maxIterations" value="100"/>
            <output name="output" file="medium-input/output.tsv" />
        </test>
        <!-- Skip headers -->
        <test>
            <param name="input" value="skip-headers/input.tsv"/>
            <param name="skipHeaders" value="1"/>
            <output name="output" file="skip-headers/output.tsv" />
        </test>
        <!-- Unrealistic precision for the amount of iterations -->
        <test expect_failure="true">
            <param name="input" value="small-input/input.tsv"/>
            <param name="precision" value="1e-20"/>
            <param name="maxIterations" value="20"/>
        </test>
        <!-- Invalid precision -->
        <test expect_failure="true">
            <param name="input" value="small-input/input.tsv"/>
            <param name="precision" value="-0.1"/>
        </test>
        <!-- Invalid maxIterations -->
        <test expect_failure="true">
            <param name="input" value="small-input/input.tsv"/>
            <param name="maxIterations" value="-1"/>
        </test>
        <!-- Negative number in input -->
        <test expect_failure="true">
            <param name="input" value="bad-input/input.tsv"/>
        </test>
    </tests>
    <help><![CDATA[
    This tool normalises a matrix using the Iterative Proportional Fitting Procedure (IPFP).

    The tool takes a matrix consisting of only positive floating point numbers/integers as input and returns the normalized matrix.

    The tool requires a tsv file as input.

    Example input:
    input.tsv:
    ```
    col1        col2        col3
    1.321       3.1023      0.9324
    0.0239      1.1045      0.8301
    0.1234      0.4312      1.2345
    ...         ...         ...
    ```
    precision: 1e-05
    maxIterations: 50
    skipHeaders: 1 (skips the first line, which are the headers)
    ]]></help>
    <citations>
        <citation type="doi">10.1016/j.jmb.2021.166966</citation>
    </citations>
</tool>