changeset 9:6fc9f6dbcef5 draft default tip

planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit bbcbf9c32acaedffb78f0caef47faeed8f68cb52
author recetox
date Fri, 16 May 2025 10:14:27 +0000
parents bf32ae95a06f
children
files macros.xml waveica.xml waveica_wrapper.R
diffstat 3 files changed, 109 insertions(+), 137 deletions(-) [+]
line wrap: on
line diff
--- a/macros.xml	Tue Aug 06 14:27:48 2024 +0000
+++ b/macros.xml	Fri May 16 10:14:27 2025 +0000
@@ -22,29 +22,14 @@
 
     <xml name="annotation">
         <xrefs>
-               <xref type="bio.tools">waveica</xref>
+            <xref type="bio.tools">waveica</xref>
         </xrefs>
      </xml>
 
     <xml name="input_data">
-        <param type="data" name="data" label="Feature table" format="csv,tsv,parquet" help=""/>
-    </xml>
-    <xml name="general_parameters">
-        <param type="integer" value="20" name="k" label="Number of components to decompose" help="maximal component that ICA decomposes"/>
-        <param type="float" value="0" name="alpha" label="Alpha" help="trade-off value between the independence of samples (temporal ICA) and variables (spatial ICA), should be between 0 and 1"/>
+        <param type="data" name="data" label="Feature table" format="csv,tsv,tabular,parquet" help=""/>
     </xml>
-    <xml name="batchwise_parameters">
-        <param type="float" value="0.05" name="t" label="Batch-association threshold" help="threshold to consider a component associate with the batch,
-        should be between 0 and 1"/>
-        <param type="float" value="0.05" name="t2" label="Group-association threshold" help="threshold to consider a component associate with the group,
-        should be between 0 and 1"/>
-    </xml>
-    <xml name="singlebatch_parameters">
-        <param type="float" value="0" name="cutoff" label="Cutoff" help="threshold of the variation explained by the injection order for independent components, should be between 0 and 1"/>
-    </xml>
-    <xml name="exclude_blanks">
-        <param name="exclude_blanks" type="boolean" checked="false" truevalue="TRUE" falsevalue="FALSE" label="Remove blanks" help="Excludes blank samples from the output" />
-    </xml>
+
     <xml name="wf">
         <conditional name="wf">
             <param type="select" name="wavelet_filter" label="Wavelet transform filter" help="wavelet function and filter length [1] (see footnotes for more details)">
--- a/waveica.xml	Tue Aug 06 14:27:48 2024 +0000
+++ b/waveica.xml	Fri May 16 10:14:27 2025 +0000
@@ -1,4 +1,4 @@
-<tool id="waveica" name="WaveICA" version="@TOOL_VERSION@+galaxy8" profile="21.09">
+<tool id="waveica" name="WaveICA" version="@TOOL_VERSION@+galaxy9" profile="23.0">
     <description>removal of batch effects for untargeted metabolomics data</description>
     <macros>
         <import>macros.xml</import>
@@ -18,8 +18,8 @@
             -e 'normalized_data <- waveica(
                 file = "$input_num.data",
                 #if $input_num.input_choice == "2":
-                    metadata = "$input_num.input_metadata.metadata",
-                    ext = "$input_num.data.ext,$input_num.input_metadata.metadata.ext",
+                    metadata = "$input_num.metadata",
+                    ext = "$input_num.data.ext,$input_num.metadata.ext",
                     transpose = $input_num.transpose_feature_table,
                 #else:
                     ext = "$input_num.data.ext",
@@ -36,8 +36,8 @@
             -e 'normalized_data <- waveica_singlebatch( 
                 file = "$input_num.data",
                 #if $input_num.input_choice == "2":
-                    metadata = "$input_num.input_metadata.metadata",
-                    ext = "$input_num.data.ext,$input_num.input_metadata.metadata.ext",
+                    metadata = "$input_num.metadata",
+                    ext = "$input_num.data.ext,$input_num.metadata.ext",
                     transpose = $input_num.transpose_feature_table,
                 #else:
                     ext = "$input_num.data.ext",
@@ -65,14 +65,13 @@
             </when>
             <when value="2">
                 <expand macro="input_data"/>
-                <section name="input_metadata" title="Input metadata table" expanded="true">
-                    <param name="metadata" label="Input metadata" type="data" format="csv,tsv,parquet" help="" />
-                </section>
+                <param name="metadata" label="Input metadata" type="data" format="csv,tsv,tabular,parquet" help="" />
                 <param name = "transpose_feature_table" label="Transpose feature table" type="boolean" checked="false" 
                 truevalue="TRUE" falsevalue="FALSE" help="Swap sample names with feature names as column headers (to fit recetox-aplcms outputs)." />
             </when>
         </conditional>
