view matchms_formatter.xml @ 1:28a252f3b682 draft

planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit ca44513d50b29a4706e2a2db96c23ef6688b7c2d
author recetox
date Fri, 22 Jul 2022 16:49:20 +0000
parents 60f34912b3de
children 574c6331e9db
line wrap: on
line source

<tool id="matchms_formatter" name="matchms output formatter" version="0.1.3" python_template_version="3.5">
    <description>reformat output tables of matchms</description>

    <macros>
        <import>macros.xml</import>
    </macros>
    <expand macro="creator"/>

    <requirements>
        <requirement type="package" version="1.1.4">pandas</requirement>
        <requirement type="package" version="8.0.1">click</requirement>
    </requirements>

    <command detect_errors="aggressive"><![CDATA[
        sh ${matchms_formatter_cli}
    ]]></command>

    <configfiles>
        <configfile name="matchms_formatter_cli">
            python3 ${__tool_directory__}/formatter.py \
            --sf "$scores" \
            --mf "$matches" \
            --o "$output" \
            $method.selection \
            #if $method.selection == "get-thresholded-data"
            --st $method.scores_threshold \
            --mt $method.matches_threshold
            #else
            --k $method.k
            #end if
        </configfile>
    </configfiles>

    <inputs>
        <param label="Scores Table" name="scores" type="data" format="csv,tabular,tsv" help="Scores output table." />
        <param label="Matches Table" name="matches" type="data" format="csv,tabular,tsv" help="Scores output table." />


        <conditional name="method">
            <param name="selection" type="select" label="Formatting method">
                <option value="get-thresholded-data" selected="true">Thresholding</option>
                <option value="get-top-k-data">Top K Matches</option>
            </param>
            <when value="get-thresholded-data">
                <param label="Scores Threshold" name="scores_threshold" type="float" value="0.6" min="0.0" max="1.0"
                       help="Threshold for matching score."/>
                <param label="Matches Threshold" name="matches_threshold" type="integer" value="3" min="0"
                       help="Threshold for number of matches ions."/>
            </when>
            <when value="get-top-k-data">
                <param label="Top K" name="k" type="integer" value="5" help="K for top k match selection."/>
            </when>
        </conditional>

    </inputs>
    <outputs>
        <data label="${tool.name} (${method.selection}) on ${on_string}" name="output" format_source="scores"/>
    </outputs>

    <tests>
        <test>
            <param name="scores" value="scores_test2_out.tsv" ftype="tsv"/>
            <param name="matches" value="matches_test2_out.tsv" ftype="tsv"/>
            <param name="selection" value="get-thresholded-data"/>
            <param name="scores_threshold" value="0.4"/>
            <param name="matches_threshold" value="2"/>
            <output name="output" file="formatter/test2_threshold_formatting.tsv" ftype="tsv"
                    checksum="md5$8929cdac47252da638f066261ffc16b7"/>
        </test>
        <test>
            <param name="scores" value="scores_test2_out.tsv" ftype="tsv"/>
            <param name="matches" value="matches_test2_out.tsv" ftype="tsv"/>
            <param name="selection" value="get-top-k-data"/>
            <param name="k" value="3"/>
            <output name="output" file="formatter/test2_topk_formatting.tsv" ftype="tsv"
                    checksum="md5$a9186721aa2df2f9dbdef5021aa6bc26"/>
        </test>
    </tests>

    <help><![CDATA[
    Usage
        This tool creates user friendly tables from the data matrices produces by matchms.
        The tool can be operated on two modes based on (i) thresholds or (ii) top k matches.

    Input Table Format
        The tool expects two data matrices with the format as depicted below.
        The tool assumes the reference compound labels as row labels and the query labels as column labels (as naturally outputted by matchms).

        +----------+------+------+-----+
        |          | C001 | C002 | ... |
        +==========+======+======+=====+
        | Perylene | 0.1  | 0.0  | ... |
        +----------+------+------+-----+
        | Glycine  | 0.5  | 0.34 | ... |
        +----------+------+------+-----+
        |   ...    | ...  | ...  | ... |
        +----------+------+------+-----+

    Output Table Format
        +----------+-----------+---------+--------+
        | query    | reference | matches | scores |
        +==========+===========+=========+========+
        | C001     | Glycine   |      6  | 0.5    |
        +----------+-----------+---------+--------+
        | C002     | Glycine   |     3   | 0.34   |
        +----------+-----------+---------+--------+
        |   ...    | ...       | ...     | ...    |
        +----------+-----------+---------+--------+

    ]]></help>
</tool>