0
|
1 <tool id="metams_lcms_annotate" name="METAMS-LC/MS Annotate" version="0.0.4">
|
|
2 <description> Runs metaMS process for LC/MS feature annotation</description>
|
|
3 <requirements>
|
|
4 <requirement type="package" version="3.1.1">R_bioc_metams</requirement>
|
|
5 </requirements>
|
|
6 <command interpreter="Rscript">
|
|
7 metaMS_cmd_annotate.r
|
|
8 $constructed_db
|
|
9 $xsetData
|
|
10 $customMetaMSsettings
|
|
11 $outputFile
|
|
12 #if $mzTol.mzTolType == "fixed"
|
|
13 0
|
|
14 #else
|
|
15 "$mzTol.mass_error_function"
|
|
16 #end if
|
|
17 $htmlReportFile
|
|
18 $htmlReportFile.files_path
|
|
19 $outputLog
|
|
20 </command>
|
|
21 <inputs>
|
|
22 <param name="constructed_db" type="select" label="Constructed DB" help="Reference annotation database generated from matching measurements of a mixture of chemical standards
|
|
23 against a manually validated reference table which contains the key analytical information for each standard."
|
|
24 dynamic_options='get_directory_files("tool-data/shared/PRIMS-metabolomics/metaMS")'/>
|
|
25
|
|
26 <param name="xsetData" type="data" format="rdata" label="xcmsSet data file (xset RDATA)" help="E.g. output data file resulting from METAMS 'feature picking, aligning and grouping' run"/>
|
|
27
|
|
28 <param name="protocolName" type="text" size="30" label="protocolName" value="e.g. Synapt.QTOF.RP"
|
|
29 help="Choose a name to give for the specific settings in the parameters below"/>
|
|
30
|
|
31 <param name="rtdiff" type="float" size="10" value="1.5" label="rtdiff" help="(Annotation) Allowed rt difference (in minutes)"/>
|
|
32
|
|
33 <conditional name="mzTol">
|
|
34 <param name="mzTolType" type="select" size="30" label="(Annotation) m/z tolerance type">
|
|
35 <option value="fixed" selected="true">Fixed tolerance</option>
|
|
36 <option value="adaptive" >Adaptive tolerance</option>
|
|
37 </param>
|
|
38 <when value="fixed">
|
|
39 <param name="mzdiff" type="float" size="10" value="0.005" label="mzdiff" help="(Annotation) Fixed mass tolerance" />
|
|
40 </when>
|
|
41 <when value="adaptive">
|
|
42 <param name="ppm" type="float" size="10" value="5.0" label="ppm" help="(Annotation) Tolerance in ppm" />
|
|
43 <param name="mass_error_function" type="text" area="true" size="3x70" label="(Annotation) Mass error function"/>
|
|
44 </when>
|
|
45 </conditional>
|
|
46
|
|
47 <param name="rtval" type="float" size="10" value="0.1" label="(max)rtval" help="(Validation) Group items are clustered once more with hierarchical clustering ('complete' method)
|
|
48 based on their rt distances. Here one can specify the rt threshold for removing the items that have too diverging rt (the ones with rt difference
|
|
49 larger than rtval). " />
|
|
50 <param name="minfeat" type="integer" size="10" value="2" label="minfeat"
|
|
51 help="(Validation) Threshold for the minimum number of features a
|
|
52 cluster/group should have (after rtval filtering above). Other clusters/groups are filtered out." />
|
|
53
|
|
54 </inputs>
|
|
55 <configfiles>
|
|
56
|
|
57 <configfile name="customMetaMSsettings">## start comment
|
|
58 ## metaMS process settings
|
|
59 customMetaMSsettings <- metaMSsettings(protocolName = "${protocolName}",
|
|
60 chrom = "LC")
|
|
61 metaSetting(customMetaMSsettings, "match2DB") <- list(
|
|
62 rtdiff = ${rtdiff},
|
|
63 rtval = ${rtval},
|
|
64 #if $mzTol.mzTolType == "fixed"
|
|
65 mzdiff = ${mzTol.mzdiff},
|
|
66 #else
|
|
67 ppm = ${mzTol.ppm},
|
|
68 #end if
|
|
69 minfeat = ${minfeat})</configfile>
|
|
70
|
|
71 </configfiles>
|
|
72
|
|
73 <outputs>
|
|
74 <data name="outputFile" format="tabular" label="${tool.name} on ${on_string} - metaMS annotated file (TSV)"/>
|
|
75 <data name="outputLog" format="txt" label="${tool.name} on ${on_string} - metaMS LOG" hidden="True"/>
|
|
76 <data name="htmlReportFile" format="html" label="${tool.name} on ${on_string} - metaMS report (HTML)"/>
|
|
77 </outputs>
|
|
78 <tests>
|
|
79 <test>
|
|
80 </test>
|
|
81 </tests>
|
|
82 <code file="match_library.py" /> <!-- file containing get_directory_files function used above-->
|
|
83 <help>
|
|
84
|
|
85 .. class:: infomark
|
|
86
|
|
87 Runs metaMS process for LC/MS feature annotation based on matching to an existing 'standards' DB.
|
|
88 The figure below shows the main parts of this metaMS process.
|
|
89
|
|
90 .. image:: $PATH_TO_IMAGES/metaMS_annotate.png
|
|
91
|
|
92
|
|
93 .. class:: infomark
|
|
94
|
|
95 The implemented annotation strategy can be broken down in the following steps:
|
|
96
|
|
97 1. *Feature wise Annotation:* Each feature detected by runLC is matched against the database. If
|
|
98 the mass error function is provided, the appropriate m/z tolerance is calculated, otherwise a fixed
|
|
99 tolerance is used (mzdiff). The retention time tolerance is fixed and should be selected on the
|
|
100 bases of the characteristics of each chromatographic method (rtdiff). Multiple annotations - i.e.
|
|
101 features which are associated to more than one compound - are possible. This outcome does not
|
|
102 indicate a problem per se, but is an inherent drawback of co-elution.
|
|
103
|
|
104 2. *Annotation Validation:* The annotated features are organized in 'pseudospectra' collecting all
|
|
105 the experimental features which are assigned to a specific compound. A specific annotation is
|
|
106 confirmed only if more than minfeat features which differ in retention time less than rtval are
|
|
107 present in a pseudospectrum. As a general rule rtval should be narrower than rtdiff. The
|
|
108 latter, indeed, accounts for shifts in retention time between the injection of the standards and the
|
|
109 metabolomics experiment under investigation. This time can be rather long, considering that the
|
|
110 standards are not commonly re-analyzed each time. On the other hand, rtval represents the shift
|
|
111 between the ions of the same compound within the same batch of injections and therefore it has
|
|
112 only to account for the smaller shifts occurring during peak picking and alignment.
|
|
113
|
|
114
|
|
115 </help>
|
|
116 <citations>
|
|
117 <citation type="doi">10.1016/j.jchromb.2014.02.051</citation> <!-- example
|
|
118 see also https://wiki.galaxyproject.org/Admin/Tools/ToolConfigSyntax#A.3Ccitations.3E_tag_set
|
|
119 -->
|
|
120 </citations>
|
|
121 </tool> |