-        <expand macro="general_parameters"/>
+        <param type="integer" value="20" name="k" label="Number of components to decompose" help="maximal component that ICA decomposes"/>
+        <param type="float" value="0" name="alpha" label="Alpha" help="trade-off value between the independence of samples (temporal ICA) and variables (spatial ICA), should be between 0 and 1"/>
         <expand macro="wf"/>
         <conditional name="batch_correction">
             <param name="mode" type="select" label="Batch correction mode" help="'multiple batches' takes into account
@@ -82,13 +81,14 @@
                 <option value="single_batch">Single batch (or no batch information)</option>
             </param>
             <when value="batchwise">
-                <expand macro="batchwise_parameters"/>
+                <param type="float" value="0.05" name="t" label="Batch-association threshold" help="threshold to consider a component associate with the batch, should be between 0 and 1"/>
+                <param type="float" value="0.05" name="t2" label="Group-association threshold" help="threshold to consider a component associate with the group, should be between 0 and 1"/>
             </when>
             <when value="single_batch">
-                <expand macro="singlebatch_parameters"/>
+                <param type="float" value="0" name="cutoff" label="Cutoff" help="threshold of the variation explained by the injection order for independent components, should be between 0 and 1"/>
             </when>
         </conditional>
-        <expand macro="exclude_blanks"/>
+        <param name="exclude_blanks" type="boolean" checked="false" truevalue="TRUE" falsevalue="FALSE" label="Remove blanks" help="Excludes blank samples from the output" />
         <expand macro="split_output"/>
     </inputs>
 
@@ -96,153 +96,140 @@
 
     <tests>
         <test expect_num_outputs="1"><!-- TEST 1 -->
-            <param name="data" value="input_data.csv" ftype="csv"/>
-            <param name="mode" value="batchwise"/>
-            <param name="wavelet_filter" value="d"/>
-            <param name="wavelet_length" value="2"/>
+            <conditional name="input_num">
+                <param name="data" value="input_data.csv" ftype="csv"/>
+            </conditional>
+            <param name="alpha" value="0"/>
             <param name="k" value="20"/>
-            <param name="t" value="0.05"/>
-            <param name="t2" value="0.05"/>
-            <param name="alpha" value="0"/>
+            <conditional name="wf">
+                <param name="wavelet_filter" value="d"/>
+                <param name="wavelet_length" value="2"/>
+            </conditional>
+            <conditional name="batch_correction">
+                <param name="mode" value="batchwise"/>
+                <param name="t" value="0.05"/>
+                <param name="t2" value="0.05"/>
+            </conditional>
             <output name="normalized_data" file="normalized_data.tsv" ftype="tabular"/>
         </test>
         <test expect_num_outputs="1"><!-- TEST 2 -->
-            <param name="data" value="input_data.tsv" ftype="tsv"/>
-            <param name="mode" value="batchwise"/>
-            <param name="wavelet_filter" value="d"/>
-            <param name="wavelet_length" value="2"/>
+            <conditional name="input_num">
+                <param name="data" value="input_data.tsv" ftype="tsv"/>
+            </conditional>
+            <param name="alpha" value="0"/>
             <param name="k" value="20"/>
-            <param name="t" value="0.05"/>
-            <param name="t2" value="0.05"/>
-            <param name="alpha" value="0"/>
+            <conditional name="wf">
+                <param name="wavelet_filter" value="d"/>
+                <param name="wavelet_length" value="2"/>
+            </conditional>
+            <conditional name="batch_correction">
+                <param name="mode" value="batchwise"/>
+                <param name="t" value="0.05"/>
+                <param name="t2" value="0.05"/>
+            </conditional>
             <output name="normalized_data" file="normalized_data.tsv" ftype="tabular"/>
         </test>
         <test expect_num_outputs="1"><!-- TEST 3 -->
-            <param name="data" value="input_data.parquet" ftype="parquet"/>
-            <param name="mode" value="batchwise"/>
-            <param name="wavelet_filter" value="d"/>
-            <param name="wavelet_length" value="2"/>
+            <conditional name="input_num">
+                <param name="data" value="input_data.parquet" ftype="parquet"/>
+            </conditional>
             <param name="k" value="20"/>
-            <param name="t" value="0.05"/>
-            <param name="t2" value="0.05"/>
             <param name="alpha" value="0"/>
+            <conditional name="wf">
+                <param name="wavelet_filter" value="d"/>
+                <param name="wavelet_length" value="2"/>
+            </conditional>
+            <conditional name="batch_correction">
+                <param name="mode" value="batchwise"/>
+                <param name="t" value="0.05"/>
+                <param name="t2" value="0.05"/>
+            </conditional>
             <output name="normalized_data" file="normalized_data.parquet" ftype="parquet"/>
         </test>
         <test expect_num_outputs="1"><!-- TEST 4 -->
