view matchms_metadata_export.xml @ 21:51205379251d draft default tip

planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit bd80a813fb2f01f22eed0c874f8911ce4d00762a
author recetox
date Mon, 30 Jun 2025 12:58:21 +0000
parents e337075d0aaa
children
line wrap: on
line source

<tool id="matchms_metadata_export" name="matchms metadata export" version="@TOOL_VERSION@+galaxy0" profile="23.0" license="MIT">
    <description>extract all metadata from mass spectra file to tabular format</description>
    <macros>
        <import>macros.xml</import>
        <import>help.xml</import>
    </macros>
    <expand macro="creator"/>
    <expand macro="bio.tools"/>
    
    <requirements>
        <requirement type="package" version="@TOOL_VERSION@">matchms</requirement>
    </requirements>

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

<configfiles>
<configfile name="matchms_python_cli"><![CDATA[
import matchms

from matchms.importing import load_from_msp, load_from_mgf
from matchms.exporting.metadata_export import export_metadata_as_csv, export_metadata_as_json


if "$harmonize_metadata" == "False":
    matchms.Metadata.set_key_replacements({})

spectra_list = list(load_from_${input_file.ext}("${input_file}", $harmonize_metadata))
print(f"Loaded {len(spectra_list)} spectra from ${input_file}.")

#if $out_format == 'tabular':
export_metadata_as_csv(spectra_list, "${output_file}", delimiter="\t")
#else if $out_format == 'csv':
export_metadata_as_csv(spectra_list, "${output_file}", delimiter=",")
#else if $out_format == 'json':
export_metadata_as_json(spectra_list, "${output_file}")
#else
print(f"Unknown output format: $out_format")
#end if
]]></configfile>
</configfiles>

    <inputs>
        <param label="Spectra file" name="input_file" type="data" format="msp,mgf" help="Mass spectral library file."/>
        <param label="Harmonize metadata" name="harmonize_metadata" type="boolean" truevalue="True" falsevalue="False"
               checked="false" help="Apply harmonization process on the metadata keys (e.g. parse numeric values, derive precursor mass)."/>
        <param name="out_format" type="select" label="Output format" display="radio" help="Output format for the metadata file">
            <option value="json">json</option>
            <option value="csv">csv</option>
            <option value="tabular" selected="true">tabular/tsv</option>
        </param>
    </inputs>

    <outputs>
        <data label="matchms extract metadata on ${on_string}" name="output_file" format="tabular">
            <change_format>
                <when input="out_format" value="json" format="json" />
                <when input="out_format" value="csv" format="csv" />
            </change_format>
        </data>
    </outputs>
    <tests>
        <test>
            <param name="input_file" value="convert/mgf_out.mgf" ftype="mgf"/>
            <param name="harmonize_metadata" value="True"/>
            <output name="output_file" file="convert/metadata.tsv" ftype="tabular" compare="sim_size" delta="0"/>
        </test>

        <test>
            <param name="input_file" value="similarity/RECETOX_Exposome_pesticides_HR_MS_20220323.msp" ftype="msp"/>
            <param name="harmonize_metadata" value="True"/>
            <param name="out_format" value="csv"/>
            <output name="output_file" file="convert/metadata.csv" ftype="csv" compare="sim_size" delta="0"/>
        </test>

        <test>
            <param name="input_file" value="similarity/RECETOX_Exposome_pesticides_HR_MS_20220323.msp" ftype="msp"/>
            <param name="harmonize_metadata" value="False"/>
            <param name="out_format" value="json"/>
            <output name="output_file" file="convert/metadata.json" ftype="json" compare="sim_size" delta="0"/>
        </test>
    </tests>

    <help>
        Documentation
            Mass spectral libraries are often stored in various formats, such as `msp`, `mgf` or `json`.
            This tool can be used to export the metadata accompanying the actual spectral to a tabular file,
            creating a column for each attribute and a row for each spectrum.
            All keys which are present in at least one spectrum are contained in the output.
        
        @HELP_matchms@
    </help>

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