diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ipfp_normalisation.xml	Tue Feb 04 09:11:16 2025 +0000
@@ -0,0 +1,92 @@
+<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>
\ No newline at end of file