comparison abims_xcms_xcmsSet.xml @ 15:b62808a2a008 draft

planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 9f72e947d9c241d11221cad561f3525d27231857
author lecorguille
date Tue, 18 Sep 2018 16:07:36 -0400
parents c934dd5c49a9
children ea974024a6c6
comparison
equal deleted inserted replaced
14:363cce459fff 15:b62808a2a008
1 <tool id="abims_xcms_xcmsSet" name="xcms.xcmsSet" version="2.1.1"> 1 <tool id="abims_xcms_xcmsSet" name="xcms findChromPeaks (xcmsSet)" version="@WRAPPER_VERSION@.0">
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> 2 <description>Chromatographic peak detection</description>
3 3
4 <macros> 4 <macros>
5 <import>macros.xml</import> 5 <import>macros.xml</import>
6 <import>macros_xcms.xml</import>
6 </macros> 7 </macros>
7 8
8 <expand macro="requirements"/> 9 <expand macro="requirements"/>
9 <expand macro="stdio"/> 10 <expand macro="stdio"/>
10 11
11 <command><![CDATA[ 12 <command><![CDATA[
12 @COMMAND_XCMS_SCRIPT@ 13 @COMMAND_RSCRIPT@/xcms_xcmsSet.r
13 14
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"): 15 image '$image'
15 singlefile_galaxyPath '$input' singlefile_sampleName '$input.name' 16
16 #else 17 BPPARAM \${GALAXY_SLOTS:-1}
17 zipfile '$input' 18
19 #if $filterSection.filterAcquisitionNum != "":
20 filterAcquisitionNum "c($filterSection.filterAcquisitionNum)"
18 #end if 21 #end if
19 22 #if $filterSection.filterRt != "":
20 xfunction xcmsSet 23 filterRt "c($filterSection.filterRt)"
21
22 xsetRdataOutput '$xsetRData'
23 sampleMetadataOutput '$sampleMetadata'
24 ticspdf '$ticsRawPdf'
25 bicspdf '$bpcsRawPdf'
26
27
28 #if $options_scanrange.option == "show":
29 scanrange "c($options_scanrange.scanrange)"
30 #end if 24 #end if
31 25 #if $filterSection.filterMz != "":
32 ## profmethod $profmethod 26 filterMz "c($filterSection.filterMz)"
33 nSlaves \${GALAXY_SLOTS:-1} method $methods.method 27 #end if
34 #if $methods.method == "centWave": 28
35 ppm $methods.ppm 29 method $methods.method
36 peakwidth "c($methods.peakwidth)" 30
37 #if $methods.options_c.option == "show": 31 #if $methods.method == "CentWave":
38 mzdiff $methods.options_c.mzdiff 32 @COMMAND_CENTWAVE@
39 snthresh $methods.options_c.snthresh 33 ## List of regions-of-interest (ROI)
40 integrate $methods.options_c.integrate 34 #set $sectionROI = $methods.CentWaveAdv.CentWaveAdvROI
41 noise $methods.options_c.noise 35 @COMMAND_CENTWAVEADVROI@
42 prefilter "c($methods.options_c.prefilter)" 36 #elif $methods.method == "CentWavePredIso":
37 @COMMAND_CENTWAVE@
38 ## List of regions-of-interest (ROI)
39 #set $sectionROI = $methods.CentWaveAdvROI
40 @COMMAND_CENTWAVEADVROI@
41 snthreshIsoROIs $sectionROI.snthreshIsoROIs
42 maxCharge $sectionROI.maxCharge
43 maxIso $sectionROI.maxIso
44 mzIntervalExtension $sectionROI.mzIntervalExtension
45 polarity $sectionROI.polarity
46 #elif $methods.method == "MatchedFilter":
47 fwhm $methods.fwhm
48 binSize $methods.binSize
49 ## Advanced
50 impute $methods.MatchedFilterAdv.impute_cond.impute
51 #if $methods.MatchedFilterAdv.impute_cond.impute == "linbase":
52 #if $methods.MatchedFilterAdv.impute_cond.baseValue != "":
53 baseValue $methods.MatchedFilterAdv.impute_cond.baseValue
54 #end if
55 distance $methods.MatchedFilterAdv.impute_cond.distance
43 #end if 56 #end if
44 #elif $methods.method == "matchedFilter": 57 #if $methods.MatchedFilterAdv.sigma != "":
45 step $methods.step 58 sigma $methods.MatchedFilterAdv.sigma
46 fwhm $methods.fwhm
47 #if $methods.options_m.option == "show":
48 ## sigma "$methods.options_m.sigma"
49 max $methods.options_m.max
50 snthresh $methods.options_m.snthresh
51 steps $methods.options_m.steps
52 mzdiff $methods.options_m.mzdiff
53 #end if 59 #end if
60 max $methods.MatchedFilterAdv.max
61 snthresh $methods.MatchedFilterAdv.snthresh
62 steps $methods.MatchedFilterAdv.steps
63 mzdiff $methods.MatchedFilterAdv.mzdiff
54 #elif $methods.method == "MSW": 64 #elif $methods.method == "MSW":
55 snthr $methods.snthr 65 snthresh $methods.snthresh
66 verboseColumns $methods.verboseColumns
67 scales "c($methods.scales)"
56 nearbyPeak $methods.nearbyPeak 68 nearbyPeak $methods.nearbyPeak
57 winSize.noise $methods.winSize_noise 69 ampTh $methods.ampTh
58 amp.Th $methods.amp_Th
59 scales "c($methods.scales)"
60 SNR.method "$methods.SNR_method"
61 #end if 70 #end if
71
72 @COMMAND_FILE_LOAD@
73
62 @COMMAND_LOG_EXIT@ 74 @COMMAND_LOG_EXIT@
63 ]]></command> 75 ]]></command>
64 76
65 <inputs> 77 <inputs>
66 78
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." /> 79 <param name="image" type="data" format="rdata.msnbase.raw,rdata" label="@INPUT_IMAGE_LABEL@" help="@INPUT_IMAGE_HELP@ from MSnbase readMSData" />
68 80
69 <conditional name="options_scanrange"> 81 <section name="filterSection" title="Spectra Filters" expanded="False">
70 <param name="option" type="select" label="Scan range option " > 82 <param argument="filterAcquisitionNum" type="text" value="" optional="true" label="Filter on Acquisition Numbers" help="min,max">
71 <option value="show">show</option> 83 <expand macro="input_validator_range_integer"/>
72 <option value="hide" selected="true">hide</option>
73 </param> 84 </param>
74 <when value="show"> 85 <param argument="filterRt" type="text" value="" optional="true" label="Filter on Retention Time" help="min,max">
75 <param name="scanrange" type="text" value="" label="scanrange" help="scan range to process, for example (16,365)" > 86 <expand macro="input_validator_range_integer"/>
76 <validator type="empty_field"/> 87 </param>
88 <param argument="filterMz" type="text" value="" optional="true" label="Filter on Mz" help="min,max">
89 <expand macro="input_validator_range_integer"/>
90 </param>
91 </section>
92
93 <conditional name="methods">
94 <param name="method" type="select" label="Extraction method for peaks detection" help="See the help section below">
95 <option value="MatchedFilter" selected="true">MatchedFilter - peak detection in chromatographic space</option>
96 <option value="CentWave">CentWave - chromatographic peak detection using the centWave method</option>
97 <option value="CentWavePredIso">CentWaveWithPredIsoROIs - performs a two-step centWave-based chromatographic peak detection</option>
98 <option value="MSW">MSW - single-spectrum non-chromatography MS data peak detection</option>
99 </param>
100
101 <!-- CentWave -->
102 <when value="CentWave">
103 <expand macro="input_centwave"/>
104 <section name="CentWaveAdv" title="Advanced Options" expanded="False">
105 <expand macro="input_centwaveAdv"/>
106 <section name="CentWaveAdvROI" title="List of regions-of-interest (ROI)" expanded="False">
107 <expand macro="input_centwaveAdvROI" optional="true"/>
108 </section>
109 </section>
110 </when>
111
112 <!-- MatchedFilter -->
113 <when value="MatchedFilter">
114 <param argument="fwhm" type="integer" value="30" label="Full width at half maximum of matched filtration gaussian model peak" help="Only used to calculate the actual sigma" />
115 <param argument="binSize" type="float" value="0.1" label="Step size to use for profile generation" help="The peak detection algorithm creates extracted ion base peak chromatograms (EIBPC) on a fixed step size. (Previously step)" />
116 <section name="MatchedFilterAdv" title="Advanced Options" expanded="False">
117 <conditional name="impute_cond">
118 <param argument="impute" type="select" label="Method to be used for missing value imputation" help="(previously profmethod)">
119 <option value="none">none - no linear interpolation</option>
120 <option value="lin">lin - linear interpolation</option>
121 <option value="linbase">linbase - linear interpolation within a certain bin-neighborhood</option>
122 <option value="intlin">intlin - integral of the linearly interpolated data from plus to minus half the step size</option>
123 </param>
124 <when value="none" />
125 <when value="lin" />
126 <when value="linbase">
127 <param argument="baseValue" type="float" value="" optional="true" label="The base value to which empty elements should be set" help="The default for the ‘baseValue’ is half of the smallest value in ‘x’ (‘NA’s being removed)." />
128 <param argument="distance" type="integer" value="0" label="Number of non-empty neighboring element of an empty element that should be considered for linear interpolation." />
129 </when>
130 <when value="intlin" />
131 </conditional>
132 <param argument="sigma" type="float" value="" optional="true" label="Standard deviation (width) of matched filtration model peak" help="Leave it to empty to calculate it using fwhm by default at fwhm/2.3548" />
133 <param argument="max" type="integer" value="5" label="Maximum number of peaks that are expected/will be identified per slice" />
134 <param argument="snthresh" type="integer" value="10" label="Signal to Noise ratio cutoff" help="defining the signal to noise cutoff to be used in the chromatographic peak detection step" />
135 <param argument="steps" type="integer" value="2" label="Number of bins to be merged before filtration" help="(i.e. the number of neighboring bins that will be joined to the slice in which filtration and peak detection will be performed)" />
136 <param argument="mzdiff" type="float" value="0.6" label="Minimum difference in m/z for peaks with overlapping Retention Times" help="By default: 0.8-binSize*steps " />
137 <!-- index -->
138 </section>
139 </when>
140
141 <!-- CentWaveWithPredIsoROIs -->
142 <when value="CentWavePredIso">
143 <expand macro="input_centwave"/>
144 <section name="CentWaveAdv" title="Advanced Options" expanded="False">
145 <expand macro="input_centwaveAdv"/>
146 </section>
147 <section name="CentWaveAdvROI" title="List of regions-of-interest (ROI)" expanded="True">
148 <expand macro="input_centwaveAdvROI" optional="false" />
149 <param argument="snthreshIsoROIs" type="float" value="6.25" label="Signal to noise ratio cutoff" help="used in the second centWave run to identify peaks for predicted isotope ROIs." />
150 <param argument="maxCharge" type="integer" value="3" label="Maximal isotope charge" help="Isotopes will be defined for charges ‘1:maxCharge’." />
151 <param argument="maxIso" type="integer" value="5" label="Number of isotope peaks that should be predicted for each peak identified in the first centWave run" />
152 <param argument="mzIntervalExtension" type="boolean" checked="true" truevalue="TRUE" falsevalue="FALSE" label="Is the mz range for the predicted isotope ROIs should be extended to increase detection of low intensity peaks" />
153 <param argument="polarity" type="select" label="Polarity of the data">
154 <option value="unknown">unknown</option>
155 <option value="positive">positive</option>
156 <option value="negative">negative</option>
157 </param>
158 </section>
159 </when>
160
161 <!-- MSW -->
162 <when value="MSW">
163 <!---@TODO <param argument="winSize_noise" type="integer" value="500" label="The local window size to estimate the noise level" help="[winSize.noise]" />-->
164 <param argument="snthresh" type="integer" value="3" label="Signal to Noise ratio cutoff" help="" />
165 <param argument="verboseColumns" type="boolean" checked="false" truevalue="TRUE" falsevalue="FALSE" label="verbose Columns" help="whether additional peak meta data columns should be returned" />
166 <param argument="scales" type="text" value="1,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,36,40,44,48,52,56,60,64" label="Scales of the Continuous Wavelet Transform (CWT)" help="Scales are linked to the width of the peaks that are to be detected." >
167 <expand macro="input_validator_list_integer"/>
77 </param> 168 </param>
78 </when> 169 <param argument="nearbyPeak" type="boolean" checked="true" truevalue="TRUE" falsevalue="FALSE" label="Determine whether to include the nearby small peaks of major peaks" />
79 <when value="hide"> 170 <!-- peakScaleRange -->
171 <param argument="ampTh" type="float" value="0.01" label="Minimum required relative amplitude of the peak" help="Ratio to the maximum of CWT coefficients" />
172 <!-- minNoiseLevel -->
173 <!-- ridgeLength -->
174 <!-- peakThr -->
175 <!-- tuneIn -->
176 <!---@TODO <param argument="SNR_method" type="text" value="data.mean" label="SNR (Signal to Noise Ratio) method" help="[SNR.method] Method to estimate noise level. Currently, only 95 percentage quantile is supported." />-->
80 </when> 177 </when>
81 </conditional> 178 </conditional>
82 179
83 180 <expand macro="input_file_load"/>
84 <!-- 181 </inputs>
85 <param name="profmethod" type="select" label="Method to use for profile generation (profmethod)" > 182
86 <option value="bin" selected="true">bin</option> 183 <outputs>
87 <option value="binlin">binlin</option> 184 <data name="xsetRData" format="rdata.xcms.findchrompeaks" label="${image.name.rsplit('.',1)[0]}.xset.RData" from_work_dir="xcmsSet.RData" />
88 <option value="binlinbase">binlinbase</option> 185 <data name="log" format="txt" label="${image.name.rsplit('.',1)[0]}.xset.log.txt" from_work_dir="log.txt" />
89 <option value="intlin">intlin</option> 186 </outputs>
90 </param> 187
91 --> 188 <tests>
92 <conditional name="methods"> 189
93 <param name="method" type="select" label="Extraction method for peaks detection" help="[method] See the help section below"> 190 <!--<test>
94 <option value="centWave" >centWave</option> 191 <param name="image" value="faahKO.raw.Rdata" ftype="rdata" />
95 <option value="matchedFilter" selected="true">matchedFilter</option> 192 <section name="filterSection">
96 <option value="MSW">MSW</option> 193 <param name="filterAcquisitionNum" value="100,5000" />
97 </param> 194 <param name="filterRt" value="3000,4000" />
98 195 <param name="filterMz" value="300,400" />
99 <!-- centWave Filter options --> 196 </section>
100 <when value="centWave"> 197 <conditional name="methods">
101 <param name="ppm" type="integer" value="25" label="Max tolerated ppm m/z deviation in consecutive scans in ppm" help="[ppm]" /> 198 <param name="method" value="CentWave" />
102 <param name="peakwidth" type="text" value="20,50" label="Min,Max peak width in seconds" help="[peakwidth]" /> 199 <param name="ppm" value="25" />
103 200 <param name="peakwidth" value="20,50" />-->
104 <conditional name="options_c"> 201 <!-- DISABLE: just for testing the arguments
105 <param name="option" type="select" label="Advanced options" > 202 <section name="CentWaveAdv">
106 <option value="show">show</option> 203 <section name="CentWaveAdvROI">
107 <option value="hide" selected="true">hide</option> 204 <param name="roiList" value="roiList.txt" ftype="tabular" />
108 </param> 205 </section>
109 <when value="show"> 206 </section>-->
110 <param name="snthresh" type="integer" value="10" label="Signal/Noise threshold" help="[snthresh] Signal to noise ratio cutoff" /> 207 <!--</conditional>
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" /> 208 <expand macro="test_file_load_zip"/>
112 <param name="integrate" type="select" label="peak limits method" help="[integrate]" > 209 <assert_stdout>
113 <option value="1">peak limits based on smoothed 2nd derivative (less precise)</option> 210 <has_text text="ppm: 25" />
114 <option value="2">peak limits based on real data (more sensitive to noise)</option> 211 <has_text text="peakwidth: 20, 50" />
115 </param> 212 <has_text text="object with 4 samples" />
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’"/> 213 <has_text text="Time range: 3006.9-3978.7 seconds (50.1-66.3 minutes)" />
117 <param name="noise" type="integer" value="0" label="Noise filter" help="[noise] optional argument which is useful for data that was centroided without any intensity threshold, centroids with intensity smaller than ‘noise’ are omitted from ROI detection"/> 214 <has_text text="Mass range: 300-400 m/z" />
118 </when> 215 <has_text text="Peaks: 1311 (about 328 per sample)" />
119 <when value="hide"> 216 <has_text text="Peak Groups: 0" />
120 </when> 217 <has_text text="Sample classes: KO, WT" />
218 </assert_stdout>
219 </test>-->
220 <test>
221 <param name="image" value="ko15-raw.RData" ftype="rdata" />
222 <conditional name="methods">
223 <param name="method" value="CentWave" />
224 <param name="ppm" value="25" />
225 <param name="peakwidth" value="20,50" />
226 </conditional>
227 <expand macro="test_file_load_single_ko15"/>
228 <assert_stdout>
229 <has_text text="ppm: 25" />
230 <has_text text="peakwidth: 20, 50" />
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_stdout>
238 </test>
239 <!-- DISABLE FOR TRAVIS
240 Useful to generate test-data for the further steps
241 <test>
242 <param name="image" value="ko16-raw.RData" ftype="rdata" />
243 <conditional name="methods">
244 <param name="method" value="CentWave" />
245 <param name="ppm" value="25" />
246 <param name="peakwidth" value="20,50" />
247 </conditional>
248 <assert_stdout>
249 <has_text text="object with 1 samples" />
250 <has_text text="Time range: 2521.7-4477.9 seconds (42-74.6 minutes)" />
251 <has_text text="Mass range: 200.1-600 m/z" />
252 <has_text text="Peaks: 2408 (about 2408 per sample)" />
253 <has_text text="Peak Groups: 0" />
254 <has_text text="Sample classes: ." />
255 </assert_stdout>
256 </test>
257 <test>
258 <param name="image" value="wt15-raw.RData" ftype="rdata" />
259 <conditional name="methods">
260 <param name="method" value="CentWave" />
261 <param name="ppm" value="25" />
262 <param name="peakwidth" value="20,50" />
263 </conditional>
264 <assert_stdout>
265 <has_text text="object with 1 samples" />
266 <has_text text="Time range: 2517-4473.2 seconds (42-74.6 minutes)" />
267 <has_text text="Mass range: 200.2-599.8 m/z" />
268 <has_text text="Peaks: 2278 (about 2278 per sample)" />
269 <has_text text="Peak Groups: 0" />
270 <has_text text="Sample classes: ." />
271 </assert_stdout>
272 </test>
273 <test>
274 <param name="image" value="wt16-raw.RData" ftype="rdata" />
275 <conditional name="methods">
276 <param name="method" value="CentWave" />
277 <param name="ppm" value="25" />
278 <param name="peakwidth" value="20,50" />
279 </conditional>
280 <assert_stdout>
281 <has_text text="object with 1 samples" />
282 <has_text text="Time range: 2521.7-4468.5 seconds (42-74.5 minutes)" />
283 <has_text text="Mass range: 200.3-600 m/z" />
284 <has_text text="Peaks: 2303 (about 2303 per sample)" />
285 <has_text text="Peak Groups: 0" />
286 <has_text text="Sample classes: ." />
287 </assert_stdout>
288 </test>
289 -->
290 <!-- DISABLE FOR TRAVIS
291 Test to test the different methods parameters
292 <test>
293 <param name="image" value="ko15-raw.RData" ftype="rdata" />
294 <conditional name="methods">
295 <param name="method" value="MatchedFilter" />
296 <param name="fwhm" value="35" />
297 <section name="MatchedFilterAdv"
298 <conditional name="impute_cond">
299 <param name="impute" value="linbase" />
300 <param name="baseValue" value="0.1" />
301 <param name="distance" value="1" />
302 </conditional>
303 </section>
304 </conditional>
305 <assert_stdout>
306 <has_text text="fwhm: 35" />
307 <has_text text="impute: linbase" />
308 <has_text text="baseValue: 0.1" />
309 <has_text text="distance: 1" />
310 </assert_stdout>
311 </test>
312 <test>
313 <param name="image" value="ko15-raw.RData" ftype="rdata" />
314 <conditional name="methods">
315 <param name="method" value="CentWavePredIso" />
316 <param name="ppm" value="56" />
317 <param name="peakwidth" value="5.275,13.5" />
318 <section name="CentWaveAdvROI">
319 <param name="roiList" value="roiList.txt" ftype="tabular" />
320 </section>
321 </conditional>
322 <assert_stdout>
323 <has_text text=" scmin scmax mzmin mzmax length intensity" />
324 <has_text text="1 200 300 300 350 100 5000" />
325 </assert_stdout>
326 </test>
327 <test>
328 <param name="image" value="ko15-raw.RData" ftype="rdata" />
329 <conditional name="methods">
330 <param name="method" value="MSW" />
331 <param name="snthresh" value="4" />
332 <param name="verboseColumns" value="true" />
333 </conditional>
334 <assert_stdout>
335 <has_text text="snthresh: 4" />
336 <has_text text="verboseColumns: TRUE" />
337 </assert_stdout>
338 </test>
339 -->
340 <!-- DISABLE FOR TRAVIS
341 No more test-data/sacuri_dir_root.zip
342 <test>
343 <param name="image" value="sacuri_dir_root.zip" ftype="zip" />
344 <conditional name="methods">
345 <param name="method" value="MatchedFilter" />
346 <param name="step" value="0.01" />
347 <param name="fwhm" value="4" />
348 <conditional name="options_m">
349 <param name="option" value="show" />
350 <param name="max" value="50" />
351 <param name="snthresh" value="1" />
352 <param name="steps" value="2" />
121 </conditional> 353 </conditional>
122 </when> 354 </conditional>
123 355 <assert_stdout>
124 <!-- matched Filter options --> 356 <has_text text="object with 4 samples" />
125 <when value="matchedFilter"> 357 <has_text text="Time range: 0.7-1139.7 seconds (0-19 minutes)" />
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" /> 358 <has_text text="Mass range: 50.0021-999.9863 m/z" />
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" /> 359 <has_text text="Peaks: 59359 (about 14840 per sample)" />
128 <conditional name="options_m"> 360 <has_text text="Peak Groups: 0" />
129 <param name="option" type="select" label="Advanced options" > 361 <has_text text="Sample classes: bio, blank" />
130 <option value="show">show</option> 362 </assert_stdout>
131 <option value="hide" selected="true">hide</option> 363 </test>
132 </param> 364 -->
133 <when value="show"> 365 <!-- DISABLE FOR TRAVIS
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" />--> 366 No more test-data/sacuri_current_root.zip
135 <param name="max" type="integer" value="5" label="Maximum number of peaks per extracted ion chromatogram" help="[max]" /> 367 <test>
136 <param name="snthresh" type="integer" value="10" label="Signal to noise ratio cutoff" help="[snthresh]" /> 368 <param name="image" value="sacuri_current_root.zip" ftype="zip" />
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" /> 369 <conditional name="methods">
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 " /> 370 <param name="method" value="CentWave" />
139 </when> 371 <param name="ppm" value="25" />
140 <when value="hide"> 372 <param name="peakwidth" value="20,50" />
141 </when> 373 </conditional>
142 </conditional> 374 <assert_stdout>
143 </when> 375 <has_text text="object with 4 samples" />
144 376 <has_text text="Time range: 3.5-1139.2 seconds (0.1-19 minutes)" />
145 <!-- MSW Filter options --> 377 <has_text text="Mass range: 57.9756-593.4086 m/z" />
146 <when value="MSW"> 378 <has_text text="Peaks: 1535 (about 384 per sample)" />
147 <param name="nearbyPeak" type="select" label="Determine whether to include the nearby small peaks of major peaks" help="[nearbyPeak]" > 379 <has_text text="Peak Groups: 0" />
148 <option value="TRUE">TRUE</option> 380 <has_text text="Sample classes: bio, blank" />
149 <option value="FALSE">FALSE</option> 381 </assert_stdout>
150 </param> 382 </test>
151 <param name="winSize_noise" type="integer" value="500" label="The local window size to estimate the noise level" help="[winSize.noise]" /> 383 -->
152 <param name="snthr" type="integer" value="3" label="SNR (Signal to Noise Ratio) threshold" help="[snthr]" />
153 <param name="amp_Th" type="float" value="0.002" label="Minimum required relative amplitude of the peak" help="[amp.Th] Ratio to the maximum of CWT coefficients" />
154 <param name="scales" type="text" value="seq(1,22,3)" label="Scales for the Continuous Wavelet Transform (CWT)" help="[scales] Scales are linked to the width of the peaks that are to be detected. Tape as indicaded seq('n,n,n') or c(n,n) : seq(from, to, by steps), c - linear vector " />
155 <param name="SNR_method" type="text" value="data.mean" label="SNR (Signal to Noise Ratio) method" help="[SNR.method] Method to estimate noise level. Currently, only 95 percentage quantile is supported." />
156 </when>
157 </conditional>
158 </inputs>
159
160 <outputs>
161 <data name="xsetRData" format="rdata.xcms.raw" label="${input.name.rsplit('.',1)[0]}.xset.RData" />
162 <data name="sampleMetadata" format="tabular" label="${input.name.rsplit('.',1)[0]}.sampleMetadata.tsv">
163 <filter>input.extension not in ["mzxml","mzml","mzdata","netcdf"]</filter>
164 </data>
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" />
168 </outputs>
169
170 <tests>
171 <!--<test>
172 <param name="input" value="sacuri_dir_root.zip" ftype="zip" />
173 <param name="methods|method" value="matchedFilter" />
174 <param name="methods|step" value="0.01" />
175 <param name="methods|fwhm" value="4" />
176 <param name="methods|options_m|option" value="show" />
177 <param name="methods|options_m|max" value="50" />
178 <param name="methods|options_m|snthresh" value="1" />
179 <param name="methods|options_m|steps" value="2" />
180 <output name="log">
181 <assert_contents>
182 <has_text text="object with 4 samples" />
183 <has_text text="Time range: 0.7-1139.7 seconds (0-19 minutes)" />
184 <has_text text="Mass range: 50.0021-999.9863 m/z" />
185 <has_text text="Peaks: 59359 (about 14840 per sample)" />
186 <has_text text="Peak Groups: 0" />
187 <has_text text="Sample classes: bio, blank" />
188 </assert_contents>
189 </output>
190 </test>
191 <test>
192 <param name="input" value="sacuri_current_root.zip" ftype="zip" />
193 <param name="methods|method" value="centWave" />
194 <param name="methods|ppm" value="25" />
195 <param name="methods|peakwidth" value="20,50" />
196 <output name="log">
197 <assert_contents>
198 <has_text text="object with 4 samples" />
199 <has_text text="Time range: 3.5-1139.2 seconds (0.1-19 minutes)" />
200 <has_text text="Mass range: 57.9756-593.4086 m/z" />
201 <has_text text="Peaks: 1535 (about 384 per sample)" />
202 <has_text text="Peak Groups: 0" />
203 <has_text text="Sample classes: bio, blank" />
204 </assert_contents>
205 </output>
206 </test>-->
207 <test>
208 <param name="input" value="faahKO_reduce.zip" ftype="zip" />
209 <param name="methods|method" value="centWave" />
210 <param name="methods|ppm" value="25" />
211 <param name="methods|peakwidth" value="20,50" />
212 <output name="log">
213 <assert_contents>
214 <has_text text="object with 4 samples" />
215 <has_text text="Time range: 2506.1-4477.9 seconds (41.8-74.6 minutes)" />
216 <has_text text="Mass range: 200.1-600 m/z" />
217 <has_text text="Peaks: 9251 (about 2313 per sample)" />
218 <has_text text="Peak Groups: 0" />
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: ." />
318 </assert_contents>
319 </output>
320 </test>
321 </tests> 384 </tests>
322 385
323 <help><![CDATA[ 386 <help><![CDATA[
324 387
325 @HELP_AUTHORS@ 388 @HELP_AUTHORS@
326 389
327 ============ 390 ===================
328 Xcms.xcmsSet 391 xcms findChromPeaks
329 ============ 392 ===================
330 393
331 ----------- 394 -----------
332 Description 395 Description
333 ----------- 396 -----------
334 397
335 This tool is used for preprocessing analyte data from multiple LC/MS files (formats NetCDF, mzXML and mzData). It extracts ion from each sample independently and using a statistic model, peaks are filtered and integrated. 398 This tool is used for preprocessing data from multiple LC/MS files (NetCDF, mzXML and mzData formats) using the xcms_ R package. It extracts ions from each sample independently, and using a statistical model, peaks are filtered and integrated.
336 You can read a tutorial on how to perform xcms preprocessing which is available here_. 399 A tutorial on how to perform xcms preprocessing is available here_.
337 400
401 .. _xcms: https://bioconductor.org/packages/release/bioc/html/xcms.html
338 .. _here: http://web11.sb-roscoff.fr/download/w4m/howto/w4m_HowToPerformXcmsPreprocessing_v02.pdf 402 .. _here: http://web11.sb-roscoff.fr/download/w4m/howto/w4m_HowToPerformXcmsPreprocessing_v02.pdf
339 403
340 404
341 ----------------- 405 -----------------
342 Workflow position 406 Workflow position
343 ----------------- 407 -----------------
344 408
345 **Upstream tools** 409 **Upstream tools**
346 410
347 ========================= ================= ======= ========= 411 ========================= ================= ==============================
348 Name output file format parameter 412 Name Output file Format
349 ========================= ================= ======= ========= 413 ========================= ================= ==============================
350 NA NA zip NA 414 MSnbase.readMSData ``*``.raw.RData rdata.msnbase.raw
351 ========================= ================= ======= ========= 415 ========================= ================= ==============================
352 416
353 417
354 **Downstream tools** 418 **Downstream tools**
355 419
356 +---------------------------+--------------------+-----------------+ 420 ==================================== ======================== =========================
357 | Name | Output file | Format | 421 Name Output file Format
358 +===========================+====================+=================+ 422 ==================================== ======================== =========================
359 |xcms.group | xset.RData | rdata.xcms.raw | 423 xcms.findChromPeaks Merger (single) ``*``.raw.xset.RData rdata.xcms.findchrompeaks
360 +---------------------------+--------------------+-----------------+ 424 ------------------------------------ ------------------------ -------------------------
361 |PCA ellipsoid by factors | sampleMetadata.tsv | Tabular | 425 xcms.groupChromPeaks (zip) ``*``.raw.xset.RData rdata.xcms.findchrompeaks
362 +---------------------------+--------------------+-----------------+ 426 ==================================== ======================== =========================
363 |Anova | sampleMetadata.tsv | Tabular |
364 +---------------------------+--------------------+-----------------+
365 427
366 428
367 **Example of a metabolomic workflow** 429 **Example of a metabolomic workflow**
368 430
369 .. image:: xcms_xcmsset_workflow.png 431 .. image:: xcms_xcmsset_workflow.png
370 432
371
372 ------
373
374 .. class:: infomark
375
376 The output file is an xset.RData file. You can continue your analysis using it in **xcms.group** tool.
377
378 --------------------------------------------------- 433 ---------------------------------------------------
379
380
381
382 -----------
383 Input files
384 -----------
385
386 +---------------------------+----------------------------------+
387 | Parameter : num + label | Format |
388 +===========================+==================================+
389 | OR : Zip file | zip |
390 +---------------------------+----------------------------------+
391 | OR : Single file | mzXML, mzML, mzData, netCDF |
392 +---------------------------+----------------------------------+
393
394 **Choose your inputs**
395
396 You have two methods for your inputs:
397
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"
399 | Zip file: You can put a zip file containing your inputs: myinputs.zip (containing all your conditions as sub-directories).
400
401 Zip file: Steps for creating the zip file
402 -----------------------------------------
403
404 **Step1: Creating your directory and hierarchize the subdirectories**
405
406
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).
408
409 Your zip should contain all your conditions as sub-directories. For example, two conditions (mutant and wild):
410 arabidopsis/wild/01.raw
411 arabidopsis/mutant/01.raw
412
413 **Step2: Creating a zip file**
414
415 Create your zip file (e.g.: arabidopsis.zip).
416
417 **Step 3 : Uploading it to our Galaxy server**
418
419 If your zip file is less than 2Gb, you get use the Get Data tool to upload it.
420
421 Otherwise if your zip file is larger than 2Gb, please refer to the HOWTO on workflow4metabolomics.org (http://application.sb-roscoff.fr/download/w4m/howto/galaxy_upload_up_2Go.pdf).
422
423 For more informations, don't hesitate to send us an email at supportATworkflow4metabolomics.org).
424
425 Advices for converting your files for the XCMS input
426 ----------------------------------------------------
427
428 We recommend you to convert your raw files to **mzXML** in centroid mode (smaller files) and the files will be compatible with the xmcs centWave method.
429
430 **We recommend you the following parameters:**
431
432 Use Filtering: **True**
433
434 Use Peak Picking: **True**
435
436 Peak Peaking -Apply to MS Levels: **All Levels (1-)** : Centroid Mode
437
438 Use zlib: **64**
439
440 Binary Encoding: **64**
441
442 m/z Encoding: **64**
443
444 Intensity Encoding: **64**
445
446 434
447 ---------- 435 ----------
448 Parameters 436 Parameters
449 ---------- 437 ----------
450 438
451 Extraction method for peaks detection 439 Extraction method for peaks detection
452 ------------------------------------- 440 -------------------------------------
453 441
454 **Matched Filter** 442 **MatchedFilter**
455 443
456 | One parameter to consider is the Gaussian model peak width used for matched filtration,an integral part of the peak detection algorithm. 444 | The matchedFilter algorithm identifies peaks in the chromatographic time domain as described in [Smith 2006]. The intensity values are binned by cutting The LC/MS data into slices (bins) of a mass unit (‘binSize’ m/z) wide. Within each bin the maximal intensity is selected. The chromatographic peak detection is then performed in each bin by extending it based on the ‘steps’ parameter to generate slices comprising bins ‘current_bin - steps +1’ to ‘current_bin + steps - 1’. Each of these slices is then filtered with matched filtration using a second-derative Gaussian as the model peak shape. After filtration peaks are detected using a signal-to-ratio cut-off. For more details and illustrations see [Smith 2006].
457 | For a discussion of how model peak width affects the signal to noise ratio, see Danielsson et al. (2002). 445 | See the MatchedFilter_manual_
458 446
459 447 **CentWave**
460 **cent Wave** 448
461 449 | The centWave algorithm perform peak density and wavelet based chromatographic peak detection for high resolution LC/MS data in centroid mode [Tautenhahn 2008].
462 | This algorithm is most suitable for high resolution LC/{TOF,OrbiTrap,FTICR}-MS data in centroid mode.
463 | Due to the fact that peak centroids are used, a binning step is not necessary. 450 | Due to the fact that peak centroids are used, a binning step is not necessary.
464 | The method is capable of detecting close-by-peaks and also overlapping peaks. Some efforts are made to detect the exact peak boundaries to get precise peak integrals. 451 | The method is capable of detecting close-by-peaks and also overlapping peaks. Some efforts are made to detect the exact peak boundaries to get precise peak integrals.
452 | See the CentWave_manual_
453
454 **CentWaveWithPredIsoROIs**
455
456 | This method performs a two-step centWave-based chromatographic peak detection: in a first centWave run peaks are identified for which then the location of their potential isotopes in the mz-retention time is predicted. A second centWave run is then performed on these regions of interest (ROIs). The final list of chromatographic peaks comprises all non-overlapping peaks from both centWave runs.
457 | See the CentWaveWithPredIsoROIs_manual_
465 458
466 **MSW** 459 **MSW**
467 460
468 | Wavelet based, used for direct infusion data. Continuous wavelet transform (CWT) can be used to locate chromatographic peaks on different scales. 461 | Wavelet based, used for direct infusion data. Continuous wavelet transform (CWT) can be used to locate chromatographic peaks on different scales.
469 | If you wish to have more details about the other parameters, you can read the following documents: 462 | See the MSW_manual_
470 | -Example of preprocessing data with XCMS : http://www.bioconductor.org/packages/2.12/bioc/vignettes/xcms/inst/doc/xcmsPreprocess.pdf 463
471 | -Details and explanations for all the parameters of XCMS package: http://www.bioconductor.org/packages/release/bioc/manuals/xcms/man/xcms.pdf 464 .. _MatchedFilter_manual: https://rdrr.io/bioc/xcms/man/findChromPeaks-matchedFilter.html#heading-2
472 465 .. _CentWave_manual: https://rdrr.io/bioc/xcms/man/findChromPeaks-centWave.html#heading-2
466 .. _CentWaveWithPredIsoROIs_manual: https://rdrr.io/bioc/xcms/man/findChromPeaks-centWaveWithPredIsoROIs.html#heading-2
467 .. _MSW_manual: https://rdrr.io/bioc/xcms/man/findPeaks-MSW.html#heading-2
468
469 @HELP_XCMS_MANUAL@
473 470
474 ------------ 471 ------------
475 Output files 472 Output files
476 ------------ 473 ------------
477 474
478 xset.TICs_raw.pdf 475 xset.RData: rdata.xcms.findchrompeaks format
479 476
480 | "Total Ion Chromatograms" graph in pdf format. 477 | (single) RData files that are necessary in the second step of the workflow "xcms.groupChromPeaks" - must be merged first using "xcms.findChromPeaks Merger"
481 478 | (zip) RData file that is necessary in the second step of the workflow "xcms.groupChromPeaks".
482 xset.BPCs_raw.pdf
483
484 | "Base Peak Chromatograms" graph in pdf format with each class samples opposed.
485
486 sampleMetadata.tsv
487
488 | Tabular file that contains for each sample, it's associated class and polarity (positive,negative and mixed).
489 | This file is necessary in the Anova and PCA step of the workflow.
490
491 xset.RData: rdata.xcms.raw format
492
493 | Rdata file that is necessary in the second step of the workflow "xcms.group".
494
495 ------
496
497 .. class:: infomark
498
499 The output file is an xset.RData file. You can continue your analysis using it in **xcms.group** tool.
500
501 ---------------------------------------------------
502
503 ---------------
504 Working example
505 ---------------
506
507 Input files
508 -----------
509
510 | zip_file -> **sacuri.zip**
511
512 Parameters
513 ----------
514
515 | Method -> **matchedFilter**
516 | step -> **0.01**
517 | fwhm -> **4**
518 | Advanced option -> **show**
519 | max: -> **50**
520 | snthresh -> **1**
521 | steps -> **2**
522
523
524 Output files
525 ------------
526
527 | **1) xset.RData: RData file**
528
529 | **2) Example of a sampleMetadata.tsv :**
530
531
532 +---------------------------+------------+---------+
533 | sampleMetadata | class | polarity|
534 +===========================+============+=========+
535 |HU_neg_017 | bio |negative |
536 +---------------------------+------------+---------+
537 |HU_neg_028 | bio |negative |
538 +---------------------------+------------+---------+
539 |HU_neg_034 | bio |negative |
540 +---------------------------+------------+---------+
541 |Blanc04 | blank |negative |
542 +---------------------------+------------+---------+
543 |Blanc06 | blank |negative |
544 +---------------------------+------------+---------+
545 |Blanc09 | blank |negative |
546 +---------------------------+------------+---------+
547
548
549
550 | **3) Example of xset.TICs_raw.pdf (Total Ion Chromatograms) :**
551
552 .. image:: xcms_tics.png
553
554 479
555 --------------------------------------------------- 480 ---------------------------------------------------
556 481
557 Changelog/News 482 Changelog/News
558 -------------- 483 --------------
559 484
485
486 **Version 3.0.0.0 - 08/03/2018**
487
488 - UPGRADE: upgrade the xcms version from 1.46.0 to 3.0.0. So refactoring of a lot of underlying codes and methods. Some parameters may have been renamed.
489
490 - CHANGE: xcms.findChromPeaks no longer read the raw data. You have to run MSnbase readMSData first.
491
492 - NEW: a bunch of new options: Spectra Filters (previously scanrange), CentWave.(mzCenterFun, fitgauss, verboseColumns), MatchedFilter.(sigma, impute, baseValue, max), MSW.(verboseColumns), ...
493
494 - NEW: new Filters for Spectra
495
496 - NEW: new methods: CentWaveWithPredIsoROIs
497
498 - UPDATE: since xcms 3.0.0, some options are no more available: scanrange (replace by filters), profmethod, MatchedFilter.step, MatchedFilter.sigma, MSW.winSize.noise, MSW.SNR.method
499
500 - IMPROVEMENT: the advanced options are now in sections. It will allow you to access to all the parameters and to know their default values.
501
502 - IMPROVEMENT: the tool "should" be now more flexible in term of file naming: it "should" accept space and comma. But don't be too imaginative :)
503
504 - CHANGE: removing of the TIC and BPC plots. You can new use the dedicated tool "xcms plot chromatogram"
505
506
560 **Version 2.1.1 - 29/11/2017** 507 **Version 2.1.1 - 29/11/2017**
561 508
562 - BUGFIX: To avoid issues with accented letter in the parentFile tag of the mzXML files, we changed a hidden mechanim to LC_ALL=C 509 - BUGFIX: To avoid issues with accented letter in the parentFile tag of the mzXML files, we changed a hidden mechanim to LC_ALL=C
563 510
511
564 **Version 2.1.0 - 22/02/2017** 512 **Version 2.1.0 - 22/02/2017**
565 513
566 - 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". 514 - 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".
567 515
568 - 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 516 - 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
569 517
518
570 **Version 2.0.11 - 22/12/2016** 519 **Version 2.0.11 - 22/12/2016**
571 520
572 - BUGFIX: propose scanrange for all methods 521 - BUGFIX: propose scanrange for all methods
573 522
523
574 **Version 2.0.10 - 22/12/2016** 524 **Version 2.0.10 - 22/12/2016**
575 525
576 - BUGFIX: when having only one group (i.e. one folder of raw data) the BPC and TIC pdf files do not contain any graph 526 - BUGFIX: when having only one group (i.e. one folder of raw data) the BPC and TIC pdf files do not contain any graph
577 527
528
578 **Version 2.0.9 - 06/07/2016** 529 **Version 2.0.9 - 06/07/2016**
579 530
580 - UPGRADE: upgrade the xcms version from 1.44.0 to 1.46.0 531 - UPGRADE: upgrade the xcms version from 1.44.0 to 1.46.0
532
581 533
582 **Version 2.0.8 - 06/04/2016** 534 **Version 2.0.8 - 06/04/2016**
583 535
584 - TEST: refactoring to pass planemo test using conda dependencies 536 - TEST: refactoring to pass planemo test using conda dependencies
585 537