view AssayGeneratorMetabo.xml @ 6:f3ec820189ca draft default tip

planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
author galaxyp
date Fri, 14 Jun 2024 21:29:08 +0000
parents 83f5e5c1209c
children
line wrap: on
line source

<!--This is a configuration file for the integration of a tools into Galaxy (https://galaxyproject.org/). This file was automatically generated using CTDConverter.-->
<!--Proposed Tool Section: [Targeted Experiments and OpenSWATH]-->
<tool id="AssayGeneratorMetabo" name="AssayGeneratorMetabo" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="21.05">
  <description>Assay library generation from DDA data (Metabolomics)</description>
  <macros>
    <token name="@EXECUTABLE@">AssayGeneratorMetabo</token>
    <import>macros.xml</import>
  </macros>
  <expand macro="requirements"/>
  <expand macro="stdio"/>
  <command detect_errors="exit_code"><![CDATA[@QUOTE_FOO@
@EXT_FOO@
#import re

## Preprocessing
mkdir in_cond.in &&
#if $in_cond.in_select == "no"
mkdir ${' '.join(["'in_cond.in/%s'" % (i) for i, f in enumerate($in_cond.in) if f])} && 
${' '.join(["cp '%s' 'in_cond.in/%s/%s.%s' && " % (f, i, re.sub('[^\w\-_]', '_', f.element_identifier), $gxy2omsext(f.ext)) for i, f in enumerate($in_cond.in) if f])}
#else
cp '$in_cond.in' 'in_cond.in/${re.sub("[^\w\-_]", "_", $in_cond.in.element_identifier)}.$gxy2omsext($in_cond.in.ext)' &&
#end if
mkdir in_id_cond.in_id &&
#if $in_id_cond.in_id_select == "no"
mkdir ${' '.join(["'in_id_cond.in_id/%s'" % (i) for i, f in enumerate($in_id_cond.in_id) if f])} && 
${' '.join(["cp '%s' 'in_id_cond.in_id/%s/%s.%s' && " % (f, i, re.sub('[^\w\-_]', '_', f.element_identifier), $gxy2omsext(f.ext)) for i, f in enumerate($in_id_cond.in_id) if f])}
#else
cp '$in_id_cond.in_id' 'in_id_cond.in_id/${re.sub("[^\w\-_]", "_", $in_id_cond.in_id.element_identifier)}.$gxy2omsext($in_id_cond.in_id.ext)' &&
#end if
mkdir out &&

## Main program call

set -o pipefail &&
@EXECUTABLE@ -write_ctd ./ &&
python3 '$__tool_directory__/fill_ctd.py' '@EXECUTABLE@.ctd' '$args_json' '$hardcoded_json' &&
@EXECUTABLE@ -ini @EXECUTABLE@.ctd
-in
#if $in_cond.in_select == "no"
${' '.join(["'in_cond.in/%s/%s.%s'"%(i, re.sub('[^\w\-_]', '_', f.element_identifier), $gxy2omsext(f.ext)) for i, f in enumerate($in_cond.in) if f])}
#else
'in_cond.in/${re.sub("[^\w\-_]", "_", $in_cond.in.element_identifier)}.$gxy2omsext($in_cond.in.ext)'
#end if
-in_id
#if $in_id_cond.in_id_select == "no"
${' '.join(["'in_id_cond.in_id/%s/%s.%s'"%(i, re.sub('[^\w\-_]', '_', f.element_identifier), $gxy2omsext(f.ext)) for i, f in enumerate($in_id_cond.in_id) if f])}
#else
'in_id_cond.in_id/${re.sub("[^\w\-_]", "_", $in_id_cond.in_id.element_identifier)}.$gxy2omsext($in_id_cond.in_id.ext)'
#end if
-out
'out/output.${out_type}'

## Postprocessing
&& mv 'out/output.${out_type}' '$out'
#if "ctd_out_FLAG" in $OPTIONAL_OUTPUTS
  && mv '@EXECUTABLE@.ctd' '$ctd_out'
#end if]]></command>
  <configfiles>
    <inputs name="args_json" data_style="paths"/>
    <configfile name="hardcoded_json"><![CDATA[{"sirius_executable": "\$(which sirius)", "out_workspace_directory": "__SIRIUS_WORKSPACE__", "log": "log.txt", "threads": "\${GALAXY_SLOTS:-1}", "no_progress": true}]]></configfile>
  </configfiles>
  <inputs>
    <conditional name="in_cond">
      <param name="in_select" type="select" label="Run tool in batch mode for -in">
        <option value="no">No: process all datasets jointly</option>
        <option value="yes">Yes: process each dataset in an independent job</option>
      </param>
      <when value="no">
        <param argument="-in" type="data" format="mzml" multiple="true" label="MzML input file(s) used for assay library generation" help=" select mzml data sets(s)"/>
      </when>
      <when value="yes">
        <param argument="-in" type="data" format="mzml" label="MzML input file(s) used for assay library generation" help=" select mzml data sets(s)"/>
      </when>
    </conditional>
    <conditional name="in_id_cond">
      <param name="in_id_select" type="select" label="Run tool in batch mode for -in_id">
        <option value="no">No: process all datasets jointly</option>
        <option value="yes">Yes: process each dataset in an independent job</option>
      </param>
      <when value="no">
        <param argument="-in_id" type="data" format="featurexml" multiple="true" label="FeatureXML input file(s) containing identification information" help="(e.g. AccurateMassSearch) select featurexml data sets(s)"/>
      </when>
      <when value="yes">
        <param argument="-in_id" type="data" format="featurexml" label="FeatureXML input file(s) containing identification information" help="(e.g. AccurateMassSearch) select featurexml data sets(s)"/>
      </when>
    </conditional>
    <param name="out_type" type="select" label="File type of output out (Assay library output file)">
      <option value="tsv">tabular (tsv)</option>
      <option value="traML">traml</option>
      <option value="pqp">pqp</option>
    </param>
    <param argument="-fragment_annotation" type="select" label="Fragment annotation method" help="">
      <option value="none">none</option>
      <option value="sirius" selected="true">sirius</option>
      <expand macro="list_string_san" name="fragment_annotation"/>
    </param>
    <param argument="-ambiguity_resolution_mz_tolerance" type="float" value="10.0" label="Mz tolerance for the resolution of identification ambiguity over multiple files" help=""/>
    <param argument="-ambiguity_resolution_rt_tolerance" type="float" value="10.0" label="RT tolerance in seconds for the resolution of identification ambiguity over multiple files" help=""/>
    <param argument="-total_occurrence_filter" type="float" min="0.0" max="1.0" value="0.1" label="Filter compound based on total occurrence in analysed samples" help=""/>
    <param argument="-fragment_annotation_score_threshold" type="float" min="0.0" max="1.0" value="0.8" label="Filters annotations based on the explained intensity of the peaks in a spectrum" help=""/>
    <param argument="-decoy_generation" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Decoys will be generated using the fragmentation tree re-rooting approach" help="This option does only work in combination with the fragment annotation via Sirius"/>
    <param argument="-decoy_generation_method" type="select" label="Uses different methods for decoy generation" help="Basis for the method is the fragmentation-tree re-rooting approach ('original'). This approach can be extended by using 'resolve_overlap', which will resolve overlapping fragments of the highest intensity fragments chosen, by adding -CH2 mass to the overlapping fragments. 'Add_shift' will add a -CH2 mass shift to the target fragments and use them as additional decoys if fragmentation-tree re-rooting failed. 'Both' combines the extended methods (resolve_overlap, add_shift)">
      <option value="original" selected="true">original</option>
      <option value="resolve_overlap">resolve_overlap</option>
      <option value="add_shift">add_shift</option>
      <option value="both">both</option>
      <expand macro="list_string_san" name="decoy_generation_method"/>
    </param>
    <param argument="-method" type="select" label="Spectrum with the highest precursor intensity or a consensus spectrum is used for assay library construction (if no fragment annotation is used)" help="">
      <option value="highest_intensity" selected="true">highest_intensity</option>
      <option value="consensus_spectrum">consensus_spectrum</option>
      <expand macro="list_string_san" name="method"/>
    </param>
    <param argument="-use_exact_mass" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Use exact mass for precursor and fragment annotations" help=""/>
    <param argument="-exclude_ms2_precursor" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Excludes precursor in ms2 from transition list" help=""/>
    <param argument="-precursor_mz_distance" type="float" value="0.0001" label="Max m/z distance of the precursor entries of two spectra to be merged in [Da]" help=""/>
    <param argument="-consensus_spectrum_precursor_rt_tolerance" type="float" value="5.0" label="Tolerance window (left and right) for precursor selection [seconds], for consensus spectrum generation (only available without fragment annotation)" help=""/>
    <param argument="-use_known_unknowns" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Use features without identification information" help=""/>
    <param argument="-min_transitions" type="integer" value="3" label="Minimal number of transitions" help=""/>
    <param argument="-max_transitions" type="integer" value="6" label="Maximal number of transitions" help=""/>
    <param argument="-cosine_similarity_threshold" type="float" value="0.98" label="Threshold for cosine similarity of MS2 spectra from the same precursor used in consensus spectrum creation" help=""/>
    <param argument="-transition_threshold" type="float" value="5.0" label="Further transitions need at least x% of the maximum intensity (default 5%)" help=""/>
    <section name="deisotoping" title="deisotoping" help="" expanded="false">
      <param name="use_deisotoper" argument="-deisotoping:use_deisotoper" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Use Deisotoper (if no fragment annotation is used)" help=""/>
      <param name="fragment_tolerance" argument="-deisotoping:fragment_tolerance" type="float" value="1.0" label="Tolerance used to match isotopic peaks" help=""/>
      <param name="fragment_unit" argument="-deisotoping:fragment_unit" type="select" label="Unit of the fragment tolerance" help="">
        <option value="ppm" selected="true">ppm</option>
        <option value="Da">Da</option>
        <expand macro="list_string_san" name="fragment_unit"/>
      </param>
      <param name="min_charge" argument="-deisotoping:min_charge" type="integer" min="1" value="1" label="The minimum charge considered" help=""/>
      <param name="max_charge" argument="-deisotoping:max_charge" type="integer" min="1" value="1" label="The maximum charge considered" help=""/>
      <param name="min_isopeaks" argument="-deisotoping:min_isopeaks" type="integer" min="2" value="2" label="The minimum number of isotopic peaks (at least 2) required for an isotopic cluste" help=""/>
      <param name="max_isopeaks" argument="-deisotoping:max_isopeaks" type="integer" min="3" value="3" label="The maximum number of isotopic peaks (at least 2) considered for an isotopic cluste" help=""/>
      <param name="keep_only_deisotoped" argument="-deisotoping:keep_only_deisotoped" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Only monoisotopic peaks of fragments with isotopic pattern are retained" help=""/>
      <param name="annotate_charge" argument="-deisotoping:annotate_charge" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Annotate the charge to the peaks" help=""/>
    </section>
    <section name="preprocessing" title="" help="" expanded="false">
      <param name="filter_by_num_masstraces" argument="-preprocessing:filter_by_num_masstraces" type="integer" min="1" value="1" label="Number of mass traces each feature has to have to be included" help="To use this parameter, setting the feature_only flag is necessary"/>
      <param name="precursor_mz_tolerance" argument="-preprocessing:precursor_mz_tolerance" type="float" value="10.0" label="Tolerance window for precursor selection (Feature selection in regard to the precursor)" help=""/>
      <param name="precursor_mz_tolerance_unit" argument="-preprocessing:precursor_mz_tolerance_unit" type="select" label="Unit of the precursor_mz_tolerance" help="">
        <option value="Da">Da</option>
        <option value="ppm" selected="true">ppm</option>
        <expand macro="list_string_san" name="precursor_mz_tolerance_unit"/>
      </param>
      <param name="precursor_rt_tolerance" argument="-preprocessing:precursor_rt_tolerance" type="float" value="5.0" label="Tolerance window (left and right) for precursor selection [seconds]" help=""/>
      <param name="isotope_pattern_iterations" argument="-preprocessing:isotope_pattern_iterations" type="integer" value="3" label="Number of iterations that should be performed to extract the C13 isotope pattern" help="If no peak is found (C13 distance) the function will abort. Be careful with noisy data - since this can lead to wrong isotope patterns"/>
      <param name="feature_only" argument="-preprocessing:feature_only" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Uses the feature information from in_featureinfo to reduce the search space to MS2 associated with a feature" help=""/>
      <param name="no_masstrace_info_isotope_pattern" argument="-preprocessing:no_masstrace_info_isotope_pattern" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Use this flag if the masstrace information from a feature should be discarded and the isotope_pattern_iterations should be used instead" help=""/>
    </section>
    <section name="project" title="" help="" expanded="false">
      <param name="maxmz" argument="-project:maxmz" type="integer" value="-1" label="Just consider compounds with a precursor mz lower or equal" help="this maximum mz. All other compounds in the input file. are ignored"/>
      <param name="processors" argument="-project:processors" type="integer" value="1" label="Number of cpu cores to use" help="If not specified SIRIUS uses all available cores"/>
      <param name="loglevel" argument="-project:loglevel" type="text" optional="true" value="" label="Set logging level of the Jobs SIRIUS will execute" help="Valid values: SEVERE, WARNING, INFO, FINER, ALL. Default: WARNING">
        <expand macro="list_string_san" name="loglevel"/>
      </param>
      <param name="ignore_formula" argument="-project:ignore_formula" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Ignore given molecular formula in internal .ms format, while processing" help=""/>
      <param name="q" argument="-project:q" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Suppress shell output" help=""/>
    </section>
    <section name="sirius" title="" help="" expanded="false">
      <param name="ppm_max" argument="-sirius:ppm_max" type="float" value="10.0" label="Maximum allowed mass deviation in ppm for decomposing masses [ppm]" help=""/>
      <param name="ppm_max_ms2" argument="-sirius:ppm_max_ms2" type="float" value="10.0" label="Maximum allowed mass deviation in ppm for decomposing masses in MS2 [ppm].If not specified, the same value as for the MS1 is used" help=""/>
      <param name="tree_timeout" argument="-sirius:tree_timeout" type="integer" min="0" value="100" label="Time out in seconds per fragmentation tree computations" help="0 for an infinite amount of time"/>
      <param name="compound_timeout" argument="-sirius:compound_timeout" type="integer" min="0" value="100" label="Maximal computation time in seconds for a single compound" help="0 for an infinite amount of time"/>
      <param name="no_recalibration" argument="-sirius:no_recalibration" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Disable recalibration of input spectra" help=""/>
      <param name="profile" argument="-sirius:profile" type="select" label="Name of the configuration profile" help="">
        <option value="default" selected="true">default</option>
        <option value="qtof">qtof</option>
        <option value="orbitrap">orbitrap</option>
        <option value="fticr">fticr</option>
        <expand macro="list_string_san" name="profile"/>
      </param>
      <param name="formulas" argument="-sirius:formulas" type="text" optional="true" value="" label="Specify the neutral molecular formula of the measured compound to compute its tree or a list of candidate formulas the method should discriminate" help="Omit this option if you want to consider all possible molecular formulas">
        <expand macro="list_string_san" name="formulas"/>
      </param>
      <param name="ions_enforced" argument="-sirius:ions_enforced" type="text" optional="true" value="" label="The iontype/adduct of the MS/MS data" help="Example: [M+H]+, . [M-H]-, [M+Cl]-, [M+Na]+, [M]+. You can also provide a . comma separated list of adducts">
        <expand macro="list_string_san" name="ions_enforced"/>
      </param>
      <param name="candidates" argument="-sirius:candidates" type="integer" min="0" value="10" label="The number of formula candidates in the SIRIUS output" help=""/>
      <param name="candidates_per_ion" argument="-sirius:candidates_per_ion" type="integer" value="1" label="Minimum number of candidates in the output for each ionization" help="Set to force output of results for each possible ionization, even if not part of highest ranked results"/>
      <param name="elements_considered" argument="-sirius:elements_considered" type="text" value="SBrClBSe" label="Set the allowed elements for rare element detection" help="Write SBrClBSe to allow the elements S,Br,Cl,B and Se">
        <expand macro="list_string_san" name="elements_considered"/>
      </param>
      <param name="elements_enforced" argument="-sirius:elements_enforced" type="text" value="CHNOP" label="Enforce elements for molecular formula determination" help="Write CHNOPSCl to allow the elements C, H, N, O, P, S and Cl. Add numbers in brackets to restrict the minimal and maximal allowed occurrence of these elements: CHNOP[5]S[8]Cl[1-2]. When one number is given then it is interpreted as upper bound">
        <expand macro="list_string_san" name="elements_enforced"/>
      </param>
      <param name="no_isotope_score" argument="-sirius:no_isotope_score" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Disable isotope pattern score" help=""/>
      <param name="no_isotope_filter" argument="-sirius:no_isotope_filter" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Disable molecular formula filte" help="When filtering is enabled, molecular formulas are excluded if their theoretical isotope pattern does not match the theoretical one, even if their MS/MS pattern has high score"/>
      <param name="ions_considered" argument="-sirius:ions_considered" type="text" value="[M+H]+,[M+K]+,[M+Na]+,[M+H-H2O]+,[M+H-H4O2]+,[M+NH4]+,[M-H]-,[M+Cl]-,[M-H2O-H]-,[M+Br]-" label="the iontype/adduct of the MS/MS data" help="Example: [M+H]+, [M-H]-, [M+Cl]-, [M+Na]+, [M]+. You can also provide a comma separated list of adducts">
        <expand macro="list_string_san" name="ions_considered"/>
      </param>
      <param name="db" argument="-sirius:db" type="text" value="none" label="Search formulas in the Union of the given databases db-name1,db-name2,db-name3" help="If no database is given all possible molecular formulas will be respected (no database is used). Example: possible DBs: ALL,BIO,PUBCHEM,MESH,HMDB,KNAPSACK,CHEBI,PUBMED,KEGG,HSDB,MACONDA,METACYC,GNPS,ZINCBIO,UNDP,YMDB,PLANTCYC,NORMAN,ADDITIONAL,PUBCHEMANNOTATIONBIO,PUBCHEMANNOTATIONDRUG,PUBCHEMANNOTATIONSAFETYANDTOXIC,PUBCHEMANNOTATIONFOOD,KEGGMINE,ECOCYCMINE,YMDBMINE">
        <expand macro="list_string_san" name="db"/>
      </param>
      <param name="solver" argument="-sirius:solver" type="text" value="CLP" label="For GUROBI and CPLEX environment variables need to be configured" help="(see SIRIUS manual: https://boecker-lab.github.io/docs.sirius.github.io/install/)">
        <expand macro="list_string_san" name="solver"/>
      </param>
    </section>
    <section name="fingerid" title="" help="" expanded="false">
      <param name="db" argument="-fingerid:db" type="text" optional="true" value="" label="Search structures in the Union of the given databases db-name1,db-name2,db-name3" help="If no database is given all possible molecular formulas will be respected (no database is used). Example: possible DBs: ALL,BIO,PUBCHEM,MESH,HMDB,KNAPSACK,CHEBI,PUBMED,KEGG,HSDB,MACONDA,METACYC,GNPS,ZINCBIO,UNDP,YMDB,PLANTCYC,NORMAN,ADDITIONAL,PUBCHEMANNOTATIONBIO,PUBCHEMANNOTATIONDRUG,PUBCHEMANNOTATIONSAFETYANDTOXIC,PUBCHEMANNOTATIONFOOD,KEGGMINE,ECOCYCMINE,YMDBMINE">
        <expand macro="list_string_san" name="db"/>
      </param>
    </section>
    <expand macro="adv_opts_macro">
      <param argument="-ambiguity_resolution_mz_tolerance_unit" type="select" label="Unit of the ambiguity_resolution_mz_tolerance" help="">
        <option value="ppm" selected="true">ppm</option>
        <option value="Da">Da</option>
        <expand macro="list_string_san" name="ambiguity_resolution_mz_tolerance_unit"/>
      </param>
      <param argument="-precursor_recalibration_window" type="float" value="0.01" label="Tolerance window for precursor selection (Annotation of precursor mz and intensity)" help=""/>
      <param argument="-precursor_recalibration_window_unit" type="select" label="Unit of the precursor_mz_tolerance_annotation" help="">
        <option value="Da" selected="true">Da</option>
        <option value="ppm">ppm</option>
        <expand macro="list_string_san" name="precursor_recalibration_window_unit"/>
      </param>
      <param argument="-min_fragment_mz" type="float" value="0.0" label="Minimal m/z of a fragment ion choosen as a transition" help=""/>
      <param argument="-max_fragment_mz" type="float" value="2000.0" label="Maximal m/z of a fragment ion choosen as a transition" help=""/>
      <param argument="-read_sirius_stdout" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Read and print the standard output and error of the Sirius executable, even if it succeeds" help=""/>
      <param argument="-force" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Overrides tool-specific checks" help=""/>
      <param argument="-test" type="hidden" value="False" label="Enables the test mode (needed for internal use only)" help="" optional="true">
        <expand macro="list_string_san" name="test"/>
      </param>
    </expand>
    <param name="OPTIONAL_OUTPUTS" type="select" optional="true" multiple="true" label="Optional outputs">
      <option value="ctd_out_FLAG">Output used ctd (ini) configuration file</option>
    </param>
  </inputs>
  <outputs>
    <data name="out" label="${tool.name} on ${on_string}: out" format="pqp">
      <change_format>
        <when input="out_type" value="traML" format="traml"/>
        <when input="out_type" value="tsv" format="tabular"/>
      </change_format>
    </data>
    <data name="ctd_out" format="xml" label="${tool.name} on ${on_string}: ctd">
      <filter>OPTIONAL_OUTPUTS is not None and "ctd_out_FLAG" in OPTIONAL_OUTPUTS</filter>
    </data>
  </outputs>
  <tests>
    <!-- TOPP_AssayGeneratorMetabo_1 -->
    <test expect_num_outputs="2">
      <section name="adv_opts">
        <param name="ambiguity_resolution_mz_tolerance_unit" value="ppm"/>
        <param name="precursor_recalibration_window" value="0.01"/>
        <param name="precursor_recalibration_window_unit" value="Da"/>
        <param name="min_fragment_mz" value="0.0"/>
        <param name="max_fragment_mz" value="2000.0"/>
        <param name="read_sirius_stdout" value="false"/>
        <param name="force" value="false"/>
        <param name="test" value="true"/>
      </section>
      <conditional name="in_cond">
        <param name="in" value="AssayGeneratorMetabo_input.mzML"/>
      </conditional>
      <conditional name="in_id_cond">
        <param name="in_id" value="AssayGeneratorMetabo_ffm_input.featureXML"/>
      </conditional>
      <param name="out_type" value="tsv"/>
      <output name="out" value="AssayGeneratorMetabo_ffm_output.tsv" compare="sim_size" delta_frac="0.7" ftype="tabular"/>
      <param name="fragment_annotation" value="none"/>
      <param name="ambiguity_resolution_mz_tolerance" value="10.0"/>
      <param name="ambiguity_resolution_rt_tolerance" value="10.0"/>
      <param name="total_occurrence_filter" value="0.1"/>
      <param name="fragment_annotation_score_threshold" value="0.8"/>
      <param name="decoy_generation" value="false"/>
      <param name="decoy_generation_method" value="original"/>
      <param name="method" value="highest_intensity"/>
      <param name="use_exact_mass" value="false"/>
      <param name="exclude_ms2_precursor" value="false"/>
      <param name="precursor_mz_distance" value="0.0001"/>
      <param name="consensus_spectrum_precursor_rt_tolerance" value="5.0"/>
      <param name="use_known_unknowns" value="false"/>
      <param name="min_transitions" value="1"/>
      <param name="max_transitions" value="3"/>
      <param name="cosine_similarity_threshold" value="0.98"/>
      <param name="transition_threshold" value="5.0"/>
      <section name="deisotoping">
        <param name="use_deisotoper" value="false"/>
        <param name="fragment_tolerance" value="1.0"/>
        <param name="fragment_unit" value="ppm"/>
        <param name="min_charge" value="1"/>
        <param name="max_charge" value="1"/>
        <param name="min_isopeaks" value="2"/>
        <param name="max_isopeaks" value="3"/>
        <param name="keep_only_deisotoped" value="false"/>
        <param name="annotate_charge" value="false"/>
      </section>
      <section name="preprocessing">
        <param name="filter_by_num_masstraces" value="1"/>
        <param name="precursor_mz_tolerance" value="10.0"/>
        <param name="precursor_mz_tolerance_unit" value="ppm"/>
        <param name="precursor_rt_tolerance" value="5.0"/>
        <param name="isotope_pattern_iterations" value="3"/>
        <param name="feature_only" value="false"/>
        <param name="no_masstrace_info_isotope_pattern" value="false"/>
      </section>
      <section name="project">
        <param name="maxmz" value="-1"/>
        <param name="processors" value="1"/>
        <param name="loglevel" value=""/>
        <param name="ignore_formula" value="false"/>
        <param name="q" value="false"/>
      </section>
      <section name="sirius">
        <param name="ppm_max" value="10.0"/>
        <param name="ppm_max_ms2" value="10.0"/>
        <param name="tree_timeout" value="100"/>
        <param name="compound_timeout" value="100"/>
        <param name="no_recalibration" value="false"/>
        <param name="profile" value="default"/>
        <param name="formulas" value=""/>
        <param name="ions_enforced" value=""/>
        <param name="candidates" value="10"/>
        <param name="candidates_per_ion" value="1"/>
        <param name="elements_considered" value="SBrClBSe"/>
        <param name="elements_enforced" value="CHNOP"/>
        <param name="no_isotope_score" value="false"/>
        <param name="no_isotope_filter" value="false"/>
        <param name="ions_considered" value="[M+H]+,[M+K]+,[M+Na]+,[M+H-H2O]+,[M+H-H4O2]+,[M+NH4]+,[M-H]-,[M+Cl]-,[M-H2O-H]-,[M+Br]-"/>
        <param name="db" value="none"/>
        <param name="solver" value="CLP"/>
      </section>
      <section name="fingerid">
        <param name="db" value=""/>
      </section>
      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
      <output name="ctd_out" ftype="xml">
        <assert_contents>
          <is_valid_xml/>
        </assert_contents>
      </output>
      <assert_stdout>
        <has_text_matching expression="@EXECUTABLE@ took .* \(wall\), .* \(CPU\), .* \(system\), .* \(user\)(; Peak Memory Usage: 32 MB)?."/>
      </assert_stdout>
    </test>
    <!-- TOPP_AssayGeneratorMetabo_2 -->
    <test expect_num_outputs="2">
      <section name="adv_opts">
        <param name="ambiguity_resolution_mz_tolerance_unit" value="ppm"/>
        <param name="precursor_recalibration_window" value="0.01"/>
        <param name="precursor_recalibration_window_unit" value="Da"/>
        <param name="min_fragment_mz" value="0.0"/>
        <param name="max_fragment_mz" value="2000.0"/>
        <param name="read_sirius_stdout" value="false"/>
        <param name="force" value="false"/>
        <param name="test" value="true"/>
      </section>
      <conditional name="in_cond">
        <param name="in" value="AssayGeneratorMetabo_input.mzML"/>
      </conditional>
      <conditional name="in_id_cond">
        <param name="in_id" value="AssayGeneratorMetabo_ams_input.featureXML"/>
      </conditional>
      <param name="out_type" value="tsv"/>
      <output name="out" value="AssayGeneratorMetabo_ams_output.tsv" compare="sim_size" delta_frac="0.7" ftype="tabular"/>
      <param name="fragment_annotation" value="none"/>
      <param name="ambiguity_resolution_mz_tolerance" value="10.0"/>
      <param name="ambiguity_resolution_rt_tolerance" value="10.0"/>
      <param name="total_occurrence_filter" value="0.1"/>
      <param name="fragment_annotation_score_threshold" value="0.8"/>
      <param name="decoy_generation" value="false"/>
      <param name="decoy_generation_method" value="original"/>
      <param name="method" value="highest_intensity"/>
      <param name="use_exact_mass" value="false"/>
      <param name="exclude_ms2_precursor" value="false"/>
      <param name="precursor_mz_distance" value="0.0001"/>
      <param name="consensus_spectrum_precursor_rt_tolerance" value="5.0"/>
      <param name="use_known_unknowns" value="false"/>
      <param name="min_transitions" value="1"/>
      <param name="max_transitions" value="3"/>
      <param name="cosine_similarity_threshold" value="0.98"/>
      <param name="transition_threshold" value="5.0"/>
      <section name="deisotoping">
        <param name="use_deisotoper" value="false"/>
        <param name="fragment_tolerance" value="1.0"/>
        <param name="fragment_unit" value="ppm"/>
        <param name="min_charge" value="1"/>
        <param name="max_charge" value="1"/>
        <param name="min_isopeaks" value="2"/>
        <param name="max_isopeaks" value="3"/>
        <param name="keep_only_deisotoped" value="false"/>
        <param name="annotate_charge" value="false"/>
      </section>
      <section name="preprocessing">
        <param name="filter_by_num_masstraces" value="1"/>
        <param name="precursor_mz_tolerance" value="10.0"/>
        <param name="precursor_mz_tolerance_unit" value="ppm"/>
        <param name="precursor_rt_tolerance" value="5.0"/>
        <param name="isotope_pattern_iterations" value="3"/>
        <param name="feature_only" value="false"/>
        <param name="no_masstrace_info_isotope_pattern" value="false"/>
      </section>
      <section name="project">
        <param name="maxmz" value="-1"/>
        <param name="processors" value="1"/>
        <param name="loglevel" value=""/>
        <param name="ignore_formula" value="false"/>
        <param name="q" value="false"/>
      </section>
      <section name="sirius">
        <param name="ppm_max" value="10.0"/>
        <param name="ppm_max_ms2" value="10.0"/>
        <param name="tree_timeout" value="100"/>
        <param name="compound_timeout" value="100"/>
        <param name="no_recalibration" value="false"/>
        <param name="profile" value="default"/>
        <param name="formulas" value=""/>
        <param name="ions_enforced" value=""/>
        <param name="candidates" value="10"/>
        <param name="candidates_per_ion" value="1"/>
        <param name="elements_considered" value="SBrClBSe"/>
        <param name="elements_enforced" value="CHNOP"/>
        <param name="no_isotope_score" value="false"/>
        <param name="no_isotope_filter" value="false"/>
        <param name="ions_considered" value="[M+H]+,[M+K]+,[M+Na]+,[M+H-H2O]+,[M+H-H4O2]+,[M+NH4]+,[M-H]-,[M+Cl]-,[M-H2O-H]-,[M+Br]-"/>
        <param name="db" value="none"/>
        <param name="solver" value="CLP"/>
      </section>
      <section name="fingerid">
        <param name="db" value=""/>
      </section>
      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
      <output name="ctd_out" ftype="xml">
        <assert_contents>
          <is_valid_xml/>
        </assert_contents>
      </output>
      <assert_stdout>
        <has_text_matching expression="@EXECUTABLE@ took .* \(wall\), .* \(CPU\), .* \(system\), .* \(user\)(; Peak Memory Usage: 32 MB)?."/>
      </assert_stdout>
    </test>
    <!-- TOPP_AssayGeneratorMetabo_3 -->
    <test expect_num_outputs="2">
      <section name="adv_opts">
        <param name="ambiguity_resolution_mz_tolerance_unit" value="ppm"/>
        <param name="precursor_recalibration_window" value="0.01"/>
        <param name="precursor_recalibration_window_unit" value="Da"/>
        <param name="min_fragment_mz" value="0.0"/>
        <param name="max_fragment_mz" value="2000.0"/>
        <param name="read_sirius_stdout" value="false"/>
        <param name="force" value="false"/>
        <param name="test" value="true"/>
      </section>
      <conditional name="in_cond">
        <param name="in" value="AssayGeneratorMetabo_input.mzML"/>
      </conditional>
      <conditional name="in_id_cond">
        <param name="in_id" value="AssayGeneratorMetabo_ffm_input.featureXML"/>
      </conditional>
      <param name="out_type" value="tsv"/>
      <output name="out" value="AssayGeneratorMetabo_ffm_output_consensus.tsv" compare="sim_size" delta_frac="0.7" ftype="tabular"/>
      <param name="fragment_annotation" value="none"/>
      <param name="ambiguity_resolution_mz_tolerance" value="10.0"/>
      <param name="ambiguity_resolution_rt_tolerance" value="10.0"/>
      <param name="total_occurrence_filter" value="0.1"/>
      <param name="fragment_annotation_score_threshold" value="0.8"/>
      <param name="decoy_generation" value="false"/>
      <param name="decoy_generation_method" value="original"/>
      <param name="method" value="consensus_spectrum"/>
      <param name="use_exact_mass" value="false"/>
      <param name="exclude_ms2_precursor" value="false"/>
      <param name="precursor_mz_distance" value="0.0001"/>
      <param name="consensus_spectrum_precursor_rt_tolerance" value="5.0"/>
      <param name="use_known_unknowns" value="false"/>
      <param name="min_transitions" value="1"/>
      <param name="max_transitions" value="3"/>
      <param name="cosine_similarity_threshold" value="0.98"/>
      <param name="transition_threshold" value="5.0"/>
      <section name="deisotoping">
        <param name="use_deisotoper" value="false"/>
        <param name="fragment_tolerance" value="1.0"/>
        <param name="fragment_unit" value="ppm"/>
        <param name="min_charge" value="1"/>
        <param name="max_charge" value="1"/>
        <param name="min_isopeaks" value="2"/>
        <param name="max_isopeaks" value="3"/>
        <param name="keep_only_deisotoped" value="false"/>
        <param name="annotate_charge" value="false"/>
      </section>
      <section name="preprocessing">
        <param name="filter_by_num_masstraces" value="1"/>
        <param name="precursor_mz_tolerance" value="10.0"/>
        <param name="precursor_mz_tolerance_unit" value="ppm"/>
        <param name="precursor_rt_tolerance" value="5.0"/>
        <param name="isotope_pattern_iterations" value="3"/>
        <param name="feature_only" value="false"/>
        <param name="no_masstrace_info_isotope_pattern" value="false"/>
      </section>
      <section name="project">
        <param name="maxmz" value="-1"/>
        <param name="processors" value="1"/>
        <param name="loglevel" value=""/>
        <param name="ignore_formula" value="false"/>
        <param name="q" value="false"/>
      </section>
      <section name="sirius">
        <param name="ppm_max" value="10.0"/>
        <param name="ppm_max_ms2" value="10.0"/>
        <param name="tree_timeout" value="100"/>
        <param name="compound_timeout" value="100"/>
        <param name="no_recalibration" value="false"/>
        <param name="profile" value="default"/>
        <param name="formulas" value=""/>
        <param name="ions_enforced" value=""/>
        <param name="candidates" value="10"/>
        <param name="candidates_per_ion" value="1"/>
        <param name="elements_considered" value="SBrClBSe"/>
        <param name="elements_enforced" value="CHNOP"/>
        <param name="no_isotope_score" value="false"/>
        <param name="no_isotope_filter" value="false"/>
        <param name="ions_considered" value="[M+H]+,[M+K]+,[M+Na]+,[M+H-H2O]+,[M+H-H4O2]+,[M+NH4]+,[M-H]-,[M+Cl]-,[M-H2O-H]-,[M+Br]-"/>
        <param name="db" value="none"/>
        <param name="solver" value="CLP"/>
      </section>
      <section name="fingerid">
        <param name="db" value=""/>
      </section>
      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
      <output name="ctd_out" ftype="xml">
        <assert_contents>
          <is_valid_xml/>
        </assert_contents>
      </output>
      <assert_stdout>
        <has_text_matching expression="@EXECUTABLE@ took .* \(wall\), .* \(CPU\), .* \(system\), .* \(user\)(; Peak Memory Usage: 32 MB)?."/>
      </assert_stdout>
    </test>
    <!-- TOPP_AssayGeneratorMetabo_4 -->
    <test expect_num_outputs="2">
      <section name="adv_opts">
        <param name="ambiguity_resolution_mz_tolerance_unit" value="ppm"/>
        <param name="precursor_recalibration_window" value="0.01"/>
        <param name="precursor_recalibration_window_unit" value="Da"/>
        <param name="min_fragment_mz" value="0.0"/>
        <param name="max_fragment_mz" value="2000.0"/>
        <param name="read_sirius_stdout" value="false"/>
        <param name="force" value="false"/>
        <param name="test" value="true"/>
      </section>
      <conditional name="in_cond">
        <param name="in" value="AssayGeneratorMetabo_input.mzML"/>
      </conditional>
      <conditional name="in_id_cond">
        <param name="in_id" value="AssayGeneratorMetabo_ams_input.featureXML"/>
      </conditional>
      <param name="out_type" value="tsv"/>
      <output name="out" value="AssayGeneratorMetabo_ams_output_consensus.tsv" compare="sim_size" delta_frac="0.7" ftype="tabular"/>
      <param name="fragment_annotation" value="none"/>
      <param name="ambiguity_resolution_mz_tolerance" value="10.0"/>
      <param name="ambiguity_resolution_rt_tolerance" value="10.0"/>
      <param name="total_occurrence_filter" value="0.1"/>
      <param name="fragment_annotation_score_threshold" value="0.8"/>
      <param name="decoy_generation" value="false"/>
      <param name="decoy_generation_method" value="original"/>
      <param name="method" value="consensus_spectrum"/>
      <param name="use_exact_mass" value="false"/>
      <param name="exclude_ms2_precursor" value="false"/>
      <param name="precursor_mz_distance" value="0.0001"/>
      <param name="consensus_spectrum_precursor_rt_tolerance" value="5.0"/>
      <param name="use_known_unknowns" value="false"/>
      <param name="min_transitions" value="1"/>
      <param name="max_transitions" value="3"/>
      <param name="cosine_similarity_threshold" value="0.98"/>
      <param name="transition_threshold" value="5.0"/>
      <section name="deisotoping">
        <param name="use_deisotoper" value="false"/>
        <param name="fragment_tolerance" value="1.0"/>
        <param name="fragment_unit" value="ppm"/>
        <param name="min_charge" value="1"/>
        <param name="max_charge" value="1"/>
        <param name="min_isopeaks" value="2"/>
        <param name="max_isopeaks" value="3"/>
        <param name="keep_only_deisotoped" value="false"/>
        <param name="annotate_charge" value="false"/>
      </section>
      <section name="preprocessing">
        <param name="filter_by_num_masstraces" value="1"/>
        <param name="precursor_mz_tolerance" value="10.0"/>
        <param name="precursor_mz_tolerance_unit" value="ppm"/>
        <param name="precursor_rt_tolerance" value="5.0"/>
        <param name="isotope_pattern_iterations" value="3"/>
        <param name="feature_only" value="false"/>
        <param name="no_masstrace_info_isotope_pattern" value="false"/>
      </section>
      <section name="project">
        <param name="maxmz" value="-1"/>
        <param name="processors" value="1"/>
        <param name="loglevel" value=""/>
        <param name="ignore_formula" value="false"/>
        <param name="q" value="false"/>
      </section>
      <section name="sirius">
        <param name="ppm_max" value="10.0"/>
        <param name="ppm_max_ms2" value="10.0"/>
        <param name="tree_timeout" value="100"/>
        <param name="compound_timeout" value="100"/>
        <param name="no_recalibration" value="false"/>
        <param name="profile" value="default"/>
        <param name="formulas" value=""/>
        <param name="ions_enforced" value=""/>
        <param name="candidates" value="10"/>
        <param name="candidates_per_ion" value="1"/>
        <param name="elements_considered" value="SBrClBSe"/>
        <param name="elements_enforced" value="CHNOP"/>
        <param name="no_isotope_score" value="false"/>
        <param name="no_isotope_filter" value="false"/>
        <param name="ions_considered" value="[M+H]+,[M+K]+,[M+Na]+,[M+H-H2O]+,[M+H-H4O2]+,[M+NH4]+,[M-H]-,[M+Cl]-,[M-H2O-H]-,[M+Br]-"/>
        <param name="db" value="none"/>
        <param name="solver" value="CLP"/>
      </section>
      <section name="fingerid">
        <param name="db" value=""/>
      </section>
      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
      <output name="ctd_out" ftype="xml">
        <assert_contents>
          <is_valid_xml/>
        </assert_contents>
      </output>
      <assert_stdout>
        <has_text_matching expression="@EXECUTABLE@ took .* \(wall\), .* \(CPU\), .* \(system\), .* \(user\)(; Peak Memory Usage: 32 MB)?."/>
      </assert_stdout>
    </test>
    <!-- TOPP_AssayGeneratorMetabo_5 -->
    <test expect_num_outputs="2">
      <section name="adv_opts">
        <param name="ambiguity_resolution_mz_tolerance_unit" value="ppm"/>
        <param name="precursor_recalibration_window" value="0.01"/>
        <param name="precursor_recalibration_window_unit" value="Da"/>
        <param name="min_fragment_mz" value="0.0"/>
        <param name="max_fragment_mz" value="2000.0"/>
        <param name="read_sirius_stdout" value="false"/>
        <param name="force" value="false"/>
        <param name="test" value="true"/>
      </section>
      <conditional name="in_cond">
        <param name="in" value="AssayGeneratorMetabo_input.mzML"/>
      </conditional>
      <conditional name="in_id_cond">
        <param name="in_id" value="AssayGeneratorMetabo_ams_input.featureXML"/>
      </conditional>
      <param name="out_type" value="tsv"/>
      <output name="out" value="AssayGeneratorMetabo_ams_uku_output_consensus.tsv" compare="sim_size" delta_frac="0.7" ftype="tabular"/>
      <param name="fragment_annotation" value="none"/>
      <param name="ambiguity_resolution_mz_tolerance" value="10.0"/>
      <param name="ambiguity_resolution_rt_tolerance" value="10.0"/>
      <param name="total_occurrence_filter" value="0.1"/>
      <param name="fragment_annotation_score_threshold" value="0.8"/>
      <param name="decoy_generation" value="false"/>
      <param name="decoy_generation_method" value="original"/>
      <param name="method" value="consensus_spectrum"/>
      <param name="use_exact_mass" value="false"/>
      <param name="exclude_ms2_precursor" value="false"/>
      <param name="precursor_mz_distance" value="0.0001"/>
      <param name="consensus_spectrum_precursor_rt_tolerance" value="5.0"/>
      <param name="use_known_unknowns" value="true"/>
      <param name="min_transitions" value="1"/>
      <param name="max_transitions" value="3"/>
      <param name="cosine_similarity_threshold" value="0.98"/>
      <param name="transition_threshold" value="5.0"/>
      <section name="deisotoping">
        <param name="use_deisotoper" value="false"/>
        <param name="fragment_tolerance" value="1.0"/>
        <param name="fragment_unit" value="ppm"/>
        <param name="min_charge" value="1"/>
        <param name="max_charge" value="1"/>
        <param name="min_isopeaks" value="2"/>
        <param name="max_isopeaks" value="3"/>
        <param name="keep_only_deisotoped" value="false"/>
        <param name="annotate_charge" value="false"/>
      </section>
      <section name="preprocessing">
        <param name="filter_by_num_masstraces" value="1"/>
        <param name="precursor_mz_tolerance" value="10.0"/>
        <param name="precursor_mz_tolerance_unit" value="ppm"/>
        <param name="precursor_rt_tolerance" value="5.0"/>
        <param name="isotope_pattern_iterations" value="3"/>
        <param name="feature_only" value="false"/>
        <param name="no_masstrace_info_isotope_pattern" value="false"/>
      </section>
      <section name="project">
        <param name="maxmz" value="-1"/>
        <param name="processors" value="1"/>
        <param name="loglevel" value=""/>
        <param name="ignore_formula" value="false"/>
        <param name="q" value="false"/>
      </section>
      <section name="sirius">
        <param name="ppm_max" value="10.0"/>
        <param name="ppm_max_ms2" value="10.0"/>
        <param name="tree_timeout" value="100"/>
        <param name="compound_timeout" value="100"/>
        <param name="no_recalibration" value="false"/>
        <param name="profile" value="default"/>
        <param name="formulas" value=""/>
        <param name="ions_enforced" value=""/>
        <param name="candidates" value="10"/>
        <param name="candidates_per_ion" value="1"/>
        <param name="elements_considered" value="SBrClBSe"/>
        <param name="elements_enforced" value="CHNOP"/>
        <param name="no_isotope_score" value="false"/>
        <param name="no_isotope_filter" value="false"/>
        <param name="ions_considered" value="[M+H]+,[M+K]+,[M+Na]+,[M+H-H2O]+,[M+H-H4O2]+,[M+NH4]+,[M-H]-,[M+Cl]-,[M-H2O-H]-,[M+Br]-"/>
        <param name="db" value="none"/>
        <param name="solver" value="CLP"/>
      </section>
      <section name="fingerid">
        <param name="db" value=""/>
      </section>
      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
      <output name="ctd_out" ftype="xml">
        <assert_contents>
          <is_valid_xml/>
        </assert_contents>
      </output>
      <assert_stdout>
        <has_text_matching expression="@EXECUTABLE@ took .* \(wall\), .* \(CPU\), .* \(system\), .* \(user\)(; Peak Memory Usage: 32 MB)?."/>
      </assert_stdout>
    </test>
  </tests>
  <help><![CDATA[Assay library generation from DDA data (Metabolomics)


For more information, visit https://openms.de/doxygen/release/3.1.0/html/TOPP_AssayGeneratorMetabo.html]]></help>
  <expand macro="references"/>
</tool>