3
|
1 <tool id="abims_CAMERA_annotateDiffreport" name="CAMERA.annotate" version="2.1.0">
|
0
|
2
|
|
3 <description>CAMERA annotate function. Returns annotation results (isotope peaks, adducts and fragments) and a diffreport if more than one condition.</description>
|
|
4
|
|
5 <requirements>
|
|
6 <requirement type="package" version="3.1.2">R</requirement>
|
|
7 <requirement type="binary">Rscript</requirement>
|
|
8 <requirement type="package" version="1.44.0">xcms</requirement>
|
|
9 <requirement type="package" version="1.22.0">camera</requirement>
|
|
10 <requirement type="package" version="2.1">camera_w4m_script</requirement>
|
|
11 </requirements>
|
|
12
|
|
13 <stdio>
|
|
14 <exit_code range="1:" level="fatal" />
|
|
15 </stdio>
|
|
16
|
3
|
17 <command interpreter="Rscript">
|
0
|
18 CAMERA.r
|
|
19 xfunction annotatediff image $image
|
|
20 convert_param $convert_param num_digits $num_digits nSlaves \${GALAXY_SLOTS:-1}
|
|
21 sigma $sigma perfwhm $perfwhm
|
|
22 maxcharge $maxcharge maxiso $maxiso minfrac $minfrac
|
|
23 ppm $ppm mzabs $mzabs intval $intval
|
|
24 max_peaks $max_peaks
|
|
25 quick $quick_block.quick
|
|
26 #if $quick_block.quick == "FALSE"
|
|
27 polarity $quick_block.polarity
|
|
28 cor_eic_th $quick_block.cor_eic_th
|
|
29 graphMethod $quick_block.graphMethod
|
|
30 pval $quick_block.pval
|
|
31 calcCiS $quick_block.calcCiS
|
|
32 calcIso $quick_block.calcIso
|
|
33 calcCaS $quick_block.calcCaS
|
|
34 multiplier $quick_block.multiplier
|
|
35 #end if
|
|
36
|
|
37 #if $options.option == "show":
|
|
38 eicmax $options.eicmax
|
|
39 eicwidth $options.eicwidth
|
|
40 value $options.value
|
|
41 sortpval $options.sortpval
|
|
42 h $options.h
|
|
43 w $options.w
|
|
44 mzdec $options.mzdec
|
|
45 #else
|
|
46 eicmax 0
|
|
47 eicwidth 200
|
|
48 value "into"
|
|
49 sortpval TRUE
|
|
50 h 480
|
|
51 w 640
|
|
52 mzdec 2
|
|
53 #end if
|
|
54 && (
|
|
55 mv variableMetadata.tsv $variableMetadata;
|
|
56 mv dataMatrix.tsv $datamatrix;
|
|
57 mv annotatediff.RData $rdata
|
|
58 );
|
|
59 cat xset.log
|
|
60
|
|
61
|
|
62 </command>
|
|
63
|
|
64 <inputs>
|
|
65
|
|
66
|
|
67 <param name="image" type="data" label="RData file" format="rdata.xcms.fillpeaks,rdata" help="output file from another function xcms (fillPeaks)" />
|
|
68
|
|
69 <param name="convert_param" type="boolean" checked="false" truevalue="TRUE" falsevalue="FALSE" label="Convert retention time (seconds) into minutes" help="Convert the columns rtmed, rtmin and rtmax into minutes"/>
|
5
|
70 <param name="num_digits" type="integer" value="4" label="" help="Number of decimal places for mass values reported in ions identifiers. A minimum of 4 decimal places should be set" />
|
0
|
71
|
|
72 <param name="sigma" type="integer" value="6" label="groupFWHM: multiplier of the standard deviation" help="[sigma]" />
|
|
73 <param name="perfwhm" type="float" value="0.6" max="1" min="0" label="groupFWHM: percentage of FWHM width" help="[perfwhm]" />
|
|
74 <param name="maxcharge" type="integer" value="3" label="findIsotopes: max. ion charge" help="[maxcharge]" />
|
|
75 <param name="maxiso" type="integer" value="4" label="findIsotopes: max. number of expected isotopes" help="[maxiso]" />
|
|
76 <param name="minfrac" type="float" value="0.5" max="1" min="0" label="findIsotopes: The percentage number of samples, which must satisfy the C12/C13 rule for isotope annotation" help="[minfrac]" />
|
|
77 <param name="ppm" type="integer" value="5" label="General ppm error" help="[ppm]" />
|
|
78 <param name="mzabs" type="float" value="0.015" label="mzabs" help="General absolut error in m/z" />
|
|
79 <param name="intval" type="select" label="General used intensity value" help="[intval] See the help section below">
|
|
80 <option value="into" selected="true">into</option>
|
|
81 <option value="maxo" >maxo</option>
|
|
82 <option value="intb">intb</option>
|
|
83 </param>
|
|
84
|
|
85
|
|
86 <param name="max_peaks" type="integer" value="100" label="How much peaks will be calculated in every thread using the parallel mode" help="[max_peaks]" />
|
|
87 <conditional name="quick_block">
|
|
88 <param name="quick" type="select" label="Quick mode" help="[quick] If TRUE, use only groupFWHM and findIsotopes functions. Else if FALSE, use also groupCorr and findAdducts">
|
|
89 <option value="TRUE">TRUE</option>
|
|
90 <option value="FALSE" selected="true">FALSE</option>
|
|
91 </param>
|
|
92 <when value="FALSE">
|
|
93 <param name="polarity" type="select" label="findAdducts: Which polarity mode was used for measuring of the ms sample" help="polarity">
|
|
94 <option value="positive" >positive</option>
|
|
95 <option value="negative" selected="true">negative</option>
|
|
96 </param>
|
|
97 <param name="cor_eic_th" type="float" value="0.75" max="1" min="0" label="groupCorr: correlation threshold (0..1)" help="[cor_eic_th]" />
|
|
98 <param name="graphMethod" type="select" label="groupCorr: Method selection for grouping peaks after correlation analysis into pseudospectra" help="[graphMethod]">
|
|
99 <option value="hcs" selected="true">hcs</option>
|
|
100 <option value="lpc">lpc</option>
|
|
101 </param>
|
|
102 <param name="pval" type="float" value="0.05" max="1" min="0" label="groupCorr: significant correlation threshold" help="[pval]" />
|
|
103 <param name="calcCiS" type="boolean" checked="true" truevalue="TRUE" falsevalue="FALSE" label="groupCorr: Use correlation inside samples for peak grouping" help="[calcCiS]"/>
|
|
104 <param name="calcIso" type="boolean" checked="false" truevalue="TRUE" falsevalue="FALSE" label="groupCorr: Use isotopic relationship for peak grouping" help="[calcIso]"/>
|
|
105 <param name="calcCaS" type="boolean" checked="false" truevalue="TRUE" falsevalue="FALSE" label="groupCorr: Use correlation across samples for peak grouping" help="[calcCaS]"/>
|
|
106 <param name="multiplier" type="integer" value="3" label="findAdducts: If no ruleset is provided, calculate ruleset with max. number n of [nM+x] clusterions" help="[multiplier]" />
|
|
107 </when>
|
|
108 <when value="TRUE">
|
|
109 <param name="polarity" type="hidden" value="quick" label="for the output label" help="for the output label" />
|
|
110 </when>
|
|
111 </conditional>
|
|
112
|
|
113
|
|
114 <!-- Annotatediffreport specific parameters -->
|
|
115 <conditional name="options">
|
|
116 <param name="option" type="select" label="Number of condition">
|
|
117 <option value="hide" selected="true">One condition</option>
|
|
118 <option value="show">Two or more conditions</option>
|
|
119 </param>
|
|
120 <when value="show">
|
|
121 <param name="eicmax" type="integer" value="0" label="diffreport: number of the most significantly different analytes to create EICs for" help="[eicmax]" />
|
|
122 <param name="eicwidth" type="integer" value="200" label="diffreport: width (in seconds) of EICs produced" help="[eicwidth]" />
|
|
123 <param name="value" type="select" label="diffreport: Intensity values to be used for the diffreport" help="[value]">
|
|
124 <option value="into" selected="true">into</option>
|
|
125 <option value="maxo" >maxo</option>
|
|
126 <option value="intb">intb</option>
|
|
127 </param>
|
|
128 <param name="h" type="integer" value="480" label="diffreport: Numeric variable for the height of the eic and boxplots that are printed out" help="[height]" />
|
|
129 <param name="w" type="integer" value="640" label="diffreport: Numeric variable for the width of the eic and boxplots print out made" help="[width]" />
|
|
130 <param name="mzdec" type="integer" value="2" label="diffreport: Number of decimal places of title m/z values in the eic plot" help="[mzdec]" />
|
|
131 <param name="sortpval" type="boolean" checked="false" truevalue="TRUE" falsevalue="FALSE" label="diffreport: logical indicating whether the reports should be sorted by p-value" help="[sortpval]"/>
|
|
132 </when>
|
|
133 <when value="hide">
|
|
134 </when>
|
|
135 </conditional>
|
|
136
|
|
137 </inputs>
|
|
138
|
|
139 <outputs>
|
3
|
140 <data name="variableMetadata" format="tabular" label="${image.name[:-6]}.annotate.variableMetadata.tsv" />
|
0
|
141 <data name="datamatrix" format="tabular" label="${image.name[:-6]}.annotate.dataMatrix.tsv" />
|
|
142 <data name="rdata" format="rdata.camera.quick" label="${image.name[:-6]}.annotate.${$quick_block.polarity}.Rdata" >
|
|
143 <change_format>
|
|
144 <when input="quick_block.polarity" value="positive" format="rdata.camera.positive" />
|
|
145 <when input="quick_block.polarity" value="negative" format="rdata.camera.negative" />
|
|
146 </change_format>
|
3
|
147 </data>
|
|
148 <data name="output_zip" format="zip" from_work_dir="Xdiffreport.zip" label="${image.name[:-6]}.annotateDiffreport.zip" >
|
|
149 <filter>(options['option'] == 'show')</filter>
|
|
150 </data>
|
0
|
151 </outputs>
|
|
152
|
|
153 <tests>
|
|
154 <test>
|
|
155 <param name="image" value="xset.group.retcor.group.fillPeaks.RData"/>
|
|
156 <param name="convert_param" value="False"/>
|
|
157 <param name="num_digits" value="0"/>
|
|
158 <param name="sigma" value="6"/>
|
|
159 <param name="perfwhm" value="0.6"/>
|
|
160 <param name="maxcharge" value="3"/>
|
|
161 <param name="maxiso" value="4"/>
|
|
162 <param name="minfrac" value="0.5"/>
|
|
163 <param name="ppm" value="5"/>
|
|
164 <param name="mzabs" value="0.015"/>
|
|
165 <param name="intval" value="into"/>
|
|
166 <param name="max_peaks" value="100"/>
|
|
167 <param name="quick_block.quick" value="FALSE"/>
|
|
168 <param name="quick_block.polarity" value="negative"/>
|
|
169 <param name="quick_block.cor_eic_th" value="0.75"/>
|
|
170 <param name="quick_block.graphMethod" value="hcs"/>
|
|
171 <param name="quick_block.pval" value="0.05"/>
|
|
172 <param name="quick_block.calcCiS" value="True"/>
|
|
173 <param name="quick_block.calcIso" value="False"/>
|
|
174 <param name="quick_block.calcCaS" value="False"/>
|
|
175 <param name="quick_block.multiplier" value="3"/>
|
|
176 <param name="options.option" value="show"/>
|
|
177 <param name="options.eicmax" value="200"/>
|
|
178 <param name="options.eicwidth" value="200"/>
|
|
179 <param name="options.value" value="into"/>
|
|
180 <param name="options.h" value="480"/>
|
|
181 <param name="options.w" value="640"/>
|
|
182 <param name="options.mzdec" value="2"/>
|
|
183 <param name="options.sortpval" value="False"/>
|
|
184 <output name="variableMetadata" file="xset.group.retcor.group.fillPeaks.annotate.variableMetadata.tsv" />
|
|
185 <output name="datamatrix" file="xset.group.retcor.group.fillPeaks.annotate.dataMatrix.tsv" />
|
|
186 <output name="rdata" file="xset.group.retcor.group.fillPeaks.annotate.negative.Rdata" />
|
|
187 </test>
|
|
188 </tests>
|
|
189
|
|
190
|
|
191
|
|
192 <help>
|
|
193
|
|
194 .. class:: infomark
|
|
195
|
|
196 **Authors** Carsten Kuhl ckuhl@ipb-halle.de, Ralf Tautenhahn rtautenh@scripps.edu, Steffen Neumann sneumann@@ipb-halle.de
|
|
197
|
|
198 .. class:: infomark
|
|
199
|
|
200 **Galaxy integration** ABiMS TEAM - UPMC/CNRS - Station biologique de Roscoff and Yann Guitton yann.guitton@univ-nantes.fr - part of Workflow4Metabolomics.org [W4M]
|
|
201
|
|
202 | Contact support@workflow4metabolomics.org for any questions or concerns about the Galaxy implementation of this tool.
|
|
203
|
|
204 ---------------------------------------------------
|
|
205
|
|
206
|
|
207 ================
|
|
208 CAMERA.annotate
|
|
209 ================
|
|
210
|
|
211 -----------
|
|
212 Description
|
|
213 -----------
|
|
214
|
|
215 The R-package CAMERA is a Collection of Algorithms for MEtabolite
|
|
216 pRofile Annotation. Its primary purpose is the annotation and evaluation of
|
|
217 LC-MS data. It includes algorithms for annotation of isotope peaks, adducts
|
|
218 and fragments in peak lists. Additional methods cluster mass signals that
|
|
219 originate from a single metabolite, based on rules for mass differences and
|
|
220 peak shape comparison. To use the strength of already existing programs,
|
|
221 CAMERA is designed to interact directly with processed peak data from the
|
|
222 R-package **xcms**.
|
|
223
|
|
224 **What it does?**
|
|
225
|
|
226 The CAMERA annotation procedure can be split into two parts: We want to answer the questions which peaks occur from the same molecule and secondly compute its exact mass and annotate the ion species. Therefore CAMERA annotation workflow contains following primary functions: 1. peak grouping after retention time (**groupFWHM**) 2. peak group verification with peakshape correlation (**groupCorr**) Both methods separate peaks into different groups, which we define as ”pseu- dospectra”. Those pseudospectra can consists from one up to 100 ions, de- pending on the molecules amount and ionizability. Afterwards the exposure of the ion species can be performed with: 2 1. annotation of possible isotopes (**findIsotopes**) 2. annotation of adducts and calculating hypothetical masses for the group (**findAdducts**) This workflow results in a data-frame similar to a xcms peak table, that can be easily stored in a comma separated table .csv (Excel-readable).
|
|
227
|
|
228 If you have two or more conditions, it will return a diffreport result within the annotation results.
|
|
229 The diffreport result shows the most significant differences between two sets of samples. Optionally
|
|
230 create extracted ion chromatograms for the most significant differences.
|
|
231
|
|
232
|
|
233 -----------------
|
|
234 Workflow position
|
|
235 -----------------
|
|
236
|
|
237
|
|
238 **Upstream tools**
|
|
239
|
|
240 ========================= ==================== ====================== ==========
|
|
241 Name output file format parameter
|
|
242 ========================= ==================== ====================== ==========
|
|
243 xcms.fillPeaks xset.fillPeaks.RData rdata.xcms.fillpeaks RData file
|
|
244 ========================= ==================== ====================== ==========
|
|
245
|
|
246
|
|
247 **Downstream tools**
|
|
248
|
|
249 +---------------------------+---------------------------------------+------------------------------------------------+
|
|
250 | Name | Output file | Format |
|
|
251 +===========================+=======================================+================================================+
|
|
252 |CAMERA_combinexsAnnot |xset.annotate.dataMatrix.tsv | rdata.camera.positive or rdata.camera.negative |
|
|
253 +---------------------------+---------------------------------------+------------------------------------------------+
|
|
254 |Determine Vdk or Lowess |xset.annotate.dataMatrix.tsv | Tabular |
|
|
255 +---------------------------+---------------------------------------+------------------------------------------------+
|
|
256 |Normalization Vdk/Lowess |xset.annotate.dataMatrix.tsv | Tabular |
|
|
257 +---------------------------+---------------------------------------+------------------------------------------------+
|
|
258 |Anova |xset.annotate.dataMatrix.tsv | Tabular |
|
|
259 +---------------------------+---------------------------------------+------------------------------------------------+
|
|
260 |PCA |xset.annotate.dataMatrix.tsv | Tabular |
|
|
261 +---------------------------+---------------------------------------+------------------------------------------------+
|
|
262 |Hierarchical Clustering |xset.annotate.dataMatrix.tsv | Tabular |
|
|
263 +---------------------------+---------------------------------------+------------------------------------------------+
|
|
264
|
|
265
|
|
266 The output file **xset.annotate.dataMatrix.tsv** is an tabular file. You can continue your analysis using it in the following tools:
|
|
267
|
|
268 | Determine Vdk or Lowess
|
|
269 | Normalization Vdk/Lowess
|
|
270 | Anova
|
|
271 | PCA
|
|
272 | Hierarchical Clustering
|
|
273
|
|
274
|
|
275 **General schema of the metabolomic workflow**
|
|
276
|
|
277 .. image:: annotate_workflow.png
|
|
278
|
|
279 -----------
|
|
280 Input files
|
|
281 -----------
|
|
282
|
|
283 +---------------------------+---------------------------+
|
|
284 | Parameter : num + label | Format |
|
|
285 +===========================+===========================+
|
|
286 | 1 : RData file | rdata.xcms.fillpeaks |
|
|
287 +---------------------------+---------------------------+
|
|
288
|
|
289
|
|
290 ----------
|
|
291 Parameters
|
|
292 ----------
|
|
293
|
|
294 diffreport: Intensity values to be used for the diffreport
|
|
295 ----------------------------------------------------------
|
|
296
|
|
297 | If **value="into"**, integrated peak intensities are used.
|
|
298 | If **value="maxo"**, maximum peak intensities are used.
|
|
299 | If **value="intb"**, baseline corrected integrated peak intensities are used (only available if peak detection was done by ‘findPeaks.centWave’).
|
|
300
|
|
301
|
|
302
|
|
303 ------------
|
|
304 Output files
|
|
305 ------------
|
|
306
|
|
307 xset.annotate.variableMetadata.tsv
|
|
308
|
|
309 | For each metabolite (row) :
|
|
310 | the value of the intensity in each sample, fold, anova, mzmed, mzmin, mzmax, rtmed, rtmin, rtmax, npeaks, isotopes, adduct and pcgroup
|
|
311
|
|
312 xset.annotate.dataMatrix.tsv
|
|
313
|
|
314 | A tabular file which represents for each metabolite (row), the value of the intensity in each sample (column).
|
|
315
|
|
316 xset.annotate.zip
|
|
317
|
|
318 | It contains filebase_eic, filebase_box and filebase.tsv for one conditon vs another (Anova analysis).
|
|
319
|
|
320 xset.annotate.Rdata rdata.camera.quick or rdata.camera.positive or rdata.camera.negative
|
|
321
|
|
322 | Rdata file, that be used outside Galaxy in R.
|
|
323
|
|
324 ------
|
|
325
|
|
326 .. class:: infomark
|
|
327
|
|
328 The output **"xset.annotate.dataMatrix.tsv"** is a tabular file. You can continue your analysis using it in the following tools of the workflow:
|
|
329
|
|
330 | Determine Vdk or Lowess (Data correction)
|
|
331 | Normalization Vdk/Lowess (Data correction)
|
|
332 | Anova (Statistical analysis)
|
|
333 | PCA (Statistical analysis)
|
|
334 | Hierarchical Clustering (Statistical analysis)
|
|
335
|
|
336
|
|
337 ---------------------------------------------------
|
|
338
|
|
339 ---------------
|
|
340 Working example
|
|
341 ---------------
|
|
342
|
|
343 Input files
|
|
344 -----------
|
|
345
|
|
346 | RData file -> **xset.fillPeaks.RData**
|
|
347
|
|
348 Parameters
|
|
349 ----------
|
|
350
|
|
351 | sortpval -> **false**
|
|
352 | sigma -> **6 (default)**
|
|
353 | perfwhm -> **0.6 (default)**
|
|
354 | maxcharge -> **3 (default)**
|
|
355 | maxiso -> **4 (default)**
|
|
356 | minfrac -> **0.5 (default)**
|
|
357 | ppm -> **500**
|
|
358 | mzabs -> **0.015(default)**
|
|
359 | Advanced options -> **hide**
|
|
360 | Numver of condition -> Two or more conditioons
|
|
361 | eicmax -> **200**
|
|
362 | eicwidth -> **200 (default)**
|
|
363
|
|
364
|
|
365
|
|
366 Output files
|
|
367 ------------
|
|
368
|
|
369 **Example of an xset.annotate.dataMatrix.tsv output**
|
|
370
|
|
371 .. image:: annotatediffreport_dataMatrix.png
|
|
372
|
|
373 **Example of a part of xset.annotate.variableMetadata.tsv output**
|
|
374
|
|
375 .. image:: annotatediffreport_variableMetadata.png
|
|
376
|
|
377 </help>
|
|
378
|
|
379 <citations>
|
|
380 <citation type="doi">10.1021/ac202450g</citation>
|
|
381 <citation type="doi">10.1093/bioinformatics/btu813</citation>
|
|
382 </citations>
|
|
383
|
|
384
|
|
385 </tool>
|
|
386
|
|
387
|