comparison waveica.xml @ 9:6fc9f6dbcef5 draft

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 821062fc5782
comparison
equal deleted inserted replaced
8:bf32ae95a06f 9:6fc9f6dbcef5
1 <tool id="waveica" name="WaveICA" version="@TOOL_VERSION@+galaxy8" profile="21.09"> 1 <tool id="waveica" name="WaveICA" version="@TOOL_VERSION@+galaxy9" profile="23.0">
2 <description>removal of batch effects for untargeted metabolomics data</description> 2 <description>removal of batch effects for untargeted metabolomics data</description>
3 <macros> 3 <macros>
4 <import>macros.xml</import> 4 <import>macros.xml</import>
5 </macros> 5 </macros>
6 <expand macro="annotation"/> 6 <expand macro="annotation"/>
16 16
17 #if $batch_correction.mode == "batchwise": 17 #if $batch_correction.mode == "batchwise":
18 -e 'normalized_data <- waveica( 18 -e 'normalized_data <- waveica(
19 file = "$input_num.data", 19 file = "$input_num.data",
20 #if $input_num.input_choice == "2": 20 #if $input_num.input_choice == "2":
21 metadata = "$input_num.input_metadata.metadata", 21 metadata = "$input_num.metadata",
22 ext = "$input_num.data.ext,$input_num.input_metadata.metadata.ext", 22 ext = "$input_num.data.ext,$input_num.metadata.ext",
23 transpose = $input_num.transpose_feature_table, 23 transpose = $input_num.transpose_feature_table,
24 #else: 24 #else:
25 ext = "$input_num.data.ext", 25 ext = "$input_num.data.ext",
26 #end if 26 #end if
27 wavelet_filter = "$wf.wavelet_filter", 27 wavelet_filter = "$wf.wavelet_filter",
34 )' 34 )'
35 #else if $batch_correction.mode == "single_batch": 35 #else if $batch_correction.mode == "single_batch":
36 -e 'normalized_data <- waveica_singlebatch( 36 -e 'normalized_data <- waveica_singlebatch(
37 file = "$input_num.data", 37 file = "$input_num.data",
38 #if $input_num.input_choice == "2": 38 #if $input_num.input_choice == "2":
39 metadata = "$input_num.input_metadata.metadata", 39 metadata = "$input_num.metadata",
40 ext = "$input_num.data.ext,$input_num.input_metadata.metadata.ext", 40 ext = "$input_num.data.ext,$input_num.metadata.ext",
41 transpose = $input_num.transpose_feature_table, 41 transpose = $input_num.transpose_feature_table,
42 #else: 42 #else:
43 ext = "$input_num.data.ext", 43 ext = "$input_num.data.ext",
44 #end if 44 #end if
45 wavelet_filter = "$wf.wavelet_filter", 45 wavelet_filter = "$wf.wavelet_filter",
63 <when value="1"> 63 <when value="1">
64 <expand macro="input_data"/> 64 <expand macro="input_data"/>
65 </when> 65 </when>
66 <when value="2"> 66 <when value="2">
67 <expand macro="input_data"/> 67 <expand macro="input_data"/>
68 <section name="input_metadata" title="Input metadata table" expanded="true"> 68 <param name="metadata" label="Input metadata" type="data" format="csv,tsv,tabular,parquet" help="" />
69 <param name="metadata" label="Input metadata" type="data" format="csv,tsv,parquet" help="" />
70 </section>
71 <param name = "transpose_feature_table" label="Transpose feature table" type="boolean" checked="false" 69 <param name = "transpose_feature_table" label="Transpose feature table" type="boolean" checked="false"
72 truevalue="TRUE" falsevalue="FALSE" help="Swap sample names with feature names as column headers (to fit recetox-aplcms outputs)." /> 70 truevalue="TRUE" falsevalue="FALSE" help="Swap sample names with feature names as column headers (to fit recetox-aplcms outputs)." />
73 </when> 71 </when>
74 </conditional> 72 </conditional>
75 <expand macro="general_parameters"/> 73 <param type="integer" value="20" name="k" label="Number of components to decompose" help="maximal component that ICA decomposes"/>
74 <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"/>
76 <expand macro="wf"/> 75 <expand macro="wf"/>
77 <conditional name="batch_correction"> 76 <conditional name="batch_correction">
78 <param name="mode" type="select" label="Batch correction mode" help="'multiple batches' takes into account 77 <param name="mode" type="select" label="Batch correction mode" help="'multiple batches' takes into account
79 inter- and intrabatch intensity drift; 'single batch' relies only on the injection order of the samples and 78 inter- and intrabatch intensity drift; 'single batch' relies only on the injection order of the samples and
80 requires no batch information [2]"> 79 requires no batch information [2]">
81 <option value="batchwise" selected="true">Multiple batches</option> 80 <option value="batchwise" selected="true">Multiple batches</option>
82 <option value="single_batch">Single batch (or no batch information)</option> 81 <option value="single_batch">Single batch (or no batch information)</option>
83 </param> 82 </param>
84 <when value="batchwise"> 83 <when value="batchwise">
85 <expand macro="batchwise_parameters"/> 84 <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"/>
85 <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"/>
86 </when> 86 </when>
87 <when value="single_batch"> 87 <when value="single_batch">
88 <expand macro="singlebatch_parameters"/> 88 <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"/>
89 </when> 89 </when>
90 </conditional> 90 </conditional>
91 <expand macro="exclude_blanks"/> 91 <param name="exclude_blanks" type="boolean" checked="false" truevalue="TRUE" falsevalue="FALSE" label="Remove blanks" help="Excludes blank samples from the output" />
92 <expand macro="split_output"/> 92 <expand macro="split_output"/>
93 </inputs> 93 </inputs>
94 94
95 <expand macro="outputs"/> 95 <expand macro="outputs"/>
96 96
97 <tests> 97 <tests>
98 <test expect_num_outputs="1"><!-- TEST 1 --> 98 <test expect_num_outputs="1"><!-- TEST 1 -->
99 <param name="data" value="input_data.csv" ftype="csv"/> 99 <conditional name="input_num">
100 <param name="mode" value="batchwise"/> 100 <param name="data" value="input_data.csv" ftype="csv"/>
101 <param name="wavelet_filter" value="d"/> 101 </conditional>
102 <param name="wavelet_length" value="2"/> 102 <param name="alpha" value="0"/>
103 <param name="k" value="20"/> 103 <param name="k" value="20"/>
104 <param name="t" value="0.05"/> 104 <conditional name="wf">
105 <param name="t2" value="0.05"/> 105 <param name="wavelet_filter" value="d"/>
106 <param name="alpha" value="0"/> 106 <param name="wavelet_length" value="2"/>
107 </conditional>
108 <conditional name="batch_correction">
109 <param name="mode" value="batchwise"/>
110 <param name="t" value="0.05"/>
111 <param name="t2" value="0.05"/>
112 </conditional>
107 <output name="normalized_data" file="normalized_data.tsv" ftype="tabular"/> 113 <output name="normalized_data" file="normalized_data.tsv" ftype="tabular"/>
108 </test> 114 </test>
109 <test expect_num_outputs="1"><!-- TEST 2 --> 115 <test expect_num_outputs="1"><!-- TEST 2 -->
110 <param name="data" value="input_data.tsv" ftype="tsv"/> 116 <conditional name="input_num">
111 <param name="mode" value="batchwise"/> 117 <param name="data" value="input_data.tsv" ftype="tsv"/>
112 <param name="wavelet_filter" value="d"/> 118 </conditional>
113 <param name="wavelet_length" value="2"/> 119 <param name="alpha" value="0"/>
114 <param name="k" value="20"/> 120 <param name="k" value="20"/>
115 <param name="t" value="0.05"/> 121 <conditional name="wf">
116 <param name="t2" value="0.05"/> 122 <param name="wavelet_filter" value="d"/>
117 <param name="alpha" value="0"/> 123 <param name="wavelet_length" value="2"/>
124 </conditional>
125 <conditional name="batch_correction">
126 <param name="mode" value="batchwise"/>
127 <param name="t" value="0.05"/>
128 <param name="t2" value="0.05"/>
129 </conditional>
118 <output name="normalized_data" file="normalized_data.tsv" ftype="tabular"/> 130 <output name="normalized_data" file="normalized_data.tsv" ftype="tabular"/>
119 </test> 131 </test>
120 <test expect_num_outputs="1"><!-- TEST 3 --> 132 <test expect_num_outputs="1"><!-- TEST 3 -->
121 <param name="data" value="input_data.parquet" ftype="parquet"/> 133 <conditional name="input_num">
122 <param name="mode" value="batchwise"/> 134 <param name="data" value="input_data.parquet" ftype="parquet"/>
123 <param name="wavelet_filter" value="d"/> 135 </conditional>
124 <param name="wavelet_length" value="2"/> 136 <param name="k" value="20"/>
125 <param name="k" value="20"/> 137 <param name="alpha" value="0"/>
126 <param name="t" value="0.05"/> 138 <conditional name="wf">
127 <param name="t2" value="0.05"/> 139 <param name="wavelet_filter" value="d"/>
128 <param name="alpha" value="0"/> 140 <param name="wavelet_length" value="2"/>
141 </conditional>
142 <conditional name="batch_correction">
143 <param name="mode" value="batchwise"/>
144 <param name="t" value="0.05"/>
145 <param name="t2" value="0.05"/>
146 </conditional>
129 <output name="normalized_data" file="normalized_data.parquet" ftype="parquet"/> 147 <output name="normalized_data" file="normalized_data.parquet" ftype="parquet"/>
130 </test> 148 </test>
131 <test expect_num_outputs="1"><!-- TEST 4 --> 149 <test expect_num_outputs="1"><!-- TEST 4 -->
132 <param name="input_choice" value="2"/> 150 <conditional name="input_num">
133 <param name="data" value="feature_table.csv" ftype="csv"/> 151 <param name="input_choice" value="2"/>
134 <param name="metadata" value="metadata.csv" ftype="csv"/> 152 <param name="data" value="feature_table.csv" ftype="csv"/>
135 <param name="mode" value="batchwise"/> 153 <param name="metadata" value="metadata.csv" ftype="csv"/>
136 <param name="wavelet_filter" value="d"/> 154 </conditional>
137 <param name="wavelet_length" value="2"/> 155 <param name="alpha" value="0"/>
138 <param name="k" value="20"/> 156 <param name="k" value="20"/>
139 <param name="t" value="0.05"/> 157 <conditional name="wf">
140 <param name="t2" value="0.05"/> 158 <param name="wavelet_filter" value="d"/>
141 <param name="alpha" value="0"/> 159 <param name="wavelet_length" value="2"/>
160 </conditional>
161 <conditional name="batch_correction">
162 <param name="mode" value="batchwise"/>
163 <param name="t" value="0.05"/>
164 <param name="t2" value="0.05"/>
165 </conditional>
142 <output name="normalized_data" file="normalized_data.tsv" ftype="tabular"/> 166 <output name="normalized_data" file="normalized_data.tsv" ftype="tabular"/>
143 </test> 167 </test>
144 <test expect_num_outputs="1"><!-- TEST 5 --> 168 <test expect_num_outputs="1"><!-- TEST 5 -->
145 <param name="input_choice" value="2"/> 169 <conditional name="input_num">
146 <param name="data" value="feature_table.tsv" ftype="tsv"/> 170 <param name="input_choice" value="2"/>
147 <param name="metadata" value="metadata.tsv" ftype="tsv"/> 171 <param name="data" value="feature_table.tsv" ftype="tabular"/>
148 <param name="mode" value="batchwise"/> 172 <param name="metadata" value="metadata.tsv" ftype="tabular"/>
149 <param name="wavelet_filter" value="d"/> 173 </conditional>
150 <param name="wavelet_length" value="2"/>
151 <param name="k" value="20"/>
152 <param name="t" value="0.05"/>
153 <param name="t2" value="0.05"/>
154 <param name="alpha" value="0"/>
155 <output name="normalized_data" file="normalized_data.tsv" ftype="tabular"/> 174 <output name="normalized_data" file="normalized_data.tsv" ftype="tabular"/>
156 </test> 175 </test>
157 <test expect_num_outputs="1"><!-- TEST 6 --> 176 <test expect_num_outputs="1"><!-- TEST 6 -->
158 <param name="input_choice" value="2"/> 177 <conditional name="input_num">
159 <param name="data" value="feature_table.parquet" ftype="parquet"/> 178 <param name="input_choice" value="2"/>
160 <param name="metadata" value="metadata.csv" ftype="csv"/> 179 <param name="data" value="feature_table.parquet" ftype="parquet"/>
161 <param name="mode" value="batchwise"/> 180 <param name="metadata" value="metadata.csv" ftype="csv"/>
162 <param name="wavelet_filter" value="d"/> 181 </conditional>
163 <param name="wavelet_length" value="2"/>
164 <param name="k" value="20"/>
165 <param name="t" value="0.05"/>
166 <param name="t2" value="0.05"/>
167 <param name="alpha" value="0"/>
168 <output name="normalized_data" file="normalized_data.parquet" compare="sim_size" delta="200" ftype="parquet"/> 182 <output name="normalized_data" file="normalized_data.parquet" compare="sim_size" delta="200" ftype="parquet"/>
169 </test> 183 </test>
170 <test expect_num_outputs="1"><!-- TEST 7 --> 184 <test expect_num_outputs="1"><!-- TEST 7 -->
171 <param name="input_choice" value="2"/> 185 <conditional name="input_num">
172 <param name="data" value="feature_table_transpose_version.parquet" ftype="parquet"/> 186 <param name="input_choice" value="2"/>
173 <param name="metadata" value="metadata.parquet" ftype="parquet"/> 187 <param name="data" value="feature_table_transpose_version.parquet" ftype="parquet"/>
174 <param name="transpose_feature_table" value="TRUE"/> 188 <param name="metadata" value="metadata.parquet" ftype="parquet"/>
175 <param name="mode" value="batchwise"/> 189 <param name="transpose_feature_table" value="TRUE"/>
176 <param name="wavelet_filter" value="d"/> 190 </conditional>
177 <param name="wavelet_length" value="2"/>
178 <param name="k" value="20"/>
179 <param name="t" value="0.05"/>
180 <param name="t2" value="0.05"/>
181 <param name="alpha" value="0"/>
182 <output name="normalized_data" file="normalized_data.parquet" compare="sim_size" delta="200" ftype="parquet"/> 191 <output name="normalized_data" file="normalized_data.parquet" compare="sim_size" delta="200" ftype="parquet"/>
183 </test> 192 </test>
184 <test expect_num_outputs="1"><!-- TEST 8 --> 193 <test expect_num_outputs="1"><!-- TEST 8 -->
185 <param name="input_choice" value="2"/> 194 <conditional name="input_num">
186 <param name="data" value="feature_table_transpose_version.csv" ftype="csv"/> 195 <param name="input_choice" value="2"/>
187 <param name="metadata" value="metadata.csv" ftype="csv"/> 196 <param name="data" value="feature_table_transpose_version.csv" ftype="csv"/>
188 <param name="transpose_feature_table" value="TRUE"/> 197 <param name="metadata" value="metadata.csv" ftype="csv"/>
189 <param name="mode" value="batchwise"/> 198 <param name="transpose_feature_table" value="TRUE"/>
190 <param name="wavelet_filter" value="d"/> 199 </conditional>
191 <param name="wavelet_length" value="2"/> 200 <output name="normalized_data" file="normalized_data.tsv" ftype="tabular"/>
192 <param name="k" value="20"/> 201 </test>
193 <param name="t" value="0.05"/>
194 <param name="t2" value="0.05"/>
195 <param name="alpha" value="0"/>
196 <output name="normalized_data" file="normalized_data.tsv" ftype="tabular"/>
197 </test>
198 <!-- The following test has different results on three platform I've tried -->
199 <!-- <test>
200 <param name="data" value="input_data_nobatch.csv" ftype="csv"/>
201 <param name="mode" value="single_batch"/>
202 <param name="wavelet_filter" value="d"/>
203 <param name="filter_length" value="2"/>
204 <param name="k" value="20"/>
205 <param name="alpha" value="0"/>
206 <param name="cutoff" value="0"/>
207 <output name="normalized_data" file="normalized_data_nobatch.tsv"/>
208 </test> -->
209 <test expect_num_outputs="2"><!-- TEST 9 --> 202 <test expect_num_outputs="2"><!-- TEST 9 -->
210 <param name="input_choice" value="2"/> 203 <conditional name="input_num">
211 <param name="data" value="feature_table_transpose_version.parquet" ftype="parquet"/> 204 <param name="input_choice" value="2"/>
212 <param name="metadata" value="metadata.parquet" ftype="parquet"/> 205 <param name="data" value="feature_table_transpose_version.parquet" ftype="parquet"/>
213 <param name="transpose_feature_table" value="TRUE"/> 206 <param name="metadata" value="metadata.parquet" ftype="parquet"/>
214 <param name="mode" value="batchwise"/> 207 <param name="transpose_feature_table" value="TRUE"/>
215 <param name="wavelet_filter" value="d"/> 208 </conditional>
216 <param name="wavelet_length" value="2"/>
217 <param name="k" value="20"/>
218 <param name="t" value="0.05"/>
219 <param name="t2" value="0.05"/>
220 <param name="alpha" value="0"/>
221 <param name="keep_two_output" value="TRUE"/> 209 <param name="keep_two_output" value="TRUE"/>
222 <output name="normalized_data" file="test9_output1.parquet" ftype="parquet"/> 210 <output name="normalized_data" file="test9_output1.parquet" ftype="parquet"/>
223 <output name="metadata" file="test9_output2.parquet" ftype="parquet"/> 211 <output name="metadata" file="test9_output2.parquet" ftype="parquet"/>
224 </test> 212 </test>
225 <test expect_num_outputs="2"><!-- TEST 10 --> 213 <test expect_num_outputs="2"><!-- TEST 10 -->
226 <param name="input_choice" value="2"/> 214 <conditional name="input_num">
227 <param name="data" value="feature_table_transpose_version.csv" ftype="csv"/> 215 <param name="input_choice" value="2"/>
228 <param name="metadata" value="metadata.csv" ftype="csv"/> 216 <param name="data" value="feature_table_transpose_version.csv" ftype="csv"/>
229 <param name="transpose_feature_table" value="TRUE"/> 217 <param name="metadata" value="metadata.csv" ftype="csv"/>
230 <param name="mode" value="batchwise"/> 218 <param name="transpose_feature_table" value="TRUE"/>
231 <param name="wavelet_filter" value="d"/> 219 </conditional>
232 <param name="wavelet_length" value="2"/>
233 <param name="k" value="20"/>
234 <param name="t" value="0.05"/>
235 <param name="t2" value="0.05"/>
236 <param name="alpha" value="0"/>
237 <param name="keep_two_output" value="TRUE"/> 220 <param name="keep_two_output" value="TRUE"/>
238 <output name="normalized_data" file="test10_output1.tsv" ftype="tabular"/> 221 <output name="normalized_data" file="test10_output1.tsv" ftype="tabular"/>
239 <output name="metadata" file="test10_output2.tsv" ftype="tabular"/> 222 <output name="metadata" file="test10_output2.tsv" ftype="tabular"/>
240 </test> 223 </test>
241 <test expect_failure="true"><!-- TEST 11 --> 224 <test expect_failure="true"><!-- TEST 11 -->
242 <param name="data" value="na_data.csv" ftype="csv"/> 225 <conditional name="input_num">
226 <param name="data" value="na_data.csv" ftype="csv"/>
227 </conditional>
243 </test> 228 </test>
244 <test expect_failure="true"><!-- TEST 12 --> 229 <test expect_failure="true"><!-- TEST 12 -->
245 <param name="data" value="incomplete_metadata_data.csv" ftype="csv"/> 230 <conditional name="input_num">
231 <param name="data" value="incomplete_metadata_data.csv" ftype="csv"/>
232 </conditional>
246 </test> 233 </test>
247 </tests> 234 </tests>
248 235
249 <help> 236 <help>
250 <![CDATA[ 237 <![CDATA[