-            <param name="input_choice" value="2"/>
-            <param name="data" value="feature_table.csv" ftype="csv"/>
-            <param name="metadata" value="metadata.csv" ftype="csv"/>
-            <param name="mode" value="batchwise"/>
-            <param name="wavelet_filter" value="d"/>
-            <param name="wavelet_length" value="2"/>
+            <conditional name="input_num">
+                <param name="input_choice" value="2"/>
+                <param name="data" value="feature_table.csv" ftype="csv"/>
+                <param name="metadata" value="metadata.csv" ftype="csv"/>
+            </conditional>
+            <param name="alpha" value="0"/>
             <param name="k" value="20"/>
-            <param name="t" value="0.05"/>
-            <param name="t2" value="0.05"/>
-            <param name="alpha" value="0"/>
+            <conditional name="wf">
+                <param name="wavelet_filter" value="d"/>
+                <param name="wavelet_length" value="2"/>
+            </conditional>
+            <conditional name="batch_correction">
+                <param name="mode" value="batchwise"/>
+                <param name="t" value="0.05"/>
+                <param name="t2" value="0.05"/>
+            </conditional>
             <output name="normalized_data" file="normalized_data.tsv" ftype="tabular"/>
         </test>
         <test expect_num_outputs="1"><!-- TEST 5 -->
-            <param name="input_choice" value="2"/>
-            <param name="data" value="feature_table.tsv" ftype="tsv"/>
-            <param name="metadata" value="metadata.tsv" ftype="tsv"/>
-            <param name="mode" value="batchwise"/>
-            <param name="wavelet_filter" value="d"/>
-            <param name="wavelet_length" value="2"/>
-            <param name="k" value="20"/>
-            <param name="t" value="0.05"/>
-            <param name="t2" value="0.05"/>
-            <param name="alpha" value="0"/>
+            <conditional name="input_num">
+                <param name="input_choice" value="2"/>
+                <param name="data" value="feature_table.tsv" ftype="tabular"/>
+                <param name="metadata" value="metadata.tsv" ftype="tabular"/>
+            </conditional>
             <output name="normalized_data" file="normalized_data.tsv" ftype="tabular"/>
         </test>
         <test expect_num_outputs="1"><!-- TEST 6 -->
-            <param name="input_choice" value="2"/>
-            <param name="data" value="feature_table.parquet" ftype="parquet"/>
-            <param name="metadata" value="metadata.csv" ftype="csv"/>
-            <param name="mode" value="batchwise"/>
-            <param name="wavelet_filter" value="d"/>
-            <param name="wavelet_length" value="2"/>
-            <param name="k" value="20"/>
-            <param name="t" value="0.05"/>
-            <param name="t2" value="0.05"/>
-            <param name="alpha" value="0"/>
+            <conditional name="input_num">
+                <param name="input_choice" value="2"/>
+                <param name="data" value="feature_table.parquet" ftype="parquet"/>
+                <param name="metadata" value="metadata.csv" ftype="csv"/>
+            </conditional>
             <output name="normalized_data" file="normalized_data.parquet" compare="sim_size" delta="200" ftype="parquet"/>
         </test>
         <test expect_num_outputs="1"><!-- TEST 7 -->
-            <param name="input_choice" value="2"/>
-            <param name="data" value="feature_table_transpose_version.parquet" ftype="parquet"/>
-            <param name="metadata" value="metadata.parquet" ftype="parquet"/>
-            <param name="transpose_feature_table" value="TRUE"/>
-            <param name="mode" value="batchwise"/>
-            <param name="wavelet_filter" value="d"/>
-            <param name="wavelet_length" value="2"/>
-            <param name="k" value="20"/>
-            <param name="t" value="0.05"/>
-            <param name="t2" value="0.05"/>
-            <param name="alpha" value="0"/>
+            <conditional name="input_num">
+                <param name="input_choice" value="2"/>
+                <param name="data" value="feature_table_transpose_version.parquet" ftype="parquet"/>
+                <param name="metadata" value="metadata.parquet" ftype="parquet"/>
+                <param name="transpose_feature_table" value="TRUE"/>
+            </conditional>
             <output name="normalized_data" file="normalized_data.parquet" compare="sim_size" delta="200" ftype="parquet"/>
         </test>
         <test expect_num_outputs="1"><!-- TEST 8 -->
