Repository 'mzmine_batch'
hg clone https://toolshed.g2.bx.psu.edu/repos/iuc/mzmine_batch

Changeset 0:02e802817d48 (2023-10-21)
Next changeset 1:90d60c9da21e (2023-11-10)
Commit message:
planemo upload for repository https://github.com/workflow4metabolomics/tools-metabolomics/blob/master/tools/mzmine/ commit dbad3fc09e109598befcec3a9a000496f4e0c9dd
added:
mzmine_batch.xml
test-data/test_small.xml
b
diff -r 000000000000 -r 02e802817d48 mzmine_batch.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mzmine_batch.xml Sat Oct 21 10:29:31 2023 +0000
[
@@ -0,0 +1,129 @@
+<tool id="mzmine_batch" name="MZMine batch" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="21.05">
+    <macros>
+        <token name="@TOOL_VERSION@">3.6.0</token>
+        <token name="@VERSION_SUFFIX@">0</token>
+    </macros>
+    <xrefs>
+        <xref type="bio.tools">mzmine</xref>
+    </xrefs>
+    <requirements>
+        <requirement type="package" version="@TOOL_VERSION@">mzmine</requirement>
+    </requirements>
+    <command detect_errors="exit_code"><![CDATA[
+    #import re
+    
+    mkdir -p input &&
+    #for $i in $input
+        #set escaped_i = re.sub('[^\s\w\-\.]', '_', str($i.element_identifier))
+        ln -s '$i' 'input/$escaped_i'.$i.ext &&
+        echo 'input/$escaped_i'.$i.ext >> input.txt &&
+    #end for
+
+    #if $libraries
+        mkdir -p libraries &&
+        #for $l in $libraries
+            #set escaped_l = re.sub('[^\s\w\-\.]', '_', str($l.element_identifier))
+            ln -s '$l' 'libraries/$escaped_l'.$l.ext &&
+            echo 'libraries/$escaped_l'.$l.ext >> libraries.txt &&
+        #end for
+    #end if
+    ## modify output paths in batch XML to relative path
+    ## - any output will be redirected to ./output/BASENAME
+    mkdir -p output/ &&
+    
+    sed -e 's@<current_file>.*[\\\/]\([^\\\/]\+\)</current_file>@<current_file>./output/\1</current_file>@' '$batch' > batch.xml &&
+
+    mzmine
+        --batch 'batch.xml'
+        --input 'input.txt'
+        #if $libraries
+            --libraries 'libraries.txt'
+        #end if
+        --memory "\${MZMINE_MEMORY:-none}"
+        --temp "\${TMPDIR:-\$_GALAXY_JOB_TMP_DIR}"
+        --threads \${GALAXY_SLOTS:-1}
+## ignored parameters
+##  -p,--pref <arg>        preferences file
+## -r,--running          keep MZmine running in headless mode
+## -tdfpseudoprofile     Loads pseudo-profile frame spectra for tdf files
+##                       instead of centroided spectra.
+## -tsfprofile           Loads profile spectra from .tsf data instead of
+##                       centroid spectra.
+    ]]></command>
+    <inputs>
+        <param argument="--batch" type="data" format="xml" label="MZMine batch file" help="XML batch file (ideally created with version @TOOL_VERSION@)"/>
+        <param argument="--input" type="data" format="mzml,mzxml,csv" multiple="true" label="Spectra (mzml)"/>
+        <param argument="--libraries" type="data" format="json,mgf,msp" multiple="true" optional="true" label="Spectral libraries"/>
+    </inputs>
+    <outputs>
+        <collection name="output" type="list">
+            <discover_datasets pattern="__name_and_ext__" directory="output"/>
+        </collection>
+    </outputs>
+    <tests>
+        <test>
+            <param name="batch" value="test_small.xml" ftype="xml"/>
+            <param name="input" value="DOM_a.mzML,DOM_b.mzXML"/>
+            <param name="libraries" value="GNPS-FAULKNERLEGACY.json" ftype="json"/>
+            <!-- <param name="input" location="https://raw.githubusercontent.com/mzmine/mzmine3/master/src/test/resources/rawdatafiles/DOM_a.mzML"/> -->
+            <!-- <param name="input" location="https://raw.githubusercontent.com/mzmine/mzmine3/master/src/test/resources/rawdatafiles/DOM_a.mzML,https://raw.githubusercontent.com/mzmine/mzmine3/master/src/test/resources/rawdatafiles/DOM_b.mzXML"/>
+            <param name="libraries" location="https://external.gnps2.org/gnpslibrary/GNPS-FAULKNERLEGACY.json" ftype="json"/> -->
+            <output_collection name="output" count="3" type="list">
+                <element name="test2_iimn_gnps" ftype="mgf">
+                    <assert_contents>
+                        <has_n_lines n="2103"/>
+                        <has_text text="BEGIN IONS"/>
+                    </assert_contents>
+                </element>
+                <element name="test2_iimn_gnps_quant" ftype="csv">
+                    <assert_contents>
+                        <has_n_lines n="34"/>
+                        <has_n_columns sep="," n="16"/>
+                    </assert_contents>
+                </element>
+                <element name="test2_sirius" ftype="mgf">
+                    <assert_contents>
+                        <has_n_lines n="54406"/>
+                        <has_text text="BEGIN IONS"/>
+                    </assert_contents>
+                </element>
+            </output_collection>
+        </test>
+    </tests>
+    <help><![CDATA[
+        MZmine 3 is an open-source software for mass-spectrometry data processing, with the main focus on LC-MS data.
+
+        This Galaxy tool allows to execute MZmine batches. That is you can create MZmine batch (XML) files thatdescribe the parameters of a MZmine analysis using the MZmine GUI
+        and use this to execute such an analysis on the Galaxy platform. 
+
+        **Inputs**
+
+        - MZMine batch file in XML format. This file describes the parameters for a MZmine batch analysis. It can be generated with the MZmine GUI (preferentiall with a matching version, i.e. @TOOL_VERSION@).
+        - Input spectra in mzml format
+        - Spectra libraries in mgf or json format (optional)
+
+        **Outputs**
+
+        Galaxy will store all outputs of MZMine in a single collection. When specifying the batch XML
+        file one should pay attention to use file extensions that correspond to Galaxy datatypes
+        (which allows Galaxy to easily autodetect the datatype). The following extensions can be used
+        (lower/upper case does not matter):
+
+        - mzml
+        - netcdf
+        - mgf
+        - txt
+        - msp
+        - csv
+        - mztab
+        - mztab2 (this is mzTab-m)
+        - json
+        - tabular (Galaxy's tsv implementation)
+
+        Specific datasets from the collection can be accessed using the *Extract dataset* tool, e.g.
+        for further processing in Galaxy.
+    ]]></help>
+    <citations>
+        <citation type="doi">10.1038/s41587-023-01690-2</citation>
+    </citations>
+</tool>
\ No newline at end of file
b
diff -r 000000000000 -r 02e802817d48 test-data/test_small.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test_small.xml Sat Oct 21 10:29:31 2023 +0000
b
b'@@ -0,0 +1,637 @@\n+<?xml version="1.0" encoding="UTF-8"?><batch mzmine_version="3.5.5">\r\n+    <batchstep method="io.github.mzmine.modules.io.import_rawdata_all.AllSpectralDataImportModule" parameter_version="1">\r\n+        <parameter name="File names">\r\n+            <file>/tmp/mzminetest/DOM_a.mzML</file>\r\n+            <file>/tmp/mzminetest/DOM_b.mzXML</file>\r\n+        </parameter>\r\n+        <parameter name="Advanced import" selected="false">\r\n+            <parameter name="Scan filters" selected="false">\r\n+                <parameter name="Scan number"/>\r\n+                <parameter name="Base Filtering Integer"/>\r\n+                <parameter name="Retention time"/>\r\n+                <parameter name="Mobility"/>\r\n+                <parameter name="MS level filter" selected="All MS levels">1</parameter>\r\n+                <parameter name="Scan definition"/>\r\n+                <parameter name="Polarity">Any</parameter>\r\n+                <parameter name="Spectrum type">ANY</parameter>\r\n+            </parameter>\r\n+            <parameter name="Crop MS1 m/z" selected="false"/>\r\n+            <parameter name="MS1 detector (Advanced)" selected="false" selected_item="Centroid">\r\n+                <module name="Factor of lowest signal">\r\n+                    <parameter name="Noise factor">3.0</parameter>\r\n+                </module>\r\n+                <module name="Centroid">\r\n+                    <parameter name="Noise level">3000.0</parameter>\r\n+                    <parameter name="Detect isotope signals below noise level" selected="false">\r\n+                        <parameter name="Chemical elements">H,C,N,O,S</parameter>\r\n+                        <parameter name="m/z tolerance">\r\n+                            <absolutetolerance>0.0015</absolutetolerance>\r\n+                            <ppmtolerance>3.0</ppmtolerance>\r\n+                        </parameter>\r\n+                        <parameter name="Maximum charge of isotope m/z">2</parameter>\r\n+                    </parameter>\r\n+                </module>\r\n+                <module name="Exact mass">\r\n+                    <parameter name="Noise level">1000.0</parameter>\r\n+                    <parameter name="Detect isotope signals below noise level" selected="false">\r\n+                        <parameter name="Chemical elements">H,C,N,O,S</parameter>\r\n+                        <parameter name="m/z tolerance">\r\n+                            <absolutetolerance>0.0015</absolutetolerance>\r\n+                            <ppmtolerance>3.0</ppmtolerance>\r\n+                        </parameter>\r\n+                        <parameter name="Maximum charge of isotope m/z">2</parameter>\r\n+                    </parameter>\r\n+                </module>\r\n+                <module name="Local maxima">\r\n+                    <parameter name="Noise level"/>\r\n+                </module>\r\n+                <module name="Recursive threshold">\r\n+                    <parameter name="Noise level"/>\r\n+                    <parameter name="Min m/z peak width"/>\r\n+                    <parameter name="Max m/z peak width"/>\r\n+                </module>\r\n+                <module name="Wavelet transform">\r\n+                    <parameter name="Noise level"/>\r\n+                    <parameter name="Scale level"/>\r\n+                    <parameter name="Wavelet window size (%)"/>\r\n+                </module>\r\n+                <module name="Auto">\r\n+                    <parameter name="Noise level">1000.0</parameter>\r\n+                    <parameter name="Detect isotope signals below noise level" selected="false">\r\n+                        <parameter name="Chemical elements">H,C,N,O,S</parameter>\r\n+                        <parameter name="m/z tolerance">\r\n+                            <absolutetolerance>0.0015</absolutetolerance>\r\n+                            <ppmtolerance>3.0</ppmtolerance>\r\n+                        </parameter>\r\n+                        <parameter name="Maximum charge of isotope m/z">2</parameter>\r\n+                    </paramet'..b'         <parameter name="Maximum charge">1</parameter>\r\n+            </parameter>\r\n+            <parameter name="Min matched isotope signals" selected="false">3</parameter>\r\n+            <parameter name="Crop spectra to m/z overlap">false</parameter>\r\n+        </parameter>\r\n+    </batchstep>\r\n+    <batchstep method="io.github.mzmine.modules.io.export_features_gnps.fbmn.GnpsFbmnExportAndSubmitModule" parameter_version="2">\r\n+        <parameter name="Feature lists" type="BATCH_LAST_FEATURELISTS"/>\r\n+        <parameter name="Filename">\r\n+\t\t<current_file>/tmp/mzminetest/test2_iimn_gnps</current_file>\r\n+        </parameter>\r\n+        <parameter name="Merge MS/MS (experimental)" selected="false">\r\n+            <parameter name="Select spectra to merge">across samples</parameter>\r\n+            <parameter name="m/z merge mode">weighted average (remove outliers)</parameter>\r\n+            <parameter name="intensity merge mode">sum intensities</parameter>\r\n+            <parameter name="Expected mass deviation">\r\n+                <absolutetolerance>0.001</absolutetolerance>\r\n+                <ppmtolerance>5.0</ppmtolerance>\r\n+            </parameter>\r\n+            <parameter name="Cosine threshold (%)">0.7</parameter>\r\n+            <parameter name="Signal count threshold (%)">0.2</parameter>\r\n+            <parameter name="Isolation window offset (m/z)">0.0</parameter>\r\n+            <parameter name="Isolation window width (m/z)">3.0</parameter>\r\n+        </parameter>\r\n+        <parameter name="Filter rows">MS2 OR ION IDENTITY</parameter>\r\n+        <parameter name="Feature intensity">Area</parameter>\r\n+        <parameter name="CSV export">SIMPLE</parameter>\r\n+        <parameter name="Submit to GNPS" selected="false">\r\n+            <parameter name="Meta data file" selected="false"/>\r\n+            <parameter name="Export ion identity networks">true</parameter>\r\n+            <parameter name="Presets">HIGHRES</parameter>\r\n+            <parameter name="Job title"/>\r\n+            <parameter name="Email"/>\r\n+            <parameter name="Username"/>\r\n+            <parameter name="Password"/>\r\n+            <parameter name="Open website">true</parameter>\r\n+        </parameter>\r\n+        <parameter name="Open folder">false</parameter>\r\n+    </batchstep>\r\n+    <batchstep method="io.github.mzmine.modules.io.export_features_sirius.SiriusExportModule" parameter_version="1">\r\n+        <parameter name="Feature lists" type="BATCH_LAST_FEATURELISTS"/>\r\n+        <parameter name="Filename">\r\n+            <current_file>D:\\tmp\\export_mzmine3\\test2_sirius.MGF</current_file>\r\n+            <last_file>D:\\tmp\\new_sirius\\merged_new_sirius.mgf</last_file>\r\n+            <last_file>D:\\tmp\\test\\merged_new_sirius.mgf</last_file>\r\n+        </parameter>\r\n+        <parameter name="Merge MS/MS" selected="false">\r\n+            <parameter name="Select spectra to merge">across samples</parameter>\r\n+            <parameter name="m/z merge mode">weighted average (remove outliers)</parameter>\r\n+            <parameter name="intensity merge mode">sum intensities</parameter>\r\n+            <parameter name="Expected mass deviation">\r\n+                <absolutetolerance>0.001</absolutetolerance>\r\n+                <ppmtolerance>5.0</ppmtolerance>\r\n+            </parameter>\r\n+            <parameter name="Cosine threshold (%)">0.7</parameter>\r\n+            <parameter name="Signal count threshold (%)">0.2</parameter>\r\n+            <parameter name="Isolation window offset (m/z)">0.0</parameter>\r\n+            <parameter name="Isolation window width (m/z)">3.0</parameter>\r\n+        </parameter>\r\n+        <parameter name="m/z tolerance">\r\n+            <absolutetolerance>0.002</absolutetolerance>\r\n+            <ppmtolerance>5.0</ppmtolerance>\r\n+        </parameter>\r\n+        <parameter name="Only rows with annotation">false</parameter>\r\n+        <parameter name="Exclude multiple charge">false</parameter>\r\n+        <parameter name="Exclude multimers">false</parameter>\r\n+    </batchstep>\r\n+</batch>\r\n'