view waveica.xml @ 2:d08deef1eb44 draft

"planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/waveica commit e33ef984e78721ed37d825c6672795a539a461e1"
author recetox
date Fri, 12 Nov 2021 09:14:04 +0000
parents 2bcfd5b450bb
children e3726251a055
line wrap: on
line source

<tool id="waveica" name="WaveICA" version="0.1.0+galaxy2" python_template_version="3.5">

    <description>removal of batch effects for untargeted metabolomics data</description>
    
    <requirements>
        <container type="docker">recetox/waveica:0.1.0-recetox0</container>
    </requirements>

    <command detect_errors="aggressive"><![CDATA[
        Rscript
            -e 'source("${__tool_directory__}/waveica_wrapper.R")'

            -e 'normalized_data <- waveica(
                data = "$data",
                wavelet_filter = "$wf.wavelet_filter",
                wavelet_length = "$wf.wavelet_length",
                k = $k,
                t = $t,
                t2 = $t2,
                alpha = $alpha,
                exclude_blanks = $exclude_blanks
            )'

            -e 'store_data(normalized_data,"$normalized_data")'
    ]]></command>

    <inputs>
        <param type="data" name="data" label="Feature table" format="csv" help=""/>
        <conditional name="wf">
            <param type="select" name="wavelet_filter" label="Wavelet transform filter" help="wavelet function and filter length [1] (see footnotes for more details)">
                <option value="d" selected="True">Daubechies</option>
                <option value="la" >Least Asymetric</option>
                <option value="bl" >Best Localized</option>
                <option value="c" >Coiflet</option>
            </param>
            <when value="d">
                <param name="wavelet_length" type="select" label="filter length">
                    <option value="2" selected="True">2</option>
                    <option value="4">4</option>
                    <option value="6">6</option>
                    <option value="8">8</option>
                    <option value="10">10</option>
                    <option value="12">12</option>
                    <option value="14">14</option>
                    <option value="16">16</option>
                    <option value="18">18</option>
                    <option value="20">20</option>
                </param>
            </when>
            <when value="la">
                <param name="wavelet_length" type="select" label="filter length">
                    <option value="8">8</option>
                    <option value="10">10</option>
                    <option value="12">12</option>
                    <option value="14">14</option>
                    <option value="16">16</option>
                    <option value="18">18</option>
                    <option value="20">20</option>
                </param>
            </when>
            <when value="bl">
                <param name="wavelet_length" type="select" label="filter length">
                    <option value="14">14</option>
                    <option value="18">18</option>
                    <option value="20">20</option>
                </param>
            </when>
            <when value="c">
                <param name="wavelet_length" type="select" label="filter length">
                    <option value="6">6</option>
                    <option value="12">12</option>
                    <option value="18">18</option>
                    <option value="24">24</option>
                    <option value="30">30</option>
                </param>
            </when>
        </conditional>
        <param type="integer" value="20" name="k" label="Number of components to decompose" help="maximal component that ICA decomposes"/>
        <param type="float" value="0.05" name="t" label="Batch-association threshold" help="threshold to consider a component associate with the batch,
 should be between 0 and 1"/>
        <param type="float" value="0.05" name="t2" label="Group-association threshold" help="threshold to consider a component associate with the group,
 should be between 0 and 1"/>
        <param type="float" value="0" name="alpha" label="Alpha" help="trade-off value between the independence of samples (temporal ICA) and variables (spatial ICA), should be between 0 and 1"/>
        <param name="exclude_blanks" type="boolean" checked="false" truevalue="TRUE" falsevalue="FALSE" label="Remove blanks" help="Excludes blank samples from the output" />
    </inputs>

    <outputs>
        <data name="normalized_data" format="tsv" />
    </outputs>

    <tests>
        <test>
            <param name="data" value="input_data.csv" ftype="csv" />
            <param name="wavelet_filter" value="d" />
            <param name="filter_length" value="2" />
            <param name="k" value="20" />
            <param name="t" value="0.05" />
            <param name="t2" value="0.05" />
            <param name="alpha" value="0" />
            <output name="normalized_data" file="normalized_data.tsv" /> 
        </test>
        <test expect_failure="true">
            <param name="data" value="na_data.csv" ftype="csv" />
        </test>
        <test expect_failure="true">
            <param name="data" value="incomplete_metadata_data.csv" ftype="csv" />
        </test>
    </tests>

    <help><![CDATA[
        **Description**

        Removal of batch effects for large-scale untargeted metabolomics data based on wavelet analysis. The WaveICA R package provides a new algorithm to removing batch effects for metabolomics data.
        
        The input is an intensity-by-feature table with metadata in the following format: 

        +---------------+--------+------------+----------------+-------+------------+--------------+-------------+-------------+-----+
        | sampleName    | class  | sampleType | injectionOrder | batch | M85T34     | M86T41       | M86T518     | M86T539     | ... |
        +===============+========+============+================+=======+============+==============+=============+=============+=====+
        | VT_160120_002 | sample | sample     | 1              | 1     | 228520.064 | 35646729.215 | 2386896.979 | 1026645.836 | ... |
        +---------------+--------+------------+----------------+-------+------------+--------------+-------------+-------------+-----+
        | QC1           | sample | QC         | 2              | 1     | 90217.384  | 35735702.457 | 2456290.696 | 1089246.460 | ... |
        +---------------+--------+------------+----------------+-------+------------+--------------+-------------+-------------+-----+
        | ...           | ...    | ...        | ...            | ...   | ...        | ...          | ...         | ...         | ... |
        +---------------+--------+------------+----------------+-------+------------+--------------+-------------+-------------+-----+


        + the input table must not contain missing values. Missing intensities must be filled with 0.
        + **sampleType** column accepts three possible values: [QC, sample, blank] (case insensitive).
        + **class** column is used to denote a biological group of a sample (e.g., positive/negative species). The column accepts any values.
        + the **output** is the same table with corrected feature intensities.

        .. rubric:: **Footnotes**
        .. [1] for details on wavelet filter parameters refer to R `wavelets::wt.filter <https://www.rdocumentation.org/packages/wavelets/versions/0.3-0.2/topics/wt.filter>`_;

    ]]></help>

    <citations>
        <citation type="doi">10.1016/j.aca.2019.02.010</citation>
    </citations>

</tool>