view ipo4retgroup.xml @ 2:8e5f667359cb draft default tip

planemo upload for repository https://github.com/rietho/IPO commit d25c744220e416cce158161fa7dc3b0f153a5c11
author workflow4metabolomics
date Mon, 11 Sep 2023 22:37:32 +0000
parents ae8de756dfcf
children
line wrap: on
line source

<tool id="ipo4retgroup" name="IPO for group and retcor" version="@TOOL_VERSION@+galaxy0">

    <description>IPO optimization process for xcms.groupChromPeaks and xcms.adjustRtime</description>

    <macros>
        <import>macros.xml</import>
    </macros>

    <expand macro="requirements"/>

    <command detect_errors="exit_code"><![CDATA[
        LANG=C Rscript '$__tool_directory__/ipo4retgroup.r'

        image '$image'

        parametersOutput '$parametersOutput'

        samplebyclass $samplebyclass

        @COMMAND_NSLAVES@

        ## group methods

        sleep 0.001
        #if $group.method == "density":
            bw "c($group.section_group_density_optiomizable.bw)"
            mzwid "c($group.section_group_density_optiomizable.mzwid)"

            minfrac $group.section_group_density_non_optimizable.minfrac
            max $group.section_group_density_non_optimizable.max
        #end if

        ## retcor methods

        #if $retcor.methods.method == "obiwarp":
            retcorMethod obiwarp
            profStep $retcor.methods.section_retcor_obiwarp_non_optimizable.profStep

        #elif $retcor.methods.method == "peakgroups":
            retcorMethod loess
            smooth $retcor.methods.section_retcor_peakgroups_non_optimizable.smooth
            extra $retcor.methods.section_retcor_peakgroups_non_optimizable.extra
            missing $retcor.methods.section_retcor_peakgroups_non_optimizable.missing
            span $retcor.methods.section_retcor_peakgroups_non_optimizable.span
            family $retcor.methods.section_retcor_peakgroups_non_optimizable.family
            plottype $retcor.methods.section_retcor_peakgroups_non_optimizable.plottype
        #elif $retcor.methods.method == "none":
            retcorMethod none
        #end if

        @COMMAND_FILE_LOAD@
    ]]></command>

    <inputs>

        <param name="image" type="data" format="rdata.xcms.raw,rdata.xcms.group,rdata.xcms.retcor,rdata" label="xset RData file" help="output file from another function xcms (xcmsSet, retcor etc.)" />

        <param name="samplebyclass" type="integer" value="2" min="0" 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" />

        <section name="group" title="groupChromPeaks Options" expanded="True">
            <param argument="method" type="select" label="Method to use for grouping" help="See the help section below. Only the density method is available so far">
                <option value="density" selected="true">density</option>
            </param>
            <section name="section_group_density_optiomizable"  title="Optimizable parameters" expanded="True">
                <param argument="bw" type="text" value="22,38" label="Range or a fixed value for Bandwidth" help="bandwidth (standard deviation or half width at half maximum) of gaussian smoothing kernel to apply to the peak density chromatogram (ex: 22,38)">
                    <expand macro="input_validator_range_integer"/>
                </param>
                <param argument="mzwid" type="text" value="0.015,0.035" label="Range or a fixed value for Width of overlapping m/z slices" help="to use for creating peak density chromatograms and grouping peaks across samples (ex: 0.015,0.035)" >
                    <expand macro="input_validator_range_float_neg"/>
                </param>
            </section>
            <section name="section_group_density_non_optimizable" title="Non optimizable parameters"  expanded="True">
                <param argument="minfrac" type="float" value="0.5" label="Minimum fraction of samples necessary" help="in at least one of the sample groups for it to be a valid group" />
                <param argument="max" type="integer" value="50" label="Maximum number of groups to identify in a single m/z slice" />
            </section>
        </section>

        <section name="retcor" title="adjustRtime Options" expanded="True">
            <conditional name="methods">
                <param argument="method" type="select" label="Method to use for retention time correction" help="See the help section below" >
                    <option value="obiwarp">obiwarp</option>
                    <option value="peakgroups">peakgroups</option>
                </param>
                <when value="obiwarp">
                    <section name="section_retcor_obiwarp_non_optimizable" title="Non optimizable parameters"  expanded="True">
                        <param argument="profStep" type="text" value="0.7,1.0" label="Range or a fixed value for Step size (in m/z)" help="to use for profile generation from the raw data files (ex: 1 or 0.7 1.0)" >
                            <expand macro="input_validator_range_float_neg"/>
                        </param>
                    </section>
                </when>
                <when value="peakgroups">
                    <section name="section_retcor_peakgroups_non_optimizable" title="Non optimizable parameters"  expanded="True">
                        <param argument="smooth" type="select" label="Smooth method" help="only the 'loess’ for non-linear alignment is available so far" >
                            <option value="loess">loess</option>
                        </param>
                        <param argument="extra" type="integer" value="1" min="0" label="Number of extra peaks to allow in retention time correction correction groups" />
                        <param argument="missing" type="integer" value="1" min="0" label="Number of missing samples to allow in retention time correction groups" />
                        <param argument="span" type="float" value="0.2" min="0" label="Degree of smoothing for local polynomial regression fitting" />
                        <param argument="family" type="select" label="Family" help="if gaussian fitting is by least-squares with no outlier removal, and if symmetric a re descending M estimator is used with Tukey's biweight function, allowing outlier removal">
                            <option value="gaussian" selected="true">gaussian</option>
                            <option value="symmetric">symmetric</option>
                        </param>
                        <param argument="plottype" type="select" help="if deviation plot retention time deviation points and regression fit, and if mdevden also plot peak overall peak density and retention time correction peak density">
                            <option value="none" selected="true">none</option>
                            <option value="deviation">deviation</option>
                            <option value="mdevden">mdevden</option>
                        </param>
                    </section>
                </when>
            </conditional>

        </section>

        <expand macro="input_file_load"/>

    </inputs>

    <outputs>
        <data name="parametersOutput" format="tabular" label="IPO_parameters4xcmsSet.tsv" from_work_dir="IPO_parameters4xcmsSet.tsv"/>
    </outputs>

    <tests>
        <test>
            <param name="image" value="faahKO.xset_single.RData"/>
            <param name="samplebyclass" value="0"/>
            <section name="group">
                <param name="method" value="density"/>
                <section name="section_group_density_optiomizable">
                    <param name="bw" value="5,6"/>
                    <param name="mzwid" value="0.01,0.02"/>
                </section>
                <section name="section_group_density_non_optimizable">
                    <param name="minfrac" value="1"/>
                </section>
            </section>
            <section name="retcor">
                <conditional name="methods">
                    <param name="method" value="peakgroups"/>
                    <section name="section_retcor_peakgroups_non_optimizable">
                        <param name="smooth" value="loess"/>
                        <param name="rextra" value="1"/>
                        <param name="missing" value="1"/>
                    </section>
                </conditional>
            </section>
            <expand macro="test_file_load_single"/>
            <output name="parametersOutput" file="faahKO_IPO_parameters4retgroup_bw.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