-            <param name="input_choice" value="2"/>
-            <param name="data" value="feature_table_transpose_version.csv" ftype="csv"/>
-            <param name="metadata" value="metadata.csv" ftype="csv"/>
-            <param name="transpose_feature_table" value="TRUE"/>
-            <param name="mode" value="batchwise"/>
-            <param name="wavelet_filter" value="d"/>
-            <param name="wavelet_length" value="2"/>
-            <param name="k" value="20"/>
-            <param name="t" value="0.05"/>
-            <param name="t2" value="0.05"/>
-            <param name="alpha" value="0"/>
+            <conditional name="input_num">
+                <param name="input_choice" value="2"/>
+                <param name="data" value="feature_table_transpose_version.csv" ftype="csv"/>
+                <param name="metadata" value="metadata.csv" ftype="csv"/>
+                <param name="transpose_feature_table" value="TRUE"/>
+            </conditional>
             <output name="normalized_data" file="normalized_data.tsv" ftype="tabular"/>
         </test>
-        <!-- The following test has different results on three platform I've tried -->
-        <!-- <test>
-            <param name="data" value="input_data_nobatch.csv" ftype="csv"/>
-            <param name="mode" value="single_batch"/>
-            <param name="wavelet_filter" value="d"/>
-            <param name="filter_length" value="2"/>
-            <param name="k" value="20"/>
-            <param name="alpha" value="0"/>
-            <param name="cutoff" value="0"/>
-            <output name="normalized_data" file="normalized_data_nobatch.tsv"/>
-        </test> -->
         <test expect_num_outputs="2"><!-- TEST 9 -->
-            <param name="input_choice" value="2"/>
-            <param name="data" value="feature_table_transpose_version.parquet" ftype="parquet"/>
-            <param name="metadata" value="metadata.parquet" ftype="parquet"/>
-            <param name="transpose_feature_table" value="TRUE"/>
-            <param name="mode" value="batchwise"/>
-            <param name="wavelet_filter" value="d"/>
-            <param name="wavelet_length" value="2"/>
-            <param name="k" value="20"/>
-            <param name="t" value="0.05"/>
-            <param name="t2" value="0.05"/>
-            <param name="alpha" value="0"/>
+            <conditional name="input_num">
+                <param name="input_choice" value="2"/>
+                <param name="data" value="feature_table_transpose_version.parquet" ftype="parquet"/>
+                <param name="metadata" value="metadata.parquet" ftype="parquet"/>
+                <param name="transpose_feature_table" value="TRUE"/>
+            </conditional>
             <param name="keep_two_output" value="TRUE"/>
             <output name="normalized_data" file="test9_output1.parquet" ftype="parquet"/>
             <output name="metadata" file="test9_output2.parquet" ftype="parquet"/>
         </test>
         <test expect_num_outputs="2"><!-- TEST 10 -->
-            <param name="input_choice" value="2"/>
-            <param name="data" value="feature_table_transpose_version.csv" ftype="csv"/>
-            <param name="metadata" value="metadata.csv" ftype="csv"/>
-            <param name="transpose_feature_table" value="TRUE"/>
-            <param name="mode" value="batchwise"/>
-            <param name="wavelet_filter" value="d"/>
-            <param name="wavelet_length" value="2"/>
-            <param name="k" value="20"/>
-            <param name="t" value="0.05"/>
-            <param name="t2" value="0.05"/>
-            <param name="alpha" value="0"/>
+            <conditional name="input_num">
+                <param name="input_choice" value="2"/>
+                <param name="data" value="feature_table_transpose_version.csv" ftype="csv"/>
+                <param name="metadata" value="metadata.csv" ftype="csv"/>
+                <param name="transpose_feature_table" value="TRUE"/>
+            </conditional>
             <param name="keep_two_output" value="TRUE"/>
             <output name="normalized_data" file="test10_output1.tsv" ftype="tabular"/>
             <output name="metadata" file="test10_output2.tsv" ftype="tabular"/>
         </test>
         <test expect_failure="true"><!-- TEST 11 -->
-            <param name="data" value="na_data.csv" ftype="csv"/>
+            <conditional name="input_num">
+                <param name="data" value="na_data.csv" ftype="csv"/>
+            </conditional>
         </test>
         <test expect_failure="true"><!-- TEST 12 -->
-            <param name="data" value="incomplete_metadata_data.csv" ftype="csv"/>
+            <conditional name="input_num">
+                <param name="data" value="incomplete_metadata_data.csv" ftype="csv"/>
+            </conditional>
         </test>
     </tests>
 
--- a/waveica_wrapper.R	Tue Aug 06 14:27:48 2024 +0000
+++ b/waveica_wrapper.R	Fri May 16 10:14:27 2025 +0000
@@ -17,7 +17,7 @@
 read_data <- function(file, ext) {
     if (ext == "csv") {
         data <- read.csv(file, header = TRUE)
-    } else if (ext == "tsv") {
+    } else if (ext == "tsv" || ext == "tabular") {
         data <- read.csv(file, header = TRUE, sep = "\t")
     } else {
         data <- arrow::read_parquet(file)