view abims_xcms_fillPeaks.xml @ 9:ee29f0a6e361 draft

planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
author lecorguille
date Mon, 30 Jan 2017 08:53:48 -0500
parents cce30b3398e0
children de0d85537ee3
line wrap: on
line source

<tool id="abims_xcms_fillPeaks" name="xcms.fillPeaks" version="2.0.8">

    <description>Integrate a sample's signal in regions where peak groups are not represented to create new peaks in missing areas</description>

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

    <expand macro="requirements"/>
    <expand macro="stdio"/>

    <command><![CDATA[
        @COMMAND_XCMS_SCRIPT@
        xfunction fillPeaks
        image $image

        xsetRdataOutput $xsetRData

        method $method

        #if $peaklist.peaklistBool
            variableMetadataOutput $variableMetadata
            dataMatrixOutput $dataMatrix
            convertRTMinute $peaklist.convertRTMinute
            numDigitsMZ $peaklist.numDigitsMZ
            numDigitsRT $peaklist.numDigitsRT
            intval $peaklist.intval
        #end if

        @COMMAND_ZIPFILE_LOAD@

        @COMMAND_LOG_EXIT@

    ]]></command>

    <inputs>
        <param name="image" type="data" format="rdata.xcms.group,rdata" label="xset RData file" help="output file from another xcms function (group)" />
        <param name="method" type="select" label="Filling method" help="[method] See the help section below">
            <option value="chrom" selected="true">chrom</option>
            <option value="MSW" >MSW</option>
        </param>
        <conditional name="peaklist">
            <param name="peaklistBool" type="boolean" label="Get a Peak List" />
            <when value="true">
              <param name="convertRTMinute" 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"/>
              <param name="numDigitsMZ" type="integer" value="4" label="Number of decimal places for mass values reported in ions' identifiers." help="A minimum of 4 decimal places is recommended. Useful to avoid duplicates within identifiers" />
              <param name="numDigitsRT" type="integer" value="0" label="Number of decimal places for retention time values reported in ions' identifiers." help="Useful to avoid duplicates within identifiers" />
              <param name="intval" type="select" label="Reported intensity values" help="[intval] See the help section below">
                  <option value="into" selected="true">into</option>
                  <option value="maxo">maxo</option>
                  <option value="intb">intb</option>
              </param>
            </when>
            <when value="false" />
        </conditional>
        <expand macro="zipfile_load"/>

    </inputs>

    <outputs>
        <data name="xsetRData" format="rdata.xcms.fillpeaks" label="${image.name[:-6]}.fillPeaks.RData" />
        <data name="variableMetadata" format="tabular" label="${image.name[:-6]}.fillPeaks.variableMetadata.tsv">
            <filter>(peaklist['peaklistBool'])</filter>
        </data>
        <data name="dataMatrix" format="tabular" label="${image.name[:-6]}.fillPeaks.dataMatrix.tsv" >
            <filter>(peaklist['peaklistBool'])</filter>
        </data>
        <data name="log" format="txt" label="xset.log.txt"  hidden="true" />
    </outputs>

    <tests>
        <!--<test>
            <param name="image" value="xset.group.retcor.group.RData"/>
            <param name="method" value="chrom"/>
            <param name="zip_file" value="sacuri_dir_root.zip"  ftype="zip" />
            <output name="log">
                <assert_contents>
                    <has_text text="object with 4 samples" />
                    <has_text text="Time range: 0.2-1140.1 seconds (0-19 minutes)" />
                    <has_text text="Mass range: 50.0021-999.9863 m/z" />
                    <has_text text="Peaks: 199718 (about 49930 per sample)" />
                    <has_text text="Peak Groups: 48958" />
                    <has_text text="Sample classes: bio, blank" />
                </assert_contents>
            </output>
        </test>-->
        <test>
            <param name="image" value="faahKO.xset.group.retcor.group.RData"/>
            <param name="method" value="chrom"/>
            <conditional name="peaklist">
                <param name="convertRTMinute" value="false" />
                <param name="peaklistBool" value="true" />
                <param name="numDigitsMZ" value="4" />
                <param name="numDigitsRT" value="1" />
            </conditional>
            <param name="zipfile_load_conditional|zipfile_load_select" value="yes" />
            <param name="zipfile_load_conditional|zip_file" value="faahKO_reduce.zip"  ftype="zip" />
            <output name="log">
                <assert_contents>
                    <has_text text="object with 4 samples" />
                    <has_text text="Time range: 2506-4484 seconds (41.8-74.7 minutes)" />
                    <has_text text="Mass range: 200.1-600 m/z" />
                    <has_text text="Peaks: 32720 (about 8180 per sample)" />
                    <has_text text="Peak Groups: 8157" />
                    <has_text text="Sample classes: KO, WT" />
                </assert_contents>
            </output>
            <output name="variableMetadata" file="faahKO.xset.group.retcor.group.fillPeaks.variableMetadata.tsv" />
            <output name="dataMatrix" file="faahKO.xset.group.retcor.group.fillPeaks.dataMatrix.tsv" />
        </test>
    </tests>

    <help><![CDATA[

@HELP_AUTHORS@

==============
Xcms.fillPeaks
==============

-----------
Description
-----------

**Integrate areas of missing peaks**
For each sample, identify peak groups where that sample is not
represented. For each of those peak groups, integrate the signal
in the region of that peak group and create a new peak.

According to the type of raw-data there are 2
different methods available. for filling gcms/lcms data the method
"chrom" integrates raw-data in the chromatographic domain, whereas
"MSW" is used for peaklists without retention-time information
like those from direct-infusion spectra.



-----------------
Workflow position
-----------------


**Upstream tools**

========================= ================= ================== ==========
Name                      output file       format             parameter
========================= ================= ================== ==========
xcms.group                xset.group.RData  rdata.xcms.group   RData file
========================= ================= ================== ==========


**Downstream tools**

+---------------------------+------------------+-----------------------+
| Name                      | Output file      | Format                |
+===========================+==================+=======================+
|CAMERA.annotate            | xset.retcor.RData| rdata.xcms.fillpeaks  |
+---------------------------+------------------+-----------------------+
|xcms.summary               | xset.retcor.RData| rdata.xcms.fillpeaks  |
+---------------------------+------------------+-----------------------+

The output file **xset.fillpeaks** is a RData file. You can continue your analysis using it in **CAMERA.annotate** or **xcms.summary** tool as a following step of your workflow.


**General schema of the metabolomic workflow**

.. image:: xcms_fillpeaks_workflow.png



-----------
Input files
-----------

+---------------------------+-----------------------+
| Parameter : num + label   |   Format              |
+===========================+=======================+
| 1 : RData file            |   rdata.xcms.group    |
+---------------------------+-----------------------+


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


Method
------

**chrom**

    | This method produces intensity values for those missing samples by integrating raw data in peak group region. In a given group, the start and ending retention time points for integration are defined by the median start and end points of the other detected peaks. The start and end m/z values are similarly determined. Intensities can be still be zero, which is a rather unusual intensity for a peak.  This is the case if e.g. the raw data was threshholded, and the integration area contains no actual raw intensities, or if one sample is miscalibrated, such the raw data points are (just) outside the integration area.
    | Importantly, if retention time correction data is available, the alignment information is used to more precisely integrate the propper region of the raw data. If the corrected retention time is beyond the end of the raw data, the value will be not-a-number (NaN).

**MSW**

    | "MSW" is used for peaklists without retention-time information like those from direct-infusion spectra.


Get a Peak List
---------------

If 'true', the module generates two additional files corresponding to the peak list:
- the variable metadata file (corresponding to information about extracted ions such as mass or retention time)
- the data matrix (corresponding to related intensities)

**decimal places for [mass or retention time] values in identifiers**

    | Ions' identifiers are constructed as MxxxTyyy where 'xxx' is the ion median mass and 'yyy' the ion median retention time.
    | Two parameters are used to adjust the number of decimal places wanted in identifiers for mass and retention time respectively.
    | Theses parameters do not affect decimal places in columns other than the identifier one.

**Reported intensity values**

    | This parameter determines which values should be reported as intensities in the dataMatrix table; it correspond to xcms 'intval' parameter:
    | - into: integrated area of original (raw) peak
    | - maxo: maximum intensity of original (raw) peak
    | - intb: baseline corrected integrated peak area (only available if peak detection was done by ‘findPeaks.centWave’)

------------
Output files
------------

xset.fillPeaks.RData : rdata.xcms.fillpeaks format

    | Rdata file that will be used in the **CAMERA.annotate** or **xcms.summary** step of the workflow.

xset.variableMetadata.tsv : tabular format

    | Table containing information about ions; can be used as one input of **Quality_Metrics** or **Generic_filter* modules.

xset.dataMatrix.tsv : tabular format

    | Table containing ions' intensities; can be used as one input of **Quality_Metrics** or **Generic_filter* modules.

------

.. class:: infomark

The output file is a xset.fillPeaks.RData file. You can continue your analysis using it in **CAMERA.annotate** or **xcms.summary** tool.


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

---------------
Working example
---------------

Input files
-----------

    | RData file -> **xset.retcor.RData**

Parameters
----------

    | method -> **chrom**
    | Get a Peak List -> **false**


Output files
------------

    | **xset.fillPeaks.RData: RData file**


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

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

**Version 2.0.8 - 22/12/2016**

- IMPROVEMENT: Add an option to export the peak list at this step without having to wait for CAMERA.annotate

**Version 2.0.7 - 06/07/2016**

- UPGRADE: upgrate the xcms version from 1.44.0 to 1.46.0

**Version 2.0.6 - 04/04/2016**

- TEST: refactoring to pass planemo test using conda dependencies


**Version 2.0.5 - 10/02/2016**

- BUGFIX: better management of errors. Datasets remained green although the process failed

- UPDATE: refactoring of internal management of inputs/outputs

- UPDATE: refactoring to feed the new report tool


**Version 2.0.2 - 02/06/2015**

- IMPROVEMENT: new datatype/dataset formats (rdata.xcms.raw, rdata.xcms.group, rdata.xcms.retcor ...) will facilitate the sequence of tools and so avoid incompatibility errors.

- IMPROVEMENT: parameter labels have changed to facilitate their reading.


    ]]></help>


    <expand macro="citation" />


</tool>