==================================== ======================== ==============================
xcms.findChromPeaks Merger (single)  xset.merged.RData        rdata.xcms.findchrompeaks
------------------------------------ ------------------------ ------------------------------
xcms.adjustRtime                     ``*``.adjustRtime.RData  rdata.xcms.retcor
==================================== ======================== ==============================


**Downstream tools**

+---------------------------+----------------------+-----------------+
| Name                      | Output file          | Format          |
+===========================+======================+=================+
|xcms.groupChromPeaks       | parametersOutput.tsv | Tabular         |
+---------------------------+--------------------+-------------------+


----------
Parameters
----------

Method to use for groupChromPeaks
---------------------------------

**PeakDensity**

    | This method performs performs correspondence (chromatographic peak grouping) based on the density (distribution) of identified peaks along the retention time axis within slices of overlapping mz ranges.  All peaks (from the same or from different samples) being close on the retention time axis are grouped into a feature (peak group).
    | See the PeakDensity_manual_


.. _PeakDensity_manual: https://rdrr.io/bioc/xcms/man/groupChromPeaks-density.html#heading-2


Method to use for adjustRtime
-------------------------------------------

**PeakGroups**

    | This method performs retention time adjustment based on the alignment of chromatographic peak groups present in all/most samples (hence corresponding to house keeping compounds). First the retention time deviation of these peak groups is described by fitting either a polynomial (‘smooth = "loess"’) or a linear ( ‘smooth = "linear"’) model to the data points. These models are subsequently used to adjust the retention time of each spectrum in each sample.
    | See the PeakGroups_manual_

**Obiwarp**

    | This method performs retention time adjustment using the Obiwarp method [Prince 2006]. It is based on the code at http://obi-warp.sourceforge.net but supports alignment of multiple samples by aligning each against a _center_ sample. The alignment is performed directly on the ‘profile-matrix’ and can hence be performed independently of the peak detection or peak grouping.
    | See the Obiwarp_manual_

.. _PeakGroups_manual: https://rdrr.io/bioc/xcms/man/adjustRtime-peakGroups.html#heading-2
.. _Obiwarp_manual: https://rdrr.io/bioc/xcms/man/adjustRtime-obiwarp.html

---------------------------------------------------

Changelog/News
--------------

@HELP_NEWVERSION_1_10_0_0@

    ]]></help>

    <expand macro="citation" />
</tool>