Mercurial > repos > lecorguille > ipo
diff ipo4xcmsSet.xml @ 0:ac5f2936575b draft
planemo upload commit 131562ad89c33a2f87754936ce3c8fe6899484c0
| author | lecorguille |
|---|---|
| date | Thu, 03 Aug 2017 06:00:00 -0400 |
| parents | |
| children | ae8de756dfcf |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ipo4xcmsSet.xml Thu Aug 03 06:00:00 2017 -0400 @@ -0,0 +1,382 @@ +<tool id="ipo4xcmsSet" name="IPO for xcmsSet" version="0.0.3"> + + <description>IPO optimization process for xcms.xcmsSet</description> + + <macros> + <import>macros.xml</import> + + <macro name="centwave_ppm_fixed"> + <param name="ppm" type="integer" value="25" label="Max tolerated ppm m/z deviation in consecutive scans in ppm" help="[ppm]" /> + </macro> + <macro name="centwave_peakwidth_fixed"> + <param name="min_peakwidth" type="float" value="20" label="Min peak width range in seconds" optional="true" help="[min_peakwidth]" /> + <param name="max_peakwidth" type="float" value="50" label="Max peak width range in seconds" optional="true" help="[max_peakwidth]" /> + </macro> + <macro name="centwave_mzdiff_fixed"> + <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" /> + </macro> + + <macro name="matchedfilter_fwhm_fixed"> + <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" /> + </macro> + <macro name="matchedfilter_mzdiff_fixed"> + <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 " /> + </macro> + </macros> + + <expand macro="requirements"/> + <expand macro="stdio"/> + + <command><![CDATA[ + LANG=C Rscript $__tool_directory__/ipo4xcmsSet.r + + #if $input.is_of_type("mzxml") or $input.is_of_type("mzml") or $input.is_of_type("mzdata") or $input.is_of_type("netcdf"): + singlefile_galaxyPath '$input' singlefile_sampleName '$input.name' + #else + zipfile '$input' + #end if + + parametersOutput $parametersOutput + xsetRdataOutput $xsetRData + + samplebyclass $samplebyclass + + ## profmethod $profmethod + @COMMAND_NSLAVES@ + method $methods.method + #if $methods.method == "centWave": + ppm "c($methods.section_centwave_optiomizable.conditional_parameter.ppm)" + min_peakwidth "c($methods.section_centwave_optiomizable.conditional_parameter.min_peakwidth)" + max_peakwidth "c($methods.section_centwave_optiomizable.conditional_parameter.max_peakwidth)" + mzdiff "c($methods.section_centwave_optiomizable.conditional_parameter.mzdiff)" + + snthresh $methods.section_centwave_non_optiomizable.snthresh + integrate $methods.section_centwave_non_optiomizable.integrate + noise $methods.section_centwave_non_optiomizable.noise + prefilter "c($methods.section_centwave_non_optiomizable.prefilter)" + + #elif $methods.method == "matchedFilter": + fwhm "c($methods.section_matchedfilter_optiomizable.conditional_parameter.fwhm)" + mzdiff "c($methods.section_matchedfilter_optiomizable.conditional_parameter.mzdiff)" + + step $methods.section_matchedfilter_non_optimizable.step + steps $methods.section_matchedfilter_non_optimizable.steps + max $methods.section_matchedfilter_non_optimizable.max + snthresh $methods.section_matchedfilter_non_optimizable.snthresh + #end if + + @COMMAND_LOG_EXIT@ + ]]></command> + + <inputs> + + <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." /> + + <param name="samplebyclass" type="integer" value="2" label="Number of samples used per class to estimate the best parameters" help="Set to 0 to use the whole dataset. To save time, reduce this number" /> + + <conditional name="methods"> + <param name="method" type="select" label="Extraction method for peaks detection" help="[method] See the help section below"> + <option value="centWave" >centWave</option> + <option value="matchedFilter" selected="true">matchedFilter</option> + </param> + + <!-- centWave Filter options --> + <when value="centWave"> + <section name="section_centwave_optiomizable" title="Optimizable parameters" expanded="True"> + <conditional name="conditional_parameter"> + <param name="select_parameter" type="select" label="Which parameter do you want to optimize?" help="Only one paramter can be optimized at once. The other will require fixed values"> + <option value="ppm">Max tolerated ppm m/z deviation in consecutive scans in ppm [ppm]</option> + <option value="peakwidth">Min,Max peak width in seconds [peakwidth]</option> + <option value="mzdiff">Minimum difference in m/z for peaks with overlapping Retention Times [mzdiff]</option> + </param> + <when value="ppm"> + <param name="ppm" type="text" value="17,32" label="Range for Max tolerated ppm m/z deviation in consecutive scans in ppm" optional="false" help="[ppm] (ex: 25 or 17,32)"> + <validator type="regex" message="Should be this format XX,YY">[0-9]+,[0-9]+</validator> + </param> + <expand macro="centwave_peakwidth_fixed" /> + <expand macro="centwave_mzdiff_fixed" /> + </when> + <when value="peakwidth"> + <param name="min_peakwidth" type="text" value="12,18" label="Range for Min peak width range in seconds" optional="true" help="[min_peakwidth] (ex: 12,18)"> + <validator type="regex" message="Should be one combinaison of those format: XX,YY or XX.XX,YY.YY">[0-9]+[\.]?[0-9]*,[0-9]+[\.]?[0-9]*</validator> + </param> + <param name="max_peakwidth" type="text" value="35,65" label="Range for Max peak width range in seconds" optional="true" help="[max_peakwidth] (ex: 35,65)"> + <validator type="regex" message="Should be one combinaison of those format: XX,YY or XX.XX,YY.YY">[0-9]+[\.]?[0-9]*,[0-9]+[\.]?[0-9]*</validator> + </param> + <expand macro="centwave_ppm_fixed" /> + <expand macro="centwave_mzdiff_fixed" /> + </when> + <when value="mzdiff"> + <param name="mzdiff" type="text" value="-0.001,0.010" label="Range for Minimum difference in m/z for peaks with overlapping retention times" help="[mzdiff] Can be negative to allow overlap (ex: -0.001,0.010)"> + <validator type="regex" message="Should be one combinaison of those format: XX,YY or -XX,YY or XX.XX,YY.YY">[\-]?[0-9]+[\.]?[0-9]*,[\-]?[0-9]+[\.]?[0-9]*</validator> + </param> + <expand macro="centwave_ppm_fixed" /> + <expand macro="centwave_peakwidth_fixed" /> + </when> + </conditional> + </section> + + <section name="section_centwave_non_optiomizable" title="Non optimizable parameters" expanded="True"> + <param name="snthresh" type="integer" value="10" label="Signal/Noise threshold" help="[snthresh] Signal to noise ratio cutoff" /> + <param name="integrate" type="select" label="Peak limits method" help="[integrate]" > + <option value="1">peak limits based on smoothed 2nd derivative (less precise)</option> + <option value="2">peak limits based on real data (more sensitive to noise)</option> + </param> + <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’"/> + <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"/> + </section> + </when> + + <!-- matched Filter options --> + <when value="matchedFilter"> + <section name="section_matchedfilter_optiomizable" title="Optimizable parameters" expanded="True"> + <conditional name="conditional_parameter"> + <param name="select_parameter" type="select" label="Which parameter do you want to optimize?" help="Only one paramter can be optimized at once. The other will require fixed values"> + <option value="fwhm">Full width at half maximum of matched filtration gaussian model peak [fwhm]</option> + <option value="mzdiff">Minimum difference in m/z for peaks with overlapping Retention Times [mzdiff]</option> + </param> + <when value="fwhm"> + <param name="fwhm" type="text" value="25,35" label="Range for Full width at half maximum of matched filtration gaussian model peak" optional="true" help="[fwhm] Only used to calculate the actual sigma (ex: 25,35)"> + <validator type="regex" message="Should be this format: XX,YY">[0-9]+,[0-9]+</validator> + </param> + <expand macro="matchedfilter_mzdiff_fixed" /> + </when> + <when value="mzdiff"> + <param name="mzdiff" type="text" value="0.4,0.7" label="Range for Minimum difference in m/z for peaks with overlapping Retention Times" help="[mzdiff] By default: 0.8-step*steps (ex: 0.4,0.7)"> + <validator type="regex" message="Should be one combinaison of those format: XX,YY or -XX,YY or XX.XX,YY.YY">[\-]?[0-9]+[\.]?[0-9]*,[\-]?[0-9]+[\.]?[0-9]*</validator> + </param> + <expand macro="matchedfilter_fwhm_fixed" /> + </when> + </conditional> + </section> + + <section name="section_matchedfilter_non_optimizable" title="Non optimizable parameters" expanded="True"> + <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" /> + <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" /> + <param name="max" type="integer" value="5" label="Maximum number of peaks per extracted ion chromatogram" help="[max]" /> + <param name="snthresh" type="integer" value="10" label="Signal to noise ratio cutoff" help="[snthresh]" /> + </section> + </when> + </conditional> + + + </inputs> + + <outputs> + <data name="xsetRData" format="rdata.xcms.raw" label="xset.RData" /> + <data name="parametersOutput" format="tabular" label="IPO_parameters4xcmsSet.tsv" /> + <data name="log" format="txt" label="ipo4xcmsSet.log.txt" /> + </outputs> + + <tests> + <test> + <param name="input" value="MM14.mzML" ftype="mzxml" /> + <param name="samplebyclass" value="0" /> + <conditional name="methods"> + <param name="method" value="centWave" /> + <section name="section_centwave_optiomizable" > + <conditional name="conditional_parameter"> + <param name="select_parameter" value="peakwidth" /> + <param name="min_peakwidth" value="3,9.5" /> + <param name="max_peakwidth" value="10,20" /> + <param name="ppm" value="56" /> + <param name="mzdiff" value="-0.001" /> + </conditional> + </section> + </conditional> + <output name="parametersOutput" file="MM14_IPO_parameters4xcmsSet_peakwidth.tsv" /> + </test> + <test> + <param name="input" value="MM14.mzML" ftype="mzxml" /> + <param name="samplebyclass" value="0" /> + <conditional name="methods"> + <param name="method" value="centWave" /> + <section name="section_centwave_optiomizable" > + <conditional name="conditional_parameter"> + <param name="select_parameter" value="ppm" /> + <param name="ppm" value="50,60" /> + <param name="min_peakwidth" value="3.325" /> + <param name="max_peakwidth" value="11" /> + <param name="mzdiff" value="-0.001" /> + </conditional> + </section> + </conditional> + <output name="parametersOutput" file="MM14_IPO_parameters4xcmsSet_ppm.tsv" /> + </test> + <!-- Too long for Travis CI --> + <!--<test> + <param name="inputs|input" value="zip_file" /> + <param name="inputs|zip_file" value="sacuri_2files.zip" ftype="zip" /> + <param name="samplebyclass" value="1" /> + <param name="methods|method" value="centWave" /> + <param name="methods|ppm" value="25" /> + <param name="methods|min_peakwidth" value="20,30" /> + <param name="methods|max_peakwidth" value="45,55" /> + <output name="parametersOutput" file="sacuri_2files_centWave_IPO_parameters4xcmsSet.tsv" /> + </test>--> + <!-- Too long for Travis CI --> + <!--<test> + <param name="inputs|input" value="zip_file" /> + <param name="inputs|zip_file" value="sacuri_2files.zip" ftype="zip" /> + <param name="samplebyclass" value="1" /> + <param name="methods|method" value="matchedFilter" /> + <param name="methods|step" value="0.05,0.15" /> + <param name="methods|fwhm" value="25,35" /> + <output name="parametersOutput" file="sacuri_2files_matchedFilter_IPO_parameters4xcmsSet.tsv" /> + </test>--> + <!--Failed: + Error in resultIncreased(history) : + No isotopes have been detected, peak picking not optimizable by IPO!--> + <!--<test> + <param name="inputs|input" value="zip_file" /> + <param name="inputs|zip_file" value="faahKO_reduce.zip" ftype="zip" /> + <param name="methods|method" value="centWave" /> + <param name="methods|ppm" value="25" /> + <param name="methods|min_peakwidth" value="15,25" /> + <param name="methods|min_peakwidth" value="20,30" /> + <param name="methods|max_peakwidth" value="45,55" /> + <output name="parametersOutput" file="faahKO_IPO_parameters4xcmsSet.tsv" /> + </test>--> + </tests> + + <help><![CDATA[ + +@HELP_AUTHORS@ + +=============== +IPO.ipo4xcmsSet +=============== + +----------- +Description +----------- + +A Tool for automated Optimization of XCMS Parameters + + +----------------- +Workflow position +----------------- + +**Upstream tools** + +========================= ================= ======= ========= +Name output file format parameter +========================= ================= ======= ========= +NA NA zip NA +========================= ================= ======= ========= + + +**Downstream tools** + ++---------------------------+----------------------+-----------------+ +| Name | Output file | Format | ++===========================+======================+=================+ +|xcms.xcmsSet | parametersOutput.tsv | Tabular | ++---------------------------+--------------------+-------------------+ + + + +----------- +Input files +----------- + ++---------------------------+------------+ +| Parameter : num + label | Format | ++===========================+============+ +| 1 : Choose your inputs | zip | ++---------------------------+------------+ + +**Choose your inputs** + +You have two methods for your inputs: + + | Zip file (recommended): You can put a zip file containing your inputs: myinputs.zip (containing all your conditions as sub-directories). + | 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. + +Steps for creating the zip file +------------------------------- + +**Step1: Creating your directory and hierarchize the subdirectories** + + +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). + +Your zip should contain all your conditions as sub-directories. For example, two conditions (mutant and wild): +arabidopsis/wild/01.raw +arabidopsis/mutant/01.raw + +**Step2: Creating a zip file** + +Create your zip file (e.g.: arabidopsis.zip). + +**Step 3 : Uploading it to our Galaxy server** + +If your zip file is less than 2Gb, you get use the Get Data tool to upload it. + +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). + +For more informations, don't hesitate to send us an email at supportATworkflow4metabolomics.org). + +Advices for converting your files for the XCMS input +---------------------------------------------------- + +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. + +**We recommend you the following parameters:** + +Use Filtering: **True** + +Use Peak Picking: **True** + +Peak Peaking -Apply to MS Levels: **All Levels (1-)** : Centroid Mode + +Use zlib: **64** + +Binary Encoding: **64** + +m/z Encoding: **64** + +Intensity Encoding: **64** + + +---------- +Parameters +---------- + +Extraction method for peaks detection +------------------------------------- + +**Matched Filter** + + | One parameter to consider is the Gaussian model peak width used for matched filtration,an integral part of the peak detection algorithm. + | For a discussion of how model peak width affects the signal to noise ratio, see Danielsson et al. (2002). + + +**cent Wave** + + | This algorithm is most suitable for high resolution LC/{TOF,OrbiTrap,FTICR}-MS data in centroid mode. + | Due to the fact that peak centroids are used, a binning step is not necessary. + | 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. + + +------------ +Output files +------------ + +IPO_parameters4xcmsSet.tsv + + | Optimal parameters for xcmsSet + + +--------------------------------------------------- + +Changelog/News +-------------- + + + + ]]></help> + + <expand macro="citation" /> +</tool>
