diff matchms_metadata_export.xml @ 21:51205379251d draft

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 diff
--- a/matchms_metadata_export.xml	Thu Nov 14 15:11:25 2024 +0000
+++ b/matchms_metadata_export.xml	Mon Jun 30 12:58:21 2025 +0000
@@ -1,4 +1,4 @@
-<tool id="matchms_metadata_export" name="matchms metadata export" version="@TOOL_VERSION@+galaxy0" profile="21.09">
+<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>
@@ -12,50 +12,73 @@
     </requirements>
 
     <command detect_errors='aggressive'><![CDATA[
-        python ${matchms_python_cli}
+        python3 '${matchms_python_cli}'
     ]]></command>
 
 <configfiles>
-<configfile name="matchms_python_cli">
+<configfile name="matchms_python_cli"><![CDATA[
 import matchms
-import pandas as pd
+
 from matchms.importing import load_from_msp, load_from_mgf
-from matchms.exporting.metadata_export import export_metadata_as_csv
+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))
-
-export_metadata_as_csv(spectra_list, "${output_file}")
+print(f"Loaded {len(spectra_list)} spectra from ${input_file}.")
 
-data = pd.read_csv("${output_file}")
-
-data.to_csv("${output_file}", sep='\t', index=False)
-</configfile>
+#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="tsv"/>
+        <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="tsv" compare="sim_size" delta="0"/>
+            <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"/>
-            <output name="output_file" file="convert/metadata.tsv" ftype="tsv" compare="sim_size" delta="0"/>
+            <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>