comparison abims_xcms_xcmsSet.xml @ 12:15646e937936 draft

planemo upload for repository https://github.com/workflow4metabolomics/xcms commit a6f5f18b3d6130f7d7fbb9f2df856838c6217797
author lecorguille
date Fri, 07 Apr 2017 07:35:01 -0400
parents 91311aa08cdc
children c934dd5c49a9
comparison
equal deleted inserted replaced
11:91311aa08cdc 12:15646e937936
1 <tool id="abims_xcms_xcmsSet" name="xcms.xcmsSet" version="2.0.11"> 1 <tool id="abims_xcms_xcmsSet" name="xcms.xcmsSet" version="2.1.0">
2
3 <description>Filtration and Peak Identification using xcmsSet function from xcms R package to preprocess LC/MS data for relative quantification and statistical analysis </description> 2 <description>Filtration and Peak Identification using xcmsSet function from xcms R package to preprocess LC/MS data for relative quantification and statistical analysis </description>
4 3
5 <macros> 4 <macros>
6 <import>macros.xml</import> 5 <import>macros.xml</import>
7 </macros> 6 </macros>
9 <expand macro="requirements"/> 8 <expand macro="requirements"/>
10 <expand macro="stdio"/> 9 <expand macro="stdio"/>
11 10
12 <command><![CDATA[ 11 <command><![CDATA[
13 @COMMAND_XCMS_SCRIPT@ 12 @COMMAND_XCMS_SCRIPT@
14 #if $inputs.input == "lib": 13
15 library $__app__.config.user_library_import_dir/$__user_email__/$inputs.library 14 #if $input.is_of_type("mzxml") or $input.is_of_type("mzml") or $input.is_of_type("mzdata") or $input.is_of_type("netcdf"):
16 #elif $inputs.input == "zip_file": 15 singlefile_galaxyPath '$input' singlefile_sampleName '$input.name'
17 zipfile $inputs.zip_file 16 #else
17 zipfile '$input'
18 #end if 18 #end if
19 19
20 xfunction xcmsSet 20 xfunction xcmsSet
21 21
22 xsetRdataOutput $xsetRData 22 xsetRdataOutput '$xsetRData'
23 sampleMetadataOutput $sampleMetadata 23 sampleMetadataOutput '$sampleMetadata'
24 ticspdf $ticsRawPdf 24 ticspdf '$ticsRawPdf'
25 bicspdf $bpcsRawPdf 25 bicspdf '$bpcsRawPdf'
26 26
27 27
28 #if $options_scanrange.option == "show": 28 #if $options_scanrange.option == "show":
29 scanrange "c($options_scanrange.scanrange)" 29 scanrange "c($options_scanrange.scanrange)"
30 #end if 30 #end if
46 fwhm $methods.fwhm 46 fwhm $methods.fwhm
47 #if $methods.options_m.option == "show": 47 #if $methods.options_m.option == "show":
48 ## sigma "$methods.options_m.sigma" 48 ## sigma "$methods.options_m.sigma"
49 max $methods.options_m.max 49 max $methods.options_m.max
50 snthresh $methods.options_m.snthresh 50 snthresh $methods.options_m.snthresh
51 ## mzdiff $methods.options_m.mzdiff
52 steps $methods.options_m.steps 51 steps $methods.options_m.steps
53 ## sleep $methods.options_m.sleep 52 mzdiff $methods.options_m.mzdiff
54 #end if 53 #end if
55 #elif $methods.method == "MSW": 54 #elif $methods.method == "MSW":
56 snthr $methods.snthr 55 snthr $methods.snthr
57 nearbyPeak $methods.nearbyPeak 56 nearbyPeak $methods.nearbyPeak
58 winSize.noise $methods.winSize_noise 57 winSize.noise $methods.winSize_noise
63 @COMMAND_LOG_EXIT@ 62 @COMMAND_LOG_EXIT@
64 ]]></command> 63 ]]></command>
65 64
66 <inputs> 65 <inputs>
67 66
68 <conditional name="inputs"> 67 <param name="input" type="data" format="mzxml,mzml,mzdata,netcdf,no_unzip.zip,zip" label="File(s) from your history containing your chromatograms" help="Single file mode for the format: mzxml, mzml, mzdata and netcdf. Zip file mode for the format: no_unzip.zip, zip. See the help section below." />
69 <param name="input" type="select" label="Choose your inputs method" >
70 <option value="zip_file" selected="true">Zip file from your history containing your chromatograms</option>
71 <option value="lib" >Library directory name</option>
72 </param>
73 <when value="zip_file">
74 <param name="zip_file" type="data" format="no_unzip.zip,zip" label="Zip file" />
75 </when>
76 <when value="lib">
77 <param name="library" type="text" size="40" label="Library directory name" help="The name of your directory containing all your data" >
78 <validator type="empty_field"/>
79 </param>
80 </when>
81
82 </conditional>
83 68
84 <conditional name="options_scanrange"> 69 <conditional name="options_scanrange">
85 <param name="option" type="select" label="Scan range option " > 70 <param name="option" type="select" label="Scan range option " >
86 <option value="show">show</option> 71 <option value="show">show</option>
87 <option value="hide" selected="true">hide</option> 72 <option value="hide" selected="true">hide</option>
101 <option value="bin" selected="true">bin</option> 86 <option value="bin" selected="true">bin</option>
102 <option value="binlin">binlin</option> 87 <option value="binlin">binlin</option>
103 <option value="binlinbase">binlinbase</option> 88 <option value="binlinbase">binlinbase</option>
104 <option value="intlin">intlin</option> 89 <option value="intlin">intlin</option>
105 </param> 90 </param>
106 <param name="nSlaves" type="integer" value="9" label="MPI-slaves CPU" help="number of MPI-slaves to use for parallel peak detection" />
107 --> 91 -->
108 <conditional name="methods"> 92 <conditional name="methods">
109 <param name="method" type="select" label="Extraction method for peaks detection" help="[method] See the help section below"> 93 <param name="method" type="select" label="Extraction method for peaks detection" help="[method] See the help section below">
110 <option value="centWave" >centWave</option> 94 <option value="centWave" >centWave</option>
111 <option value="matchedFilter" selected="true">matchedFilter</option> 95 <option value="matchedFilter" selected="true">matchedFilter</option>
114 98
115 <!-- centWave Filter options --> 99 <!-- centWave Filter options -->
116 <when value="centWave"> 100 <when value="centWave">
117 <param name="ppm" type="integer" value="25" label="Max tolerated ppm m/z deviation in consecutive scans in ppm" help="[ppm]" /> 101 <param name="ppm" type="integer" value="25" label="Max tolerated ppm m/z deviation in consecutive scans in ppm" help="[ppm]" />
118 <param name="peakwidth" type="text" value="20,50" label="Min,Max peak width in seconds" help="[peakwidth]" /> 102 <param name="peakwidth" type="text" value="20,50" label="Min,Max peak width in seconds" help="[peakwidth]" />
119 103
120 <conditional name="options_c"> 104 <conditional name="options_c">
121 <param name="option" type="select" label="Advanced options" > 105 <param name="option" type="select" label="Advanced options" >
122 <option value="show">show</option> 106 <option value="show">show</option>
123 <option value="hide" selected="true">hide</option> 107 <option value="hide" selected="true">hide</option>
124 </param> 108 </param>
125 <when value="show"> 109 <when value="show">
126 <param name="snthresh" type="integer" value="10" label="Signal/Noise threshold" help="[snthresh] Signal to noise ratio cutoff" /> 110 <param name="snthresh" type="integer" value="10" label="Signal/Noise threshold" help="[snthresh] Signal to noise ratio cutoff" />
127 <param name="mzdiff" type="float" value="-0.001" label="Min m/z difference" help="[mzdiff] Min m/z difference for peaks with overlapping RT " /> 111 <param name="mzdiff" type="float" value="-0.001" label="Minimum difference in m/z for peaks with overlapping retention times" help="[mzdiff] Can be negative to allow overlap" />
128 <param name="integrate" type="select" label="peak limits method" help="[integrate]" > 112 <param name="integrate" type="select" label="peak limits method" help="[integrate]" >
129 <option value="1">peak limits based on smoothed 2nd derivative (less precise)</option> 113 <option value="1">peak limits based on smoothed 2nd derivative (less precise)</option>
130 <option value="2">peak limits based on real data (more sensitive to noise)</option> 114 <option value="2">peak limits based on real data (more sensitive to noise)</option>
131 </param> 115 </param>
132 <param name="prefilter" type="text" value="3,100" label="Prefilter step for the first phase" help="[prefilter] Separate by coma k,I. Mass traces are only retained if they contain at least ‘k’ peaks with intensity >= ‘I’"/> 116 <param name="prefilter" type="text" value="3,100" label="Prefilter step for the first phase" help="[prefilter] Separate by coma k,I. Mass traces are only retained if they contain at least ‘k’ peaks with intensity >= ‘I’"/>
137 </conditional> 121 </conditional>
138 </when> 122 </when>
139 123
140 <!-- matched Filter options --> 124 <!-- matched Filter options -->
141 <when value="matchedFilter"> 125 <when value="matchedFilter">
142 <param name="step" type="float" value="0.01" label="Step size to use for profile generation" help="[step] The peak detection algorithm creates extracted ion base peak chromatograms (EIBPC) on a fixed step size" /> 126 <param name="step" type="float" value="0.1" label="Step size to use for profile generation" help="[step] The peak detection algorithm creates extracted ion base peak chromatograms (EIBPC) on a fixed step size" />
143 <param name="fwhm" type="integer" value="30" label="Full width at half maximum of matched filtration gaussian model peak" help="[fwhm] Only used to calculate the actual sigma" /> 127 <param name="fwhm" type="integer" value="30" label="Full width at half maximum of matched filtration gaussian model peak" help="[fwhm] Only used to calculate the actual sigma" />
144 <conditional name="options_m"> 128 <conditional name="options_m">
145 <param name="option" type="select" label="Advanced options" > 129 <param name="option" type="select" label="Advanced options" >
146 <option value="show">show</option> 130 <option value="show">show</option>
147 <option value="hide" selected="true">hide</option> 131 <option value="hide" selected="true">hide</option>
148 </param> 132 </param>
149 <when value="show"> 133 <when value="show">
150 <!-- 134 <!--<param name="sigma" type="float" value="12.739935451" label="Standard deviation (width) of matched filtration model peak" help="[sigma] By default: fwhm/2.3548" />-->
151 <param name="sigma" type="hidden" value="fwhm/2.3548" label="sigma" help="standard deviation (fwhm/2.3548)" />
152 -->
153 <param name="max" type="integer" value="5" label="Maximum number of peaks per extracted ion chromatogram" help="[max]" /> 135 <param name="max" type="integer" value="5" label="Maximum number of peaks per extracted ion chromatogram" help="[max]" />
154 <param name="snthresh" type="integer" value="10" label="Signal to noise ratio cutoff" help="[snthresh]" /> 136 <param name="snthresh" type="integer" value="10" label="Signal to noise ratio cutoff" help="[snthresh]" />
155 <param name="steps" type="integer" value="2" label="Number of steps to merge prior to filtration" help="[steps] The peak identification algorithm combines a given number of EIBPCs prior to filtration and peak detection, as defined by the steps argument" /> 137 <param name="steps" type="integer" value="2" label="Number of steps to merge prior to filtration" help="[steps] The peak identification algorithm combines a given number of EIBPCs prior to filtration and peak detection, as defined by the steps argument" />
156 <!-- 138 <param name="mzdiff" type="float" value="0.6" label="Minimum difference in m/z for peaks with overlapping Retention Times" help="[mzdiff] By default: 0.8-step*steps " />
157 <param name="mzdiff" type="text" size="20" value="0.8-step*steps" label="m/z difference" help="min m/z difference for peaks with overlapping RT " />
158 -->
159 </when> 139 </when>
160 <when value="hide"> 140 <when value="hide">
161 </when> 141 </when>
162 </conditional> 142 </conditional>
163 </when> 143 </when>
176 </when> 156 </when>
177 </conditional> 157 </conditional>
178 </inputs> 158 </inputs>
179 159
180 <outputs> 160 <outputs>
181 <data name="xsetRData" format="rdata.xcms.raw" label="xset.RData" /> 161 <data name="xsetRData" format="rdata.xcms.raw" label="${input.name.rsplit('.',1)[0]}.xset.RData" />
182 <data name="sampleMetadata" format="tabular" label="sampleMetadata.tsv" /> 162 <data name="sampleMetadata" format="tabular" label="${input.name.rsplit('.',1)[0]}.sampleMetadata.tsv">
183 <data name="ticsRawPdf" format="pdf" label="xset.TICs_raw.pdf" /> 163 <filter>input.extension not in ["mzxml","mzml","mzdata","netcdf"]</filter>
184 <data name="bpcsRawPdf" format="pdf" label="xset.BPCs_raw.pdf" /> 164 </data>
185 <data name="log" format="txt" label="xset.log.txt" /> 165 <data name="ticsRawPdf" format="pdf" label="${input.name.rsplit('.',1)[0]}.xset.TICs_raw.pdf" />
166 <data name="bpcsRawPdf" format="pdf" label="${input.name.rsplit('.',1)[0]}.xset.BPCs_raw.pdf" />
167 <data name="log" format="txt" label="${input.name.rsplit('.',1)[0]}.xset.log.txt" />
186 </outputs> 168 </outputs>
187 169
188 <tests> 170 <tests>
189 <!--<test> 171 <!--<test>
190 <param name="inputs|input" value="zip_file" /> 172 <param name="input" value="sacuri_dir_root.zip" ftype="zip" />
191 <param name="inputs|zip_file" value="sacuri_dir_root.zip" ftype="zip" />
192 <param name="methods|method" value="matchedFilter" /> 173 <param name="methods|method" value="matchedFilter" />
193 <param name="methods|step" value="0.01" /> 174 <param name="methods|step" value="0.01" />
194 <param name="methods|fwhm" value="4" /> 175 <param name="methods|fwhm" value="4" />
195 <param name="methods|options_m|option" value="show" /> 176 <param name="methods|options_m|option" value="show" />
196 <param name="methods|options_m|max" value="50" /> 177 <param name="methods|options_m|max" value="50" />
206 <has_text text="Sample classes: bio, blank" /> 187 <has_text text="Sample classes: bio, blank" />
207 </assert_contents> 188 </assert_contents>
208 </output> 189 </output>
209 </test> 190 </test>
210 <test> 191 <test>
211 <param name="inputs|input" value="zip_file" /> 192 <param name="input" value="sacuri_current_root.zip" ftype="zip" />
212 <param name="inputs|zip_file" value="sacuri_current_root.zip" ftype="zip" />
213 <param name="methods|method" value="centWave" /> 193 <param name="methods|method" value="centWave" />
214 <param name="methods|ppm" value="25" /> 194 <param name="methods|ppm" value="25" />
215 <param name="methods|peakwidth" value="20,50" /> 195 <param name="methods|peakwidth" value="20,50" />
216 <output name="log"> 196 <output name="log">
217 <assert_contents> 197 <assert_contents>
223 <has_text text="Sample classes: bio, blank" /> 203 <has_text text="Sample classes: bio, blank" />
224 </assert_contents> 204 </assert_contents>
225 </output> 205 </output>
226 </test>--> 206 </test>-->
227 <test> 207 <test>
228 <param name="inputs|input" value="zip_file" /> 208 <param name="input" value="faahKO_reduce.zip" ftype="zip" />
229 <param name="inputs|zip_file" value="faahKO_reduce.zip" ftype="zip" />
230 <param name="methods|method" value="centWave" /> 209 <param name="methods|method" value="centWave" />
231 <param name="methods|ppm" value="25" /> 210 <param name="methods|ppm" value="25" />
232 <param name="methods|peakwidth" value="20,50" /> 211 <param name="methods|peakwidth" value="20,50" />
233 <output name="log"> 212 <output name="log">
234 <assert_contents> 213 <assert_contents>
236 <has_text text="Time range: 2506.1-4477.9 seconds (41.8-74.6 minutes)" /> 215 <has_text text="Time range: 2506.1-4477.9 seconds (41.8-74.6 minutes)" />
237 <has_text text="Mass range: 200.1-600 m/z" /> 216 <has_text text="Mass range: 200.1-600 m/z" />
238 <has_text text="Peaks: 9251 (about 2313 per sample)" /> 217 <has_text text="Peaks: 9251 (about 2313 per sample)" />
239 <has_text text="Peak Groups: 0" /> 218 <has_text text="Peak Groups: 0" />
240 <has_text text="Sample classes: KO, WT" /> 219 <has_text text="Sample classes: KO, WT" />
220 </assert_contents>
221 </output>
222 </test>
223 <!-- Passed but disable to save time for Travis" -->
224 <!--<test>
225 <param name="input" value="ko15.CDF" ftype="netcdf" />
226 <param name="methods|method" value="centWave" />
227 <param name="methods|ppm" value="25" />
228 <param name="methods|peakwidth" value="20,50" />
229 <output name="log">
230 <assert_contents>
231 <has_text text="object with 1 samples" />
232 <has_text text="Time range: 2506.1-4471.7 seconds (41.8-74.5 minutes)" />
233 <has_text text="Mass range: 200.2-600 m/z" />
234 <has_text text="Peaks: 2262 (about 2262 per sample)" />
235 <has_text text="Peak Groups: 0" />
236 <has_text text="Sample classes: ." />
237 </assert_contents>
238 </output>
239 </test>
240 <test>
241 <param name="input" value="ko16.CDF" ftype="netcdf" />
242 <param name="methods|method" value="centWave" />
243 <param name="methods|ppm" value="25" />
244 <param name="methods|peakwidth" value="20,50" />
245 <output name="log">
246 <assert_contents>
247 <has_text text="object with 1 samples" />
248 <has_text text="Time range: 2521.7-4477.9 seconds (42-74.6 minutes)" />
249 <has_text text="Mass range: 200.1-600 m/z" />
250 <has_text text="Peaks: 2408 (about 2408 per sample)" />
251 <has_text text="Peak Groups: 0" />
252 <has_text text="Sample classes: ." />
253 </assert_contents>
254 </output>
255 </test>
256 <test>
257 <param name="input" value="wt15.CDF" ftype="netcdf" />
258 <param name="methods|method" value="centWave" />
259 <param name="methods|ppm" value="25" />
260 <param name="methods|peakwidth" value="20,50" />
261 <output name="log">
262 <assert_contents>
263 <has_text text="object with 1 samples" />
264 <has_text text="Time range: 2517-4473.2 seconds (42-74.6 minutes)" />
265 <has_text text="Mass range: 200.2-599.8 m/z" />
266 <has_text text="Peaks: 2278 (about 2278 per sample)" />
267 <has_text text="Peak Groups: 0" />
268 <has_text text="Sample classes: ." />
269 </assert_contents>
270 </output>
271 </test>
272 <test>
273 <param name="inputs|input" value="single_file" />
274 <param name="inputs|single_file" value="wt16.CDF" ftype="netcdf" />
275 <param name="methods|method" value="centWave" />
276 <param name="methods|ppm" value="25" />
277 <param name="methods|peakwidth" value="20,50" />
278 <output name="log">
279 <assert_contents>
280 <has_text text="object with 1 samples" />
281 <has_text text="Time range: 2521.7-4468.5 seconds (42-74.5 minutes)" />
282 <has_text text="Mass range: 200.3-600 m/z" />
283 <has_text text="Peaks: 2303 (about 2303 per sample)" />
284 <has_text text="Peak Groups: 0" />
285 <has_text text="Sample classes: ." />
286 </assert_contents>
287 </output>
288 </test>-->
289 <test>
290 <param name="input" value="HU_neg_017.mzXML" ftype="mzxml" />
291 <param name="methods|method" value="centWave" />
292 <param name="methods|ppm" value="25" />
293 <param name="methods|peakwidth" value="20,50" />
294 <output name="log">
295 <assert_contents>
296 <has_text text="object with 1 samples" />
297 <has_text text="Time range: 3.5-1139.1 seconds (0.1-19 minutes)" />
298 <has_text text="Mass range: 57.9756-556.8128 m/z" />
299 <has_text text="Peaks: 380 (about 380 per sample)" />
300 <has_text text="Peak Groups: 0" />
301 <has_text text="Sample classes: ." />
302 </assert_contents>
303 </output>
304 </test>
305 <test>
306 <param name="input" value="MM14.mzML" ftype="mzxml" />
307 <param name="methods|method" value="centWave" />
308 <param name="methods|ppm" value="56" />
309 <param name="methods|peakwidth" value="5.275,13.5" />
310 <output name="log">
311 <assert_contents>
312 <has_text text="object with 1 samples" />
313 <has_text text="Time range: 271-307.3 seconds (4.5-5.1 minutes)" />
314 <has_text text="Mass range: 117.0357-936.7059 m/z" />
315 <has_text text="Peaks: 222 (about 222 per sample)" />
316 <has_text text="Peak Groups: 0" />
317 <has_text text="Sample classes: ." />
241 </assert_contents> 318 </assert_contents>
242 </output> 319 </output>
243 </test> 320 </test>
244 </tests> 321 </tests>
245 322
287 +---------------------------+--------------------+-----------------+ 364 +---------------------------+--------------------+-----------------+
288 365
289 366
290 **Example of a metabolomic workflow** 367 **Example of a metabolomic workflow**
291 368
292 .. image:: XCMS_Galaxy_workflow.png 369 .. image:: xcms_xcmsset_workflow.png
293 370
294 371
295 ------ 372 ------
296 373
297 .. class:: infomark 374 .. class:: infomark
304 381
305 ----------- 382 -----------
306 Input files 383 Input files
307 ----------- 384 -----------
308 385
309 +---------------------------+------------+ 386 +---------------------------+----------------------------------+
310 | Parameter : num + label | Format | 387 | Parameter : num + label | Format |
311 +===========================+============+ 388 +===========================+==================================+
312 | 1 : Choose your inputs | zip | 389 | OR : Zip file | zip |
313 +---------------------------+------------+ 390 +---------------------------+----------------------------------+
391 | OR : Single file | mzXML, mzML, mzData, netCDF |
392 +---------------------------+----------------------------------+
314 393
315 **Choose your inputs** 394 **Choose your inputs**
316 395
317 You have two methods for your inputs: 396 You have two methods for your inputs:
318 397
319 | Zip file (recommended): You can put a zip file containing your inputs: myinputs.zip (containing all your conditions as sub-directories). 398 | Single file (recommended): You can put a single file as input. That way, you will be able to launch several xcmsSet in parallel and use "xcms.xcmsSet Merger" before "xcms.group"
320 | library folder: You must specify the name of your "library" (folder) created within your space project (for example: /projet/externe/institut/login/galaxylibrary/yourlibrary). Your library must contain all your conditions as sub-directories. 399 | Zip file: You can put a zip file containing your inputs: myinputs.zip (containing all your conditions as sub-directories).
321 400
322 Steps for creating the zip file 401 Zip file: Steps for creating the zip file
323 ------------------------------- 402 -----------------------------------------
324 403
325 **Step1: Creating your directory and hierarchize the subdirectories** 404 **Step1: Creating your directory and hierarchize the subdirectories**
326 405
327 406
328 VERY IMPORTANT: If you zip your files under Windows, you must use the 7Zip software (http://www.7-zip.org/), otherwise your zip will not be well unzipped on the platform W4M (zip corrupted bug). 407 VERY IMPORTANT: If you zip your files under Windows, you must use the 7Zip software (http://www.7-zip.org/), otherwise your zip will not be well unzipped on the platform W4M (zip corrupted bug).
476 --------------------------------------------------- 555 ---------------------------------------------------
477 556
478 Changelog/News 557 Changelog/News
479 -------------- 558 --------------
480 559
560 **Version 2.1.0 - 22/02/2017**
561
562 - NEW: The W4M tools will be able now to take as input a single file. It will allow to submit in parallel several files and merge them afterward using "xcms.xcmsSet Merger" before "xcms.group".
563
564 - BUGFIX: the default value of "matchedFilter" -> "Step size to use for profile generation" which was of 0.01 have been changed to fix with the XMCS default values to 0.1
565
481 **Version 2.0.11 - 22/12/2016** 566 **Version 2.0.11 - 22/12/2016**
482 567
483 - BUGFIX: propose scanrange for all methods 568 - BUGFIX: propose scanrange for all methods
484 569
485 **Version 2.0.10 - 22/12/2016** 570 **Version 2.0.10 - 22/12/2016**