Mercurial > repos > recetox > waveica
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)