6
+ − 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>