view matchms_convert.xml @ 3:b9cc12600553 draft

planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
author recetox
date Tue, 27 Jun 2023 14:27:37 +0000
parents 49ef4455b0c2
children d4609fbf8ca3
line wrap: on
line source

<tool id="matchms_convert" name="matchms convert" version="@TOOL_VERSION@+galaxy0" profile="21.05">
    <description>convert between mass spectral library formats (.mgf/.msp/.json) using matchms</description>
    
    <macros>
        <import>macros.xml</import>
        <import>help.xml</import>
    </macros>

    <expand macro="creator"/>

    <edam_operations>
        <edam_operation>operation_3434</edam_operation>
    </edam_operations>
    <expand macro="bio.tools"/>

    <requirements>
        <requirement type="package" version="@TOOL_VERSION@">matchms</requirement>
    </requirements>

    <command detect_errors='aggressive'><![CDATA[
        python ${matchms_python_cli}
    ]]></command>

<configfiles>
<configfile name="matchms_python_cli">
@init_logger@

from matchms.importing import load_from_msp, load_from_mgf, load_from_json
from matchms.exporting import save_as_msp, save_as_mgf, save_as_json
spectra = list(load_from_${spectral_library.ext}("${spectral_library}", ${harmonization_metadata}))
#if $output_file.output_format == "msp"
save_as_msp(spectra, "${converted_library}", write_peak_comments = ${output_file.export_peak_comments}, style = "${output_file.export_style}")
#else
save_as_${output_file.output_format}(spectra, "${converted_library}")
#end if
</configfile>
</configfiles>

    <inputs>
        <param label="Spectra file" name="spectral_library" type="data" format="msp,mgf,json"
            help="Mass spectral library file to convert." />

        <param label="Harmonization metadata" name="harmonization_metadata" type="boolean" truevalue="True" falsevalue="False"
            checked="true"
            help="Apply metadata harmonization, parsing certain keys required by additional filters or initializing other attributes. The default is True." />

        <conditional name="output_file">
            <param label="Spectral library format" name="output_format" type="select"
                help="Output format to convert the spectral library into.">
                <option value="msp" selected="true">msp</option>
                <option value="mgf">mgf</option>
                <option value="json">json</option>
            </param>
            <when value="msp">
                <param label="Export peak comments" name="export_peak_comments" type="boolean"
                    truevalue="True" falsevalue="False" checked="true"
                    help="Retain peak comments from individual peaks after the respective mz and intensity pairs when selected." />
                <param label="Export style" name="export_style" type="select"
                    help="Converts the keys to a specific style - see [1] for details.. One of ['matchms', 'massbank', 'nist', 'riken', 'gnps']. Default is 'matchms'.">
                    <option value="matchms" selected="true">matchms</option>
                    <option value="massbank">massbank</option>
                    <option value="nist">nist</option>
                    <option value="riken">riken</option>
                    <option value="gnps">gnps</option>
                </param>
            </when>
            <when value="mgf" />
            <when value="json" />
        </conditional>
    </inputs>

    <outputs>
        <data label="${tool.name} from ${spectral_library.ext} to ${output_file.output_format} on ${on_string}" name="converted_library" format="msp">
            <change_format>
                <when input="output_file.output_format" value="mgf" format="mgf" />
                <when input="output_file.output_format" value="json" format="json" />
            </change_format>
        </data>
    </outputs>

    <tests>
        <test>
            <param name="spectral_library" value="similarity/RECETOX_Exposome_pesticides_HR_MS_20220323.msp" ftype="msp"/>
            <param name="harmonization_metadata" value="False"/>
            <param name="output_format" value="mgf"/>
            <output name="converted_library" file="convert/mgf_out.mgf" ftype="mgf"/>
        </test>
        <test>
            <param name="spectral_library" value="similarity/RECETOX_Exposome_pesticides_HR_MS_20220323.msp" ftype="msp"/>
            <param name="harmonization_metadata" value="False"/>
            <param name="output_format" value="json"/>
            <output name="converted_library" file="convert/json_out.json" ftype="json"/>
        </test>
        <test>
            <param name="spectral_library" value="convert/mgf_out.mgf" ftype="mgf"/>
            <param name="harmonization_metadata" value="False"/>
            <param name="export_peak_comments" value="False"/>
            <param name="output_format" value="msp"/>
            <param name="export_style" value="matchms"/>
            <output name="converted_library" file="convert/msp_out.msp" ftype="msp"/>
        </test>
        <test>
            <param name="spectral_library" value="convert/mgf_out.mgf" ftype="mgf"/>
            <param name="harmonization_metadata" value="True"/>
            <param name="export_peak_comments" value="False"/>
            <param name="output_format" value="msp"/>
            <param name="export_style" value="matchms"/>
            <output name="converted_library" file="convert/harmonized_msp_out.msp" ftype="msp"/>
        </test>
        <test>
            <param name="spectral_library" value="convert/mgf_out.mgf" ftype="mgf"/>
            <param name="harmonization_metadata" value="True"/>
            <param name="export_peak_comments" value="True"/>
            <param name="output_format" value="msp"/>
            <param name="export_style" value="matchms"/>
            <output name="converted_library" file="convert/harmonized_msp_peakcomments_out.msp" ftype="msp"/>
        </test>
    </tests>


    <help><![CDATA[
        Description
            Mass spectral libraries are often stored in various formats, such as `msp`, `mgf` or `json`.
            This tool can be used to convert from one library format to another.
            Some of the metadata keywords might change during the conversion process, as they are harmonized internally with matchms.

            .. rubric:: **Footnotes**
            .. [1] Export styles - see this `table <https://github.com/matchms/matchms/blob/master/matchms/data/export_key_conversions.csv>`_ for supported key conversions and detailed description of the export styles.

            @HELP_matchms@
    ]]></help>


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