changeset 0:d994c72a91fc draft

"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 55a2aeba8bfd8a6910630721de9857dcdfe05d3c"
author galaxyp
date Tue, 13 Oct 2020 19:54:23 +0000
parents
children 594a165c069c
files 404-urls.patch DatabaseSuitability.xml OMSSAAdapter.patch PepNovoAdapter.patch filetypes.txt fill_ctd.py fill_ctd_clargs.py generate-foo.sh generate.sh hardcoded_params.json macros.xml macros_autotest.xml macros_discarded_auto.xml macros_test.xml prepare_test_data_manual.sh readme.md test-data.sh tool-data/pepnovo_models.loc.sample tool_data_table_conf.xml.sample tool_data_table_conf.xml.test tools_blacklist.txt
diffstat 21 files changed, 29903 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/404-urls.patch	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,11 @@
+diff -ruN FeatureFinderSuperHirn.xml FeatureFinderSuperHirn.xml
+--- FeatureFinderSuperHirn.xml	2020-10-02 12:06:56.398572301 +0200
++++ FeatureFinderSuperHirn.xml	2020-10-02 12:07:31.511153834 +0200
+@@ -105,6 +105,6 @@
+   <help><![CDATA[Finds mass spectrometric features in mass spectra.
+ 
+ 
+-For more information, visit http://www.openms.de/doxygen/release/2.6.0/html/TOPP_FeatureFinderSuperHirn.html]]></help>
++For more information, visit https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Documentation/release/2.6.0/html/UTILS_FeatureFinderSuperHirn.html]]></help>
+   <expand macro="references"/>
+ </tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DatabaseSuitability.xml	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,99 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--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: []-->
+<tool id="DatabaseSuitability" name="DatabaseSuitability" version="@TOOL_VERSION@+galaxy@GALAXY_VERSION@" profile="20.05">
+  <description>Computes a suitability score for a database which was used for a peptide identification search. Also reports the quality of LC-MS spectra.</description>
+  <macros>
+    <token name="@EXECUTABLE@">DatabaseSuitability</token>
+    <import>macros.xml</import>
+    <import>macros_autotest.xml</import>
+    <import>macros_test.xml</import>
+  </macros>
+  <expand macro="requirements"/>
+  <expand macro="stdio"/>
+  <command detect_errors="exit_code"><![CDATA[@QUOTE_FOO@
+@EXT_FOO@
+#import re
+
+## Preprocessing
+mkdir in_id &&
+ln -s '$in_id' 'in_id/${re.sub("[^\w\-_]", "_", $in_id.element_identifier)}.$gxy2omsext($in_id.ext)' &&
+mkdir in_spec &&
+ln -s '$in_spec' 'in_spec/${re.sub("[^\w\-_]", "_", $in_spec.element_identifier)}.$gxy2omsext($in_spec.ext)' &&
+mkdir in_novo &&
+ln -s '$in_novo' 'in_novo/${re.sub("[^\w\-_]", "_", $in_novo.element_identifier)}.$gxy2omsext($in_novo.ext)' &&
+#if "out_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
+  mkdir out &&
+#end if
+
+## 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_id
+'in_id/${re.sub("[^\w\-_]", "_", $in_id.element_identifier)}.$gxy2omsext($in_id.ext)'
+-in_spec
+'in_spec/${re.sub("[^\w\-_]", "_", $in_spec.element_identifier)}.$gxy2omsext($in_spec.ext)'
+-in_novo
+'in_novo/${re.sub("[^\w\-_]", "_", $in_novo.element_identifier)}.$gxy2omsext($in_novo.ext)'
+#if "out_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
+  -out
+  'out/output.${gxy2omsext("tabular")}'
+#end if
+#if len(str($OPTIONAL_OUTPUTS).split(',')) == 0
+  | tee '$stdout'
+#end if
+
+## Postprocessing
+#if "out_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
+  && mv 'out/output.${gxy2omsext("tabular")}' '$out'
+#end if
+#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[{"log": "log.txt", "threads": "\${GALAXY_SLOTS:-1}", "no_progress": true}]]></configfile>
+  </configfiles>
+  <inputs>
+    <param name="in_id" argument="-in_id" type="data" format="idxml" optional="false" label="Input idXML file from peptide search with combined database with added de novo peptide" help="PeptideIndexer is needed, FDR is forbidden select idxml data sets(s)"/>
+    <param name="in_spec" argument="-in_spec" type="data" format="mzml" optional="false" label="Input MzML file used for the peptide identification" help=" select mzml data sets(s)"/>
+    <param name="in_novo" argument="-in_novo" type="data" format="idxml" optional="false" label="Input idXML file containing de novo peptides (unfiltered)" help=" select idxml data sets(s)"/>
+    <section name="algorithm" title="Parameter section for the suitability calculation algorithm" help="" expanded="false">
+      <param name="no_rerank" argument="-algorithm:no_rerank" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Use this flag if you want to disable re-ranking" help="Cases, where a de novo peptide scores just higher than the database peptide, are overlooked and counted as a de novo hit. This might underestimate the database quality"/>
+      <param name="reranking_cutoff_percentile" argument="-algorithm:reranking_cutoff_percentile" type="float" optional="true" min="0.0" max="1.0" value="0.01" label="Swap a top-scoring deNovo hit with a lower scoring DB hit if their xcorr score difference is in the given percentile of all score differences between the first two decoy hits of a PSM" help="The lower the value the lower the decoy cut-off will be. Therefore it will be harder for a lower scoring DB hit to be re-ranked to the top"/>
+      <param name="FDR" argument="-algorithm:FDR" type="float" optional="true" min="0.0" max="1.0" value="0.01" label="Filter peptide hits based on this q-value" help="(e.g., 0.05 = 5 % FDR)"/>
+    </section>
+    <expand macro="adv_opts_macro">
+      <param name="force" argument="-force" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Overrides tool-specific checks" help=""/>
+      <param name="test" argument="-test" type="hidden" optional="true" value="False" label="Enables the test mode (needed for internal use only)" help="">
+        <expand macro="list_string_san"/>
+      </param>
+    </expand>
+    <param name="OPTIONAL_OUTPUTS" type="select" optional="true" multiple="true" label="Optional outputs">
+      <option value="out_FLAG">out (Optional tsv output containing database suitability information as well as spectral quality)</option>
+      <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="tabular">
+      <filter>OPTIONAL_OUTPUTS is not None and "out_FLAG" in OPTIONAL_OUTPUTS</filter>
+    </data>
+    <data name="stdout" format="txt" label="${tool.name} on ${on_string}: stdout">
+      <filter>OPTIONAL_OUTPUTS is None</filter>
+    </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>
+    <expand macro="autotest_DatabaseSuitability"/>
+    <expand macro="manutest_DatabaseSuitability"/>
+  </tests>
+  <help><![CDATA[Computes a suitability score for a database which was used for a peptide identification search. Also reports the quality of LC-MS spectra.
+
+]]></help>
+  <expand macro="references"/>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/OMSSAAdapter.patch	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,10 @@
+--- OMSSAAdapter.xml	2020-06-16 15:51:40.315400730 +0200
++++ /tmp/OMSSAAdapter.xml	2020-06-16 15:50:23.536086074 +0200
+@@ -22,6 +22,7 @@
+ mkdir database &&
+ ln -s '$database' 'database/${re.sub("[^\w\-_]", "_", $database.element_identifier)}.$gxy2omsext($database.ext)' &&
+ 
++makeblastdb -dbtype prot -in 'database/${re.sub("[^\w\-_]", "_", $database.element_identifier)}.$gxy2omsext($database.ext)' &&
+ ## Main program call
+ 
+ set -o pipefail &&
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PepNovoAdapter.patch	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,35 @@
+--- PepNovoAdapter.xml	2020-05-12 15:55:24.712831518 +0200
++++ /tmp/PepNovoAdapter.xml	2020-05-12 15:36:31.267276757 +0200
+@@ -42,8 +42,13 @@
+   </configfiles>
+   <inputs>
+     <param name="in" argument="-in" type="data" format="mzml" optional="false" label="input file" help=" select mzml data sets(s)"/>
+-    <param name="model_directory" argument="-model_directory" type="text" optional="false" value="" label="Name of the directory where the model files are kept" help="">
+-      <expand macro="list_string_san"/>
++    <param name="model_directory" argument="-model_directory" type="select" optional="false" label="Name of the directory where the model files are kept" help="">
++        <options from_data_table="pepnovo_models">
++            <column name="name" index="0"/>
++            <column name="value" index="2"/>
++            <filter type="unique_value" name="unique_set" column="0"/>
++            <validator type="no_options" message="No model directory available"/>
++        </options>
+     </param>
+     <param name="correct_pm" argument="-correct_pm" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Find optimal precursor mass and charge values" help=""/>
+     <param name="use_spectrum_charge" argument="-use_spectrum_charge" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Do not correct charge" help=""/>
+@@ -51,8 +56,14 @@
+     <param name="no_quality_filter" argument="-no_quality_filter" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Do not remove low quality spectra" help=""/>
+     <param name="fragment_tolerance" argument="-fragment_tolerance" type="float" optional="true" value="-1.0" label="The fragment tolerance (between 0 and 0.75 Da" help="Set to -1.0 to use model's default setting)"/>
+     <param name="pm_tolerance" argument="-pm_tolerance" type="float" optional="true" value="-1.0" label="The precursor mass tolerance (between 0 and 5.0 Da" help="Set to -1.0 to use model's default setting)"/>
+-    <param name="model" argument="-model" type="text" optional="true" value="CID_IT_TRYP" label="Name of the model that should be used" help="">
+-      <expand macro="list_string_san"/>
++    <param name="model" argument="-model" type="select" label="Name of the model that should be used" help="">
++        <options from_data_table="pepnovo_models">
++            <column name="name" index="1"/>
++            <column name="value" index="1"/>
++            <filter type="param_value" ref="model_directory" column="2"/>
++            <filter type="unique_value" column="1"/>
++            <validator type="no_options" message="No model available"/>
++        </options>
+     </param>
+     <param name="digest" argument="-digest" display="radio" type="select" optional="false" label="Enzyme used for digestion (default TRYPSIN)" help="">
+       <option value="TRYPSIN" selected="true">TRYPSIN</option>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/filetypes.txt	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,85 @@
+# CTD type    # Galaxy type
+# the following lines need to be at the top in order to ensure 
+# correct translation Galaxy->CTD type for the ambiguous cases
+# (should only be relevant for the autogenerated tests [which 
+# do not set the ftype of the inputs])
+txt           txt
+tsv           tabular
+
+##analysisXML
+# XTandemAdapter output is named xml in OMS (which is to unspecific) and bioml in Galaxy .. so this is renamed via hardcoded parameters 
+bioml         xml
+consensusXML  consensusxml
+# TODO csv is problematic, since csv often actually means tsv .. but not always
+csv           csv
+##dat
+dta           dta
+dta2d         dta2d
+edta          edta
+fa            fasta
+fas           fasta
+fasta         fasta
+FASTA         fasta
+featureXML    featurexml
+featurexml    featurexml
+# fid
+html          html
+HTML          html
+idXML         idxml
+##ini         txt
+json          json
+kroenik	      kroenik
+mascotXML     mascotxml
+mgf           mgf
+mrm           mrm
+ms            sirius.ms
+ms2           ms2
+msp           msp
+mzData        mzdata
+mzid          mzid
+# important to have mzML first, since LuciphorAdapter is case sensitive https://github.com/OpenMS/OpenMS/issues/4444
+mzML          mzml
+mzml          mzml
+mzq           mzq
+mzTab         mztab
+mzXML         mzxml
+novor         txt
+obo           obo
+# I guess this is the idXML output of omssa
+omssaXML      idxml
+osw           osw
+OSW           osw
+params        txt
+paramXML      paramxml
+fasta         peff
+peplist       peplist
+# TODO pep.xml should be removed with OMS 2.6 https://github.com/OpenMS/OpenMS/pull/4541 .. but still in the tests
+pep.xml       pepxml
+pepXML        pepxml
+png           png
+PNG           png
+protXML       protxml
+psms          psms
+# TODO implement or use
+# psq
+pqp           pqp
+qcML          qcml
+spec.xml      spec.xml
+splib         splib
+sqMass        sqmass
+tandem.xml    tandem
+trafoXML      trafoxml
+traML         traml
+TraML         traml
+tab           tabular
+## MOVED TO TOP txt           txt
+raw           thermo.raw
+## xls: SpectraSTSearchAdapter https://github.com/OpenMS/OpenMS/pull/4419
+xls           tsv
+XML           xml
+xml           xml
+xquest.xml    xquest.xml
+xsd           xml
+
+# TODO needs to be implemented, needs to be below xml in order that Galaxy->OMS mapping gives xml
+# cachedMzML    xml
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fill_ctd.py	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,196 @@
+import collections
+import json
+import operator
+import os
+import re
+import subprocess
+import sys
+from functools import reduce  # forward compatibility for Python 3
+
+from CTDopts.CTDopts import (
+    _Choices,
+    _InFile,
+    _Null,
+    _NumericRange,
+    CTDModel
+)
+
+
+def getFromDict(dataDict, mapList):
+    return reduce(operator.getitem, mapList, dataDict)
+
+
+def setInDict(dataDict, mapList, value):
+    getFromDict(dataDict, mapList[:-1])[mapList[-1]] = value
+
+
+def mergeDicts(d, e):
+    """
+    insert values from the dict e into dict d
+    no values of d are overwritten
+    """
+    for k, v in e.items():
+        if (k in d and isinstance(d[k], dict) and isinstance(e[k], collections.abc.Mapping)):
+            mergeDicts(d[k], e[k])
+        elif k not in d and not isinstance(e[k], collections.abc.Mapping):
+            d[k] = e[k]
+        else:
+            sys.stderr.write("fill_ctd.py: could not merge key %s for %s in %s" % (k, d, e))
+            sys.exit(1)
+
+
+def _json_object_hook_noenvlookup(d):
+    return _json_object_hook(d, envlookup=False)
+
+
+def _json_object_hook(d, envlookup=True):
+    """
+    wee helper to transform the json written by galaxy
+    while loading
+    - True/False (bool objects) -> "true"/"false" (lowercase string)
+    - data inputs with multiple and optional true give [None] if no file is given -> []
+    - None -> "" (empty string)
+    - replace bash expressions (if envlookup is True):
+      - environment variables (need to consist capital letters and _) by their value
+      - expressions
+    """
+    for k in d.keys():
+        # if type(d[k]) is bool:
+        #     d[k] = str(d[k]).lower()
+        # else
+        if type(d[k]) is list and len(d[k]) == 1 and d[k][0] is None:
+            d[k] = []
+        elif d[k] is None:
+            d[k] = ""
+        elif envlookup and type(d[k]) is str and d[k].startswith("$"):
+            m = re.fullmatch(r"\$([A-Z_]+)", d[k])
+            if m:
+                d[k] = os.environ.get(m.group(1), "")
+                continue
+            m = re.fullmatch(r"\$(\{[A-Z_]+):-(.*)\}", d[k])
+            if m:
+                d[k] = os.environ.get(m.group(1), m.group(2))
+                continue
+
+            try:
+                p = subprocess.run("echo %s" % d[k], shell=True, check=True, stdout=subprocess.PIPE, encoding="utf8")
+                d[k] = p.stdout.strip()
+            except subprocess.CalledProcessError:
+                sys.stderr.write("fill_ctd error: Could not evaluate %s" % d[k])
+                continue
+    return d
+
+
+def qstring2list(qs):
+    """
+    transform a space separated string that is quoted by " into a list
+    """
+    lst = list()
+    qs = qs.split(" ")
+    quoted = False
+    for p in qs:
+        if p == "":
+            continue
+        if p.startswith('"') and p.endswith('"'):
+            lst.append(p[1:-1])
+        elif p.startswith('"'):
+            quoted = True
+            lst.append(p[1:] + " ")
+        elif p.endswith('"'):
+            quoted = False
+            lst[-1] += p[:-1]
+        else:
+            if quoted:
+                lst[-1] += p + " "
+            else:
+                lst.append(p)
+    return lst
+
+
+def fix_underscores(args):
+    if type(args) is dict:
+        for k in list(args.keys()):
+            v = args[k]
+            if type(v) is dict:
+                fix_underscores(args[k])
+            if k.startswith("_"):
+                args[k[1:]] = v
+                del args[k]
+    elif type(args) is list:
+        for i, v in enumerate(args):
+            if type(v) is dict:
+                fix_underscores(args[i])
+
+
+input_ctd = sys.argv[1]
+
+# load user specified parameters from json
+with open(sys.argv[2]) as fh:
+    args = json.load(fh, object_hook=_json_object_hook_noenvlookup)
+
+# load hardcoded parameters from json
+with open(sys.argv[3]) as fh:
+    hc_args = json.load(fh, object_hook=_json_object_hook)
+
+# insert the hc_args into the args
+mergeDicts(args, hc_args)
+
+if "adv_opts_cond" in args:
+    args.update(args["adv_opts_cond"])
+    del args["adv_opts_cond"]
+
+# IDMapper has in and spectra:in params, in is used in out as format_source",
+# which does not work in Galaxy: https://github.com/galaxyproject/galaxy/pull/9493"
+# therefore hardcoded params change the name of spectra:in to spectra:_in
+# which is corrected here again
+# TODO remove once PR is in and adapt profile accordingly
+fix_underscores(args)
+
+model = CTDModel(from_file=input_ctd)
+
+# transform values from json that correspond to
+# - old style booleans (string + restrictions) -> transformed to a str
+# - new style booleans that get a string (happens for hidden parameters [-test])
+#   are transformed to a bool
+# - unrestricted ITEMLIST which are represented as strings
+#   ("=quoted and space separated) in Galaxy -> transform to lists
+# - optional data input parameters that have defaults and for which no
+#   value is given -> overwritte with the default
+for p in model.get_parameters():
+
+    # check if the parameter is in the arguments from the galaxy tool
+    # (from the json file(s)), since advanced parameters are absent
+    # if the conditional is set to basic parameters
+    try:
+        getFromDict(args, p.get_lineage(name_only=True))
+    except KeyError:
+        # few tools use dashes in parameters which are automatically replaced
+        # by underscores by Galaxy. in these cases the dictionary needs to be
+        # updated (better: then dash and the underscore variant are in the dict)
+        # TODO might be removed later https://github.com/OpenMS/OpenMS/pull/4529
+        try:
+            lineage = [_.replace("-", "_") for _ in p.get_lineage(name_only=True)]
+            val = getFromDict(args, lineage)
+        except KeyError:
+            continue
+        else:
+            setInDict(args, p.get_lineage(name_only=True), val)
+
+    if p.type is str and type(p.restrictions) is _Choices and set(p.restrictions.choices) == set(["true", "false"]):
+        v = getFromDict(args, p.get_lineage(name_only=True))
+        setInDict(args, p.get_lineage(name_only=True), str(v).lower())
+    elif p.type is bool:
+        v = getFromDict(args, p.get_lineage(name_only=True))
+        if isinstance(v, str):
+            v = (v.lower() == "true")
+            setInDict(args, p.get_lineage(name_only=True), v)
+    elif p.is_list and (p.restrictions is None or type(p.restrictions) is _NumericRange):
+        v = getFromDict(args, p.get_lineage(name_only=True))
+        if type(v) is str:
+            setInDict(args, p.get_lineage(name_only=True), qstring2list(v))
+    elif p.type is _InFile and not (p.default is None or type(p.default) is _Null):
+        v = getFromDict(args, p.get_lineage(name_only=True))
+        if v in [[], ""]:
+            setInDict(args, p.get_lineage(name_only=True), p.default)
+
+model.write_ctd(input_ctd, arg_dict=args)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fill_ctd_clargs.py	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,40 @@
+#!/usr/bin/env python3
+from argparse import ArgumentParser
+from io import StringIO
+
+from CTDopts.CTDopts import (
+    CTDModel,
+    ModelTypeError,
+    Parameters
+)
+
+if __name__ == "__main__":
+    # note add_help=False since otherwise arguments starting with -h will
+    # trigger an error (despite allow_abbreviate)
+    parser = ArgumentParser(prog="fill_ctd_clargs",
+                            description="fill command line arguments"
+                            "into a CTD file and write the CTD file to",
+                            add_help=False, allow_abbrev=False)
+    parser.add_argument("--ctd", dest="ctd", help="input ctd file",
+                        metavar='CTD', default=None, required=True)
+    args, cliargs = parser.parse_known_args()
+    # load CTDModel
+    model = None
+    try:
+        model = CTDModel(from_file=args.ctd)
+    except ModelTypeError:
+        pass
+    try:
+        model = Parameters(from_file=args.ctd)
+    except ModelTypeError:
+        pass
+    assert model is not None, "Could not parse %s, seems to be no CTD/PARAMS" % (args.ctd)
+
+    # get a dictionary of the ctd arguments where the values of the parameters
+    # given on the command line are overwritten
+    margs = model.parse_cl_args(cl_args=cliargs, ignore_required=True)
+
+    # write the ctd with the values taken from the dictionary
+    out = StringIO()
+    ctd_tree = model.write_ctd(out, margs)
+    print(out.getvalue())
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/generate-foo.sh	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,222 @@
+#!/usr/bin/env bash
+
+# parse test definitions from OpenMS sources for a tool with a given id
+function get_tests2 {
+    id=$1
+    >&2 echo "generate tests for $id"
+    echo '<xml name="autotest_'"$id"'">'
+
+    # get the tests from the CMakeLists.txt
+    # 1st remove some tests
+    # - OpenSwathMzMLFileCacher with -convert_back argumen https://github.com/OpenMS/OpenMS/issues/4399
+    # - IDRipper PATH gets empty causing problems. TODO But overall the option needs to be handled differentlt
+    # - several tools with duplicated input (leads to conflict when linking)
+    # - TOFCalibration inputs we extension (also in prepare_test_data) https://github.com/OpenMS/OpenMS/pull/4525
+    # - MaRaCluster with -consensus_out (parameter blacklister: https://github.com/OpenMS/OpenMS/issues/4456)
+    # - FileMerger with mixed dta dta2d input (ftype can not be specified in the test, dta can not be sniffed)
+    # - some input files are originally in a subdir (degenerated cases/), but not in test-data
+    # - SeedListGenerator: https://github.com/OpenMS/OpenMS/issues/4404
+    # - OpenSwathAnalyzer 9/10: cachedMzML (not supported yet)
+    # - FeatureFinderIdentification name clash of two tests https://github.com/OpenMS/OpenMS/pull/5002
+    # - TODO SiriusAdapter https://github.com/OpenMS/OpenMS/pull/5010
+    CMAKE=$(cat $OPENMSGIT/src/tests/topp/CMakeLists.txt $OPENMSGIT/src/tests/topp/THIRDPARTY/third_party_tests.cmake  |
+        sed 's@${DATA_DIR_SHARE}/@@g' |
+        grep -v 'OpenSwathMzMLFileCacher .*-convert_back' |
+        sed 's/${TMP_RIP_PATH}/""/' |
+        grep -v "MaRaClusterAdapter.*-consensus_out"|
+        grep -v "FileMerger_1_input1.dta2d.*FileMerger_1_input2.dta " |
+        sed 's@degenerate_cases/@@g' |
+        grep -v 'TOPP_SeedListGenerator_3"' | 
+        egrep -v 'TOPP_OpenSwathAnalyzer_test_3"|TOPP_OpenSwathAnalyzer_test_4"' |
+	egrep -v '"TOPP_FeatureFinderIdentification_4"' | 
+	sed 's/\("TOPP_SiriusAdapter_4".*\)-sirius:database all\(.*\)/\1-sirius:database pubchem\2/')
+
+
+#         grep -v 'FileFilter.*-spectra:select_polarity ""' |
+#         grep -v 'MassTraceExtractor_2.ini ' |
+#         grep -v "FileMerger_6_input2.mzML.*FileMerger_6_input2.mzML" |
+#         grep -v "IDMerger_1_input1.idXML.*IDMerger_1_input1.idXML" |
+#         grep -v "degenerated_empty.idXML.*degenerated_empty.idXML" |
+#         grep -v "FeatureLinkerUnlabeledKD_1_output.consensusXML.*FeatureLinkerUnlabeledKD_1_output.consensusXML" |
+#         grep -v "FeatureLinkerUnlabeledQT_1_output.consensusXML.*FeatureLinkerUnlabeledQT_1_output.consensusXML" |
+
+    # 1st part is a dirty hack to join lines containing a single function call, e.g.
+    # addtest(....
+    #         ....)
+    echo "$CMAKE" | sed 's/#.*//; s/^\s*//; s/\s*$//' | grep -v "^#" | grep -v "^$"  | awk '{printf("%s@NEWLINE@", $0)}' | sed 's/)@NEWLINE@/)\n/g' | sed 's/@NEWLINE@/ /g' | 
+        grep -iE "add_test\(\"(TOPP|UTILS)_.*/$id " | egrep -v "_prepare\"|_convert|WRITEINI|WRITECTD|INVALIDVALUE"  | while read -r line
+    do
+        line=$(echo "$line" | sed 's/add_test("\([^"]\+\)"/\1/; s/)$//; s/\${TOPP_BIN_PATH}\///g;s/\${DATA_DIR_TOPP}\///g; s#THIRDPARTY/##g')
+        # >&2 echo $line
+        test_id=$(echo "$line" | cut -d" " -f 1)
+        tool_id=$(echo "$line" | cut -d" " -f 2)
+        if [[ $test_id =~ _out_?[0-9]? ]]; then
+            >&2 echo "    skip $test_id $line"
+            continue
+        fi
+        if [[ ${id,,} != ${tool_id,,} ]]; then
+            >&2 echo "    skip $test_id ($id != $tool_id) $line"
+            continue
+        fi
+
+        #remove tests with set_tests_properties(....PROPERTIES WILL_FAIL 1)
+        if grep -lq "$test_id"'\".* PROPERTIES WILL_FAIL 1' $OPENMSGIT/src/tests/topp/CMakeLists.txt $OPENMSGIT/src/tests/topp/THIRDPARTY/third_party_tests.cmake; then
+            >&2 echo "    skip failing "$test_id
+            continue
+        fi
+        tes="  <test>\n"
+        line=$(fix_tmp_files "$line")
+        line=$(unique_files "$line")
+        # >&2 echo $line
+        #if there is an ini file then we use this to generate the test
+        #otherwise the ctd file is used
+        #other command line parameters are inserted later into this xml
+        if grep -lq "\-ini" <<<"$line"; then
+            ini=$(echo $line | sed 's/.*-ini \([^ ]\+\).*/\1/')
+            ini="test-data/$ini"
+        else
+            ini="ctd/$tool_id.ctd"
+        fi
+        cli=$(echo $line |cut -d" " -f3- | sed 's/-ini [^ ]\+//')
+
+        ctdtmp=$(mktemp)
+        #echo python3 fill_ctd_clargs.py --ctd $ini $cli
+        # using eval: otherwise for some reason quoted values are not used properly ('A B' -> ["'A", "B'"])
+        # >&2 echo "python3 fill_ctd_clargs.py --ctd $ini $cli"
+        eval "python3 fill_ctd_clargs.py --ctd $ini $cli" > "$ctdtmp"
+        # echo $ctdtmp
+        # >&2 cat $ctdtmp
+        testtmp=$(mktemp)
+        python3 $CTDCONVERTER/convert.py galaxy -i $ctdtmp -o $testtmp -s tools_blacklist.txt -f "$FILETYPES" -m macros.xml -t tool.conf  -p hardcoded_params.json --tool-version $VERSION --test-only --test-unsniffable csv tsv txt dta dta2d edta mrm splib > /dev/null
+        cat $testtmp | grep -v '<output.*file=""' # | grep -v 'CHEMISTRY/'
+        rm $ctdtmp $testtmp
+
+        #> /dev/null
+
+        #rm $testtmp
+    done 
+    echo '</xml>'
+}
+
+#some tests use the same file twice which does not work in planemo tests
+#hence we create symlinks for each file used twice
+function unique_files {
+    line=$@
+    for arg in $@
+    do
+        if [[ ! -f "test-data/$arg" ]]; then
+            continue
+        fi
+        cnt=$(grep -c $arg <<< $(echo "$line" | tr ' ' '\n'))
+        while [[ $cnt -gt 1 ]]; do
+            new_arg=$(echo $arg | sed "s/\(.*\)\./\1_$cnt./")
+            ln -fs $arg test-data/$new_arg
+            line=$(echo $line | sed "s/\($arg.*\)$arg/\1$new_arg/")
+            cnt=$(grep -c $arg <<< $(echo "$line" | tr ' ' '\n'))
+        done
+    done
+
+    echo $line
+}
+
+# options of out_type selects need to be fixed to Galaxy data types
+function fix_out_type {
+    grep "^$1" "$2" | awk '{print $2}'
+}
+
+#OpenMS tests output to tmp files and compare with FuzzyDiff to the expected file.
+#problem: the extension of the tmp files is unusable for test generation.
+#unfortunately the extensions used in the DIFF lines are not always usable for the CLI
+#(e.g. for prepare_test_data, e.g. CLI expects csv but test file is txt)
+#this function replaces the tmp file by the expected file. 
+function fix_tmp_files {
+#    >&2 echo "FIX $line"
+    ret=""
+    for a in $@; do
+        if [[ ! $a =~ .tmp$ ]]; then
+            ret="$ret $a"
+            continue
+        fi
+#        >&2 echo "    a "$a
+        g=$(cat $OPENMSGIT/src/tests/topp/CMakeLists.txt $OPENMSGIT/src/tests/topp/THIRDPARTY/third_party_tests.cmake | awk '{printf("%s@NEWLINE@", $0)}' | sed 's/)@NEWLINE@/)\n/g' | sed 's/@NEWLINE@/ /g' | grep '\${DIFF}.*'"$a")
+#        >&2 echo "    g "$g
+        in1=$(sed 's/.*-in1 \([^ ]\+\).*/\1/' <<<$g)
+        # >&2 echo "    in1 "$in1
+        if [[  "$a" != "$in1" ]]; then
+            ret="$ret $a"
+            continue
+        fi
+        in2=$(sed 's/.*-in2 \([^ ]\+\).*/\1/' <<<$g)
+        in2=$(basename $in2 | sed 's/)$//')
+        # >&2 echo "    in2 "$in2
+        if [[ -f "test-data/$in2" ]]; then
+            ln -fs "$in1" "test-data/$in2"
+            ret="$ret $in2"
+        else
+            ret="$ret $a"
+        fi
+    done
+#    >&2 echo "--> $ret"
+    echo "$ret"
+}
+
+function link_tmp_files {
+    # note this also considers commented lines (starting with a #)
+    # because of tests where the diff command is commented and we
+    # still want to use the extension of these files
+    cat $OPENMSGIT/src/tests/topp/CMakeLists.txt $OPENMSGIT/src/tests/topp/THIRDPARTY/third_party_tests.cmake | sed 's/^\s*//; s/\s*$//' | grep -v "^$"  | awk '{printf("%s@NEWLINE@", $0)}' | sed 's/)@NEWLINE@/)\n/g' | sed 's/@NEWLINE@/ /g' | grep "\${DIFF}" | while read -r line
+    do
+        in1=$(sed 's/.*-in1 \([^ ]\+\).*/\1/' <<<$line)
+        in1=$(basename $in1 | sed 's/)$//')
+        in2=$(sed 's/.*-in2 \([^ ]\+\).*/\1/' <<<$line)
+        in2=$(basename $in2 | sed 's/)$//')
+        if [[ "$in1" == "$in2" ]]; then
+            >&2 echo "not linking equal $in1 $in2"
+            continue
+        fi
+        ln -f -s $in1 test-data/$in2
+    done
+    for i in test-data/*.tmp
+    do
+        if [ ! -e test-data/$(basename $i .tmp) ]; then
+            ln -s $(basename $i) test-data/$(basename $i .tmp)
+            #ln -s $(basename $i) test-data/$(basename $i .tmp)
+        else
+            ln -fs $(basename $i) test-data/$(basename $i .tmp)
+        fi
+    done
+}
+
+
+
+# parse data preparation calls from OpenMS sources for a tool with a given id
+function prepare_test_data {
+#     id=$1
+# | egrep -i "$id\_.*[0-9]+(_prepare\"|_convert)?"
+
+# TODO SiriusAdapter https://github.com/OpenMS/OpenMS/pull/5010
+    cat $OPENMSGIT/src/tests/topp/CMakeLists.txt  $OPENMSGIT/src/tests/topp/THIRDPARTY/third_party_tests.cmake | sed 's/#.*$//'| sed 's/^\s*//; s/\s*$//' | grep -v "^$"  | awk '{printf("%s@NEWLINE@", $0)}' | sed 's/)@NEWLINE@/)\n/g' | sed 's/@NEWLINE@/ /g' | 
+        sed 's/degenerate_cases\///' | 
+        egrep -v "WRITEINI|WRITECTD|INVALIDVALUE|DIFF" | 
+        grep add_test | 
+        egrep "TOPP|UTILS" |
+        sed 's@${DATA_DIR_SHARE}/@@g;'|
+        sed 's@${TMP_RIP_PATH}@dummy2.tmp@g'|
+        sed 's@TOFCalibration_ref_masses @TOFCalibration_ref_masses.txt @g; s@TOFCalibration_const @TOFCalibration_const.csv @'| 
+	sed 's/\("TOPP_SiriusAdapter_4".*\)-sirius:database all\(.*\)/\1-sirius:database pubchem\2/' |
+    while read line
+    do
+        test_id=$(echo "$line" | sed 's/add_test(//; s/"//g;  s/)[^)]*$//; s/\${TOPP_BIN_PATH}\///g;s/\${DATA_DIR_TOPP}\///g; s#THIRDPARTY/##g' | cut -d" " -f1)
+
+        if grep -lq "$test_id"'\".* PROPERTIES WILL_FAIL 1' $OPENMSGIT/src/tests/topp/CMakeLists.txt $OPENMSGIT/src/tests/topp/THIRDPARTY/third_party_tests.cmake; then
+            >&2 echo "    skip failing "$test_id
+            continue
+        fi
+
+        line=$(echo "$line" | sed 's/add_test("//; s/)[^)]*$//; s/\${TOPP_BIN_PATH}\///g;s/\${DATA_DIR_TOPP}\///g; s#THIRDPARTY/##g' | cut -d" " -f2-)
+        # line="$(fix_tmp_files $line)"
+        echo 'echo executing "'$test_id'"'
+	echo "$line > $test_id.stdout 2> $test_id.stderr"
+        echo "if [[ \"\$?\" -ne \"0\" ]]; then >&2 echo '$test_id failed'; >&2 echo -e \"stderr:\n\$(cat $test_id.stderr | sed 's/^/    /')\"; echo -e \"stdout:\n\$(cat $test_id.stdout)\";fi"    
+    done
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/generate.sh	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,76 @@
+#!/usr/bin/env bash
+
+VERSION=2.6
+FILETYPES="filetypes.txt"
+PROFILE="20.05"
+## FILETYPES_RE=$(grep -v "^#" $FILETYPES | grep -v "^$" | cut -f 1 -d" " | tr '\n' '|' | sed 's/|$//'| sed 's/|/\\|/g')
+
+export tmp=$(mktemp -d)
+export CTDCONVERTER="$tmp/CTDConverter"
+
+###############################################################################
+## reset old data
+###############################################################################
+# rm $(ls *xml |grep -v macros)
+# rm -rf ctd
+# mkdir -p ctd
+# echo "" > prepare_test_data.sh
+
+###############################################################################
+## generate tests
+## also creates 
+## - conda environment (for executing the binaries) and 
+## - the git clone of OpenMS (for generating the tests)
+## - ctd files
+###############################################################################
+bash ./test-data.sh ./macros_autotest.xml
+
+###############################################################################
+## get the 
+## - conda package (for easy access and listing of the OpenMS binaries), 
+###############################################################################
+# if [ ! -d $OPENMSPKG ]; then
+# 	mkdir $OPENMSPKG/
+# 	wget -P $OPENMSPKG/ "$CONDAPKG"
+# 	tar -xf $OPENMSPKG/"$(basename $CONDAPKG)" -C OpenMS$VERSION-pkg/
+#   rm $OPENMSPKG/"$(basename $CONDAPKG)"
+# fi
+
+###############################################################################
+## Get python libaries for CTD -> Galaxy conversion
+## TODO fix to main repo OR conda packkage if PRs are merged 
+###############################################################################
+# if [ ! -d CTDopts ]; then
+# 	# git clone https://github.com/genericworkflownodes/CTDopts CTDopts
+# 	git clone -b topic/no-1-2x https://github.com/bernt-matthias/CTDopts CTDopts
+# fi
+if [ ! -d $CTDCONVERTER ]; then
+	#git clone https://github.com/WorkflowConversion/CTDConverter.git CTDConverter
+	git clone -b topic/cdata https://github.com/bernt-matthias/CTDConverter.git $CTDCONVERTER
+fi
+# export PYTHONPATH=$(pwd)/CTDopts
+###############################################################################
+## conversion ctd->xml 
+###############################################################################
+
+find . -maxdepth 0 -name "[A-Z]*xml" -delete
+source $(dirname $(which conda))/../etc/profile.d/conda.sh
+conda activate $tmp/OpenMS$VERSION-env
+python $CTDCONVERTER/convert.py galaxy -i ctd/*ctd -o ./ -s tools_blacklist.txt -f "$FILETYPES" -m macros.xml -t tool.conf  -p hardcoded_params.json --test-macros macros_autotest.xml --test-macros-prefix autotest_  --test-macros macros_test.xml --test-macros-prefix manutest_ --tool-version $VERSION --tool-profile $PROFILE > convert.out 2> convert.err
+if [[ "$?" -ne "0" ]]; then >&2 echo 'CTD -> XML conversion failed'; >&2 echo -e "stderr:\n$(cat convert.err)"; fi
+conda deactivate
+
+patch PepNovoAdapter.xml < PepNovoAdapter.patch
+patch OMSSAAdapter.xml < OMSSAAdapter.patch
+
+# https://github.com/OpenMS/OpenMS/pull/4984
+sed -i -e 's@http://www.openms.de/documentation/@http://www.openms.de/doxygen/release/2.6.0/html/@' ./*xml
+# https://github.com/OpenMS/OpenMS/pull/4984#issuecomment-702641976
+patch -p0 <404-urls.patch
+
+# #-b version log debug test in_type executable pepnovo_executable param_model_directory rt_concat_trafo_out param_id_pool
+
+# for i in A-E F-H I-L M-N O-P Q-Z
+# do
+# 	planemo t [$i]*xml --galaxy_branch release_20.05 --galaxy_python_version 3.7 --test_output $i.html --test_output_json $i.json &
+# done
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hardcoded_params.json	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,236 @@
+{
+	"#": "blacklist parameters",
+
+	"version": [{"value": "@"}],
+	"debug": [{"value": "@"}],
+	"algorithm:debug": [{"value": "@"}],
+	"java_memory": [{"value": "@"}],
+	"java_permgen": [{"value": "@"}],
+	"#": "type of input is always determined from the file extension ",
+	"in_type": [{"value": "@"}],
+
+	"#": "tool specific blacklist parameters",
+
+	"convert_back": [{"value": "@", "tools": ["OpenSwathMzMLFileCacher"]}],
+	"NET_executable": [{
+			"value": "@", 
+			"tools": ["FileConverter"]
+	}],
+
+
+	"params_file": [{"value": "@", "tools": ["SpectraSTSearchAdapter"]}],
+
+	"#": "TODO not usable in 2.5 https://github.com/OpenMS/OpenMS/issues/4456, corresponding test currently disabled",
+    	"consensus_out": [{"value": "@", "tools": ["MaRaClusterAdapter"]}],
+	"#": "TODO would need treatment as prefix-output",
+	"output_directory": [{"value": "@", "tools": ["MaRaClusterAdapter"]}],
+
+	"#": "hardcode parameter values",
+
+	"comet_version": [{
+		"value":"2016.01 rev. 3"
+	}],
+	"comet_executable": [{
+		"value":"comet"
+	}],
+	"crux_executable": [{
+		"value": "crux"
+	}],
+	"fido_executable": [{
+		"value":"Fido"
+	}],
+	"fidocp_executable": [{
+		"value":"FidoChooseParameters"
+	}],
+	"maracluster_executable": [{
+		"value":"/home/berntm/projects/tools-galaxyp/tools/openms/OpenMS2.5.0-git/THIRDPARTY/Linux/64bit/MaRaCluster/maracluster"
+	}],
+	"mascot_directory": [{
+		"value":"TODO"
+	}],
+	"myrimatch_executable": [{
+		"value":"myrimatch"
+	}],
+	"omssa_executable": [{
+		"value":"$(dirname $(realpath $(which omssacl)))/omssacl"
+	}],
+	"ThermoRaw_executable": [{
+		"value": "ThermoRawFileParser.exe", 
+		"tools": ["FileConverter"]
+	}],
+	"pepnovo_executable": [{
+		"value":"pepnovo"
+	}],
+	"percolator_executable": [{
+		"value":"percolator"
+	}],
+	"xtandem_executable": [{
+		"value":"xtandem"
+	}],
+	"executable": [
+		{
+			"value":"$(dirname $(realpath $(which luciphor2)))/luciphor2.jar",
+			"tools": ["LuciphorAdapter"]
+		}, {
+			"value":"/home/berntm/Downloads/MSFragger-20171106/MSFragger-20171106.jar",
+			"tools": ["MSFraggerAdapter"]
+		}, {
+			"value":"$(msgf_plus -get_jar_path)",
+			"tools": ["MSGFPlusAdapter"]
+		}, {
+			"value": "/home/berntm/Downloads/novor/lib/novor.jar",
+			"tools": ["NovorAdapter"]
+		}, {
+			"value":"$(which sirius)",
+			"tools": ["SiriusAdapter", "AssayGeneratorMetabo"]
+		}, {
+			"value":"spectrast",
+			"tools": ["SpectraSTSearchAdapter"]
+		}
+	],
+	"r_executable": [{
+		"value":"R"
+	}],
+	"rscript_executable": [{
+		"value":"Rscript"
+	}],
+	"java_executable": [{
+		"value":"java"
+	}],
+	"log": [{
+		"value":"log.txt"
+	}],
+	"tempDirectory": [{
+		"value":"$TMP_DIR"
+	}],
+	"temp_data_directory": [{
+		"value":"$TMP_DIR"
+	}],
+	"algorithm:Preprocessing:tmp_dir": [{
+		"value":"$TMP_DIR"
+	}],
+	"no_progress": [{
+		"value": true
+	}],
+	"#": "only used in LuciphorAdapter at the moment, inconsistency will be fixed",
+	"num_threads": [{
+		"value":"${GALAXY_SLOTS:-1}"
+	}],
+	"threads": [{
+		"value": "${GALAXY_SLOTS:-1}"
+	}],
+	"sirius:cores": [{
+		"value": "${GALAXY_SLOTS:-1}"
+	}],
+
+	"#": "hardcode the outer loop threads for OpenSwathWorkflow",
+	"outer_loop_threads": [{
+			"value": "1", 
+			"tools": ["OpenSwathWorkflow"]
+	}],
+	"separator": [{
+		"value": ",",
+		"tools": ["IDMassAccuracy"]
+	}],
+
+	"#": "don't alow to copy data internally to save computation time for reloading",
+	"copy_data": [{
+		"value": "false",
+		"tools": ["MapAlignerTreeGuided"]
+	}],
+
+	"#": "overwrite/add Galaxy xml attributes of some parameters (names need to start with param_)",
+
+	"#": "test is not a hardcoded value since we need to set it in the tool tests", 
+	"test": [{
+		"CTD:type": "text",
+		"XML:type": "hidden"
+	}],
+
+	"#": "overwrite CTD attributes of some parameters (some are not possible, e.g. type)",
+
+	"#": "for some tools the user needs to select the desired output type since detection by extension makes no sense for galaxy tools",
+	"out_type": [{
+	    "CTD:required": true,
+	    "CTD:advanced": false
+	}],
+
+	"#": "SeedListGenerator with consensusXML input needs a dynamic number of outputs that depends on the content of the input, so we remove this options at the moment because its hard or impossible to implement in Galaxy, https://github.com/OpenMS/OpenMS/issues/4404 .. see also in parameter",
+	"#": "FileInfo, MapStatistics, SequenceCoverageCalculator wo -out just writes to stdout. not wanted here",
+	"#": "MzMLSplitter output prefix https://github.com/OpenMS/OpenMS/issues/4404",
+	"#": "IDRipper: blacklist out (is doing the same as the output-prefix out-path)",
+	"out": [{
+		"CTD:is_list": false, 
+		"tools": ["SeedListGenerator"]
+	}, {
+	 	"CTD:required": true,
+		"tools": ["FileInfo", "MapStatistics", "SequenceCoverageCalculator"]
+	}, {
+		"CTD:type": "output-prefix", 
+		"CTD:required": true,
+		"CTD:restrictions": "mzml",
+		"tools": ["MzMLSplitter"]
+	}, {
+		"value": "@", 
+		"tools": ["IDRipper"]
+	}],
+
+	"#": "Try to remove xml data type whereever possible",
+	"#": "XTandem Adapter output is called .xml in OMS which is to unspecific -> use Galaxy's bioml",
+	"xml_out": [{
+		"CTD:restrictions": "bioml",
+		"tools": ["XTandemAdapter"]
+	}],
+	
+	"#": "IDFileConverter remove xml",
+	"#": "OpenSwathWorkflow make in single file input and all outputs non-optional",
+        "#": "XFDR does not need xml .. redundant with xquest.xml TODO check if list is up to date with each new release",
+	"#": "SeedListGenerator: remove consensusXML https://github.com/OpenMS/OpenMS/issues/4404 .. see also out parameter",
+	"in": [{
+		"CTD:restrictions": "pepXML,protXML,mascotXML,omssaXML,bioml,psms,tsv,idXML,mzid,xquest.xml",
+		"tools": ["IDFileConverter"]
+	}, {
+		"CTD:is_list": false, 
+		"tools": ["OpenSwathWorkflow"]
+	}, {
+		"CTD:restrictions": "idXML,mzid,xquest.xml",
+		"tools": ["XFDR"]
+	}, {
+		"CTD:restrictions": "mzML,idXML,featureXML",
+		"tools": ["SeedListGenerator"]
+	}],
+
+	"#": "IDMapper has in and spectra:in params, in is used in out as format_source",
+	"#": "which does not work in Galaxy: https://github.com/galaxyproject/galaxy/pull/9493", 
+	"spectra:in": [{
+		"CTD:name": "_in", 
+		"tools": ["IDMapper"]
+	}],
+
+	"#": "hardcoding prefix parameters which are not yet available in OMS but in CTDOpts https://github.com/OpenMS/OpenMS/pull/4527",
+	"#": "output-prefix",
+	"out_path": [{
+		"CTD:type": "output-prefix", 
+		"CTD:required": true,
+		"CTD:restrictions": "idXML",
+		"tools": ["IDRipper"]
+	}],
+	"outputDirectory": [{
+		"CTD:type": "output-prefix", 
+		"CTD:advanced": false,
+		"CTD:required": true,
+		"CTD:restrictions": "mzml",
+		"tools": ["OpenSwathFileSplitter"]
+	}],
+
+	"#": "OpenSwathDIAPreScoring: https://github.com/OpenMS/OpenMS/pull/4443",
+        "#": "SpectraSTSearchAdapter does not need xml .. redundant with pep.xml TODO check if list is up to date with each new release",
+	"output_files": [{
+		"CTD:required": true,
+		"tools": ["OpenSwathDIAPreScoring"]
+	}, {
+		"CTD:restrictions": "txt,tsv,pep.xml,pepXML,html",
+		"tools": ["SpectraSTSearchAdapter"]
+	
+	}]
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,128 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- CTD2Galaxy depends on this file and on the stdio, advanced_options macros!
+     You can edit this file to add your own macros, if you so desire, or you can
+     add additional macro files using the m/macros parameter -->
+<macros>
+  <token name="@TOOL_VERSION@">2.6</token>
+  <token name="@GALAXY_VERSION@">0</token>
+  <xml name="requirements">
+    <requirements>
+      <requirement type="package" version="@TOOL_VERSION@">openms</requirement>
+      <requirement type="package" version="@TOOL_VERSION@">openms-thirdparty</requirement>
+      <!-- makeblastdb for OMSSAAdapter -->
+      <requirement type="package" version="2.9.0">blast</requirement>
+      <!--<requirement type="package" version="5.0.0">tpp</requirement>-->
+      <!-- for realpath (used e.g. in LuciphorAdapter) -->
+	  <!--<requirement type="package" version="8.25">coreutils</requirement>-->
+	  <requirement type="package" version="1.4">ctdopts</requirement>
+      <yield/>
+    </requirements>
+  </xml>
+  <xml name="stdio">
+    <stdio>
+      <regex match="Could not allocate metaspace" level="fatal_oom" description="Java memory Exception"/>
+      <regex match="Cannot create VM thread" level="fatal_oom" description="Java memory Exception"/>
+      <regex match="qUncompress: could not allocate enough memory to uncompress data" level="fatal_oom" description="Java memory Exception"/>
+    </stdio>
+  </xml>
+  <xml name="references">
+    <citations>
+      <citation type="doi">doi:10.1186/1471-2105-9-163</citation>
+    </citations>
+  </xml>
+  <xml name="adv_opts_macro">
+    <conditional name="adv_opts_cond">
+      <param name="adv_opts_selector" type="select" label="Advanced Options">
+        <option value="basic" selected="True">Hide Advanced Options</option>
+        <option value="advanced">Show Advanced Options</option>
+      </param>
+      <when value="basic"/>
+      <when value="advanced">
+        <yield/>
+      </when>
+    </conditional>
+  </xml>
+
+  <!-- sanitizers and validators -->
+  <xml name="list_string_val">
+    <validator type="regex" message="parameter must not start with $">^[^$]</validator>
+    
+    <validator type="regex" message="a space separated list of string is needed (strings that contain spaces can be quoted with &quot;)">^ *((?:\"[^\"]*\" +)|(?:[^ \"]+ +))*((?:\"[^\"]*\")|(?:[^ \"]+)) *$</validator>
+  </xml>
+  <xml name="list_string_san">
+    <sanitizer>
+      <valid initial="string.printable">
+<!--        <remove value="'"/>-->
+<!--        <remove value="\"/>--><!-- otherwise the user could quote the final quote -->
+<!--        <remove value="`"/>-->
+<!--        <remove value="$"/>-->
+<!--        <remove value="&lt;"/>-->
+	<!--<remove value="&amp;"/> removed for MascotAdapterOnline -Mascot_server:export_params which is a URL POST string which can contain & .. could be mapped to &amp; but there is still a & -->
+        <!--<remove value=";"/>-->
+<!--        <remove value="#"/>-->
+      </valid>
+    </sanitizer>
+  </xml>
+  <xml name="list_float_valsan">
+    <validator type="regex" message="a space separated list of float values is required">^ *[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?( *[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)* *$</validator>
+    <yield/>
+    <sanitizer>
+      <valid initial="string.digits">
+        <add value=" "/>
+        <add value="."/>
+        <add value="E"/>
+        <add value="e"/>
+        <add value="+"/>
+        <add value="-"/>
+      </valid>
+    </sanitizer>
+  </xml>
+  <xml name="list_integer_valsan">
+    <validator type="regex" message="a space separated list of integer values is required">^ *[+-]?[0-9]+( *[+-]?[0-9]+)* *$</validator>
+    <yield/>
+    <sanitizer>
+      <valid initial="string.digits">
+        <add value=" "/>
+        <add value="+"/>
+        <add value="-"/>
+      </valid>
+    </sanitizer>
+  </xml>
+
+  <!-- helper function to quote space separated strings -->
+  <token name="@QUOTE_FOO@">
+#def quote(s):
+    #set $s = [ _ for _ in $s.split(" ") if _ != "" ]
+    #set $q = False
+    #for $i, $p in enumerate($s):
+        #if $p == "":
+            #continue
+        #end if
+        #if $p.startswith('"'):
+            #set $q = True
+        #end if
+##        #if p.startswith('-'):
+##            #set p = "\\" + p
+##        #elif p.startswith('"-'):
+##            #set p = "\\" + p[1:]
+##        #end if
+        #if not $q:
+            #set $s[i] = '"%s"' % p
+        #end if
+        #if $p.endswith('"'):
+            #set $q = False
+        #end if
+    #end for
+    #return " ".join($s)
+#end def
+  </token>
+
+<token name="@EXT_FOO@"><![CDATA[#def oms2gxyext(o)
+    #set m={'txt': 'txt', 'tsv': 'tabular', 'bioml': 'xml', 'consensusXML': 'consensusxml', 'csv': 'csv', 'dta': 'dta', 'dta2d': 'dta2d', 'edta': 'edta', 'fa': 'fasta', 'fas': 'fasta', 'fasta': 'fasta', 'FASTA': 'fasta', 'featureXML': 'featurexml', 'featurexml': 'featurexml', 'html': 'html', 'HTML': 'html', 'idXML': 'idxml', 'json': 'json', 'kroenik': 'kroenik', 'mascotXML': 'mascotxml', 'mgf': 'mgf', 'mrm': 'mrm', 'ms': 'sirius.ms', 'ms2': 'ms2', 'msp': 'msp', 'mzData': 'mzdata', 'mzid': 'mzid', 'mzML': 'mzml', 'mzml': 'mzml', 'mzq': 'mzq', 'mzTab': 'mztab', 'mzXML': 'mzxml', 'novor': 'txt', 'obo': 'obo', 'omssaXML': 'idxml', 'osw': 'osw', 'OSW': 'osw', 'params': 'txt', 'paramXML': 'paramxml', 'peplist': 'peplist', 'pep.xml': 'pepxml', 'pepXML': 'pepxml', 'png': 'png', 'PNG': 'png', 'protXML': 'protxml', 'psms': 'psms', 'pqp': 'pqp', 'qcML': 'qcml', 'spec.xml': 'spec.xml', 'splib': 'splib', 'sqMass': 'sqmass', 'tandem.xml': 'tandem', 'trafoXML': 'trafoxml', 'traML': 'traml', 'TraML': 'traml', 'tab': 'tabular', 'raw': 'thermo.raw', 'xls': 'tsv', 'XML': 'xml', 'xml': 'xml', 'xquest.xml': 'xquest.xml', 'xsd': 'xml'}
+    #return m[o]
+#end def
+#def gxy2omsext(g)
+    #set m={'txt': 'txt', 'tabular': 'tsv', 'xml': 'bioml', 'consensusxml': 'consensusXML', 'csv': 'csv', 'dta': 'dta', 'dta2d': 'dta2d', 'edta': 'edta', 'fasta': 'fa', 'featurexml': 'featureXML', 'html': 'html', 'idxml': 'idXML', 'json': 'json', 'kroenik': 'kroenik', 'mascotxml': 'mascotXML', 'mgf': 'mgf', 'mrm': 'mrm', 'sirius.ms': 'ms', 'ms2': 'ms2', 'msp': 'msp', 'mzdata': 'mzData', 'mzid': 'mzid', 'mzml': 'mzML', 'mzq': 'mzq', 'mztab': 'mzTab', 'mzxml': 'mzXML', 'obo': 'obo', 'osw': 'osw', 'paramxml': 'paramXML', 'peff': 'fasta', 'peplist': 'peplist', 'pepxml': 'pep.xml', 'png': 'png', 'protxml': 'protXML', 'psms': 'psms', 'pqp': 'pqp', 'qcml': 'qcML', 'spec.xml': 'spec.xml', 'splib': 'splib', 'sqmass': 'sqMass', 'tandem': 'tandem.xml', 'trafoxml': 'trafoXML', 'traml': 'traML', 'thermo.raw': 'raw', 'tsv': 'xls', 'xquest.xml': 'xquest.xml'}
+    #return m[g]
+#end def
+]]></token></macros>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/macros_autotest.xml	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,27205 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<macros>
+  <xml name="autotest_AccurateMassSearch">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ConsensusMapNormalizer_input.consensusXML"/>
+      <output name="out" file="AccurateMassSearch_1_output.tmp.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>
+      <param name="positive_adducts" value="CHEMISTRY/PositiveAdducts.tsv" ftype="tabular"/>
+      <param name="negative_adducts" value="CHEMISTRY/NegativeAdducts.tsv" ftype="tabular"/>
+      <section name="db">
+        <param name="mapping" value="CHEMISTRY/HMDBMappingFile.tsv" ftype="tabular"/>
+        <param name="struct" value="CHEMISTRY/HMDB2StructMapping.tsv" ftype="tabular"/>
+      </section>
+      <section name="algorithm">
+        <param name="mass_error_value" value="5.0"/>
+        <param name="mass_error_unit" value="ppm"/>
+        <param name="ionization_mode" value="positive"/>
+        <param name="isotopic_similarity" value="false"/>
+        <param name="use_feature_adducts" value="false"/>
+        <param name="keep_unidentified_masses" value="false"/>
+        <section name="mzTab">
+          <param name="exportIsotopeIntensities" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="AccurateMassSearch_2_input.featureXML"/>
+      <output name="out" file="AccurateMassSearch_2_output.tmp.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>
+      <output name="out_annotation" file="AccurateMassSearch_2_output.tmp.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="positive_adducts" value="AMS_PositiveAdducts.tsv" ftype="tabular"/>
+      <param name="negative_adducts" value="AMS_NegativeAdducts.tsv" ftype="tabular"/>
+      <section name="db">
+        <param name="mapping" value="AMS_test_Mapping.tsv" ftype="tabular"/>
+        <param name="struct" value="AMS_test_Struct.tsv" ftype="tabular"/>
+      </section>
+      <section name="algorithm">
+        <param name="mass_error_value" value="5.0"/>
+        <param name="mass_error_unit" value="ppm"/>
+        <param name="ionization_mode" value="positive"/>
+        <param name="isotopic_similarity" value="false"/>
+        <param name="use_feature_adducts" value="false"/>
+        <param name="keep_unidentified_masses" value="false"/>
+        <section name="mzTab">
+          <param name="exportIsotopeIntensities" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_annotation_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="AccurateMassSearch_2_input.featureXML"/>
+      <output name="out" file="AccurateMassSearch_3_output.tmp.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>
+      <output name="out_annotation" file="AccurateMassSearch_2_output.tmp.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="positive_adducts" value="AMS_PositiveAdducts.tsv" ftype="tabular"/>
+      <param name="negative_adducts" value="AMS_NegativeAdducts.tsv" ftype="tabular"/>
+      <section name="db">
+        <param name="mapping" value="AMS_test_Mapping.tsv" ftype="tabular"/>
+        <param name="struct" value="AMS_test_Struct.tsv" ftype="tabular"/>
+      </section>
+      <section name="algorithm">
+        <param name="mass_error_value" value="5.0"/>
+        <param name="mass_error_unit" value="ppm"/>
+        <param name="ionization_mode" value="positive"/>
+        <param name="isotopic_similarity" value="false"/>
+        <param name="use_feature_adducts" value="false"/>
+        <param name="keep_unidentified_masses" value="false"/>
+        <section name="mzTab">
+          <param name="exportIsotopeIntensities" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_annotation_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_AssayGeneratorMetabo">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="precursor_recalibration_window" value="0.1"/>
+        <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="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="AssayGeneratorMetabo_input.mzML"/>
+      <param name="in_id" value="AssayGeneratorMetabo_ffm_input.featureXML"/>
+      <param name="out_type" value="tsv"/>
+      <output name="out" file="AssayGeneratorMetabo_ffm_output.tmp.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="fragment_annotation" value="none"/>
+      <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="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"/>
+      <param name="out_workspace_directory" value=""/>
+      <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="0.005"/>
+        <param name="precursor_mz_tolerance_unit" value="Da"/>
+        <param name="precursor_rt_tolerance" value="5"/>
+        <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="sirius">
+        <param name="profile" value="qtof"/>
+        <param name="candidates" value="5"/>
+        <param name="database" value="all"/>
+        <param name="noise" value="0"/>
+        <param name="ppm_max" value="10"/>
+        <param name="isotope" value="both"/>
+        <param name="elements" value="CHNOP[5]S[8]Cl[1]"/>
+        <param name="compound_timeout" value="10"/>
+        <param name="tree_timeout" value="0"/>
+        <param name="top_n_hits" value="10"/>
+        <param name="auto_charge" value="false"/>
+        <param name="ion_tree" value="false"/>
+        <param name="no_recalibration" value="false"/>
+        <param name="most_intense_ms2" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="precursor_recalibration_window" value="0.1"/>
+        <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="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="AssayGeneratorMetabo_input.mzML"/>
+      <param name="in_id" value="AssayGeneratorMetabo_ams_input.featureXML"/>
+      <param name="out_type" value="tsv"/>
+      <output name="out" file="AssayGeneratorMetabo_ams_output.tmp.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="fragment_annotation" value="none"/>
+      <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="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"/>
+      <param name="out_workspace_directory" value=""/>
+      <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="0.005"/>
+        <param name="precursor_mz_tolerance_unit" value="Da"/>
+        <param name="precursor_rt_tolerance" value="5"/>
+        <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="sirius">
+        <param name="profile" value="qtof"/>
+        <param name="candidates" value="5"/>
+        <param name="database" value="all"/>
+        <param name="noise" value="0"/>
+        <param name="ppm_max" value="10"/>
+        <param name="isotope" value="both"/>
+        <param name="elements" value="CHNOP[5]S[8]Cl[1]"/>
+        <param name="compound_timeout" value="10"/>
+        <param name="tree_timeout" value="0"/>
+        <param name="top_n_hits" value="10"/>
+        <param name="auto_charge" value="false"/>
+        <param name="ion_tree" value="false"/>
+        <param name="no_recalibration" value="false"/>
+        <param name="most_intense_ms2" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="precursor_recalibration_window" value="0.1"/>
+        <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="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="AssayGeneratorMetabo_input.mzML"/>
+      <param name="in_id" value="AssayGeneratorMetabo_ffm_input.featureXML"/>
+      <param name="out_type" value="tsv"/>
+      <output name="out" file="AssayGeneratorMetabo_ffm_output_consensus.tmp.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="fragment_annotation" value="none"/>
+      <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="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"/>
+      <param name="out_workspace_directory" value=""/>
+      <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="0.005"/>
+        <param name="precursor_mz_tolerance_unit" value="Da"/>
+        <param name="precursor_rt_tolerance" value="5"/>
+        <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="sirius">
+        <param name="profile" value="qtof"/>
+        <param name="candidates" value="5"/>
+        <param name="database" value="all"/>
+        <param name="noise" value="0"/>
+        <param name="ppm_max" value="10"/>
+        <param name="isotope" value="both"/>
+        <param name="elements" value="CHNOP[5]S[8]Cl[1]"/>
+        <param name="compound_timeout" value="10"/>
+        <param name="tree_timeout" value="0"/>
+        <param name="top_n_hits" value="10"/>
+        <param name="auto_charge" value="false"/>
+        <param name="ion_tree" value="false"/>
+        <param name="no_recalibration" value="false"/>
+        <param name="most_intense_ms2" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="precursor_recalibration_window" value="0.1"/>
+        <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="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="AssayGeneratorMetabo_input.mzML"/>
+      <param name="in_id" value="AssayGeneratorMetabo_ams_input.featureXML"/>
+      <param name="out_type" value="tsv"/>
+      <output name="out" file="AssayGeneratorMetabo_ams_output_consensus.tmp.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="fragment_annotation" value="none"/>
+      <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="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"/>
+      <param name="out_workspace_directory" value=""/>
+      <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="0.005"/>
+        <param name="precursor_mz_tolerance_unit" value="Da"/>
+        <param name="precursor_rt_tolerance" value="5"/>
+        <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="sirius">
+        <param name="profile" value="qtof"/>
+        <param name="candidates" value="5"/>
+        <param name="database" value="all"/>
+        <param name="noise" value="0"/>
+        <param name="ppm_max" value="10"/>
+        <param name="isotope" value="both"/>
+        <param name="elements" value="CHNOP[5]S[8]Cl[1]"/>
+        <param name="compound_timeout" value="10"/>
+        <param name="tree_timeout" value="0"/>
+        <param name="top_n_hits" value="10"/>
+        <param name="auto_charge" value="false"/>
+        <param name="ion_tree" value="false"/>
+        <param name="no_recalibration" value="false"/>
+        <param name="most_intense_ms2" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="precursor_recalibration_window" value="0.1"/>
+        <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="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="AssayGeneratorMetabo_input.mzML"/>
+      <param name="in_id" value="AssayGeneratorMetabo_ams_input.featureXML"/>
+      <param name="out_type" value="tsv"/>
+      <output name="out" file="AssayGeneratorMetabo_ams_uku_output_consensus.tmp.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="fragment_annotation" value="none"/>
+      <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="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"/>
+      <param name="out_workspace_directory" value=""/>
+      <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="0.005"/>
+        <param name="precursor_mz_tolerance_unit" value="Da"/>
+        <param name="precursor_rt_tolerance" value="5"/>
+        <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="sirius">
+        <param name="profile" value="qtof"/>
+        <param name="candidates" value="5"/>
+        <param name="database" value="all"/>
+        <param name="noise" value="0"/>
+        <param name="ppm_max" value="10"/>
+        <param name="isotope" value="both"/>
+        <param name="elements" value="CHNOP[5]S[8]Cl[1]"/>
+        <param name="compound_timeout" value="10"/>
+        <param name="tree_timeout" value="0"/>
+        <param name="top_n_hits" value="10"/>
+        <param name="auto_charge" value="false"/>
+        <param name="ion_tree" value="false"/>
+        <param name="no_recalibration" value="false"/>
+        <param name="most_intense_ms2" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="precursor_recalibration_window" value="0.1"/>
+        <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="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="AssayGeneratorMetabo_input.mzML"/>
+      <param name="in_id" value="AssayGeneratorMetabo_ams_input.featureXML"/>
+      <param name="out_type" value="tsv"/>
+      <output name="out" file="AssayGeneratorMetabo_ams_sirius_output.tmp.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="fragment_annotation" value="sirius"/>
+      <param name="method" value="highest_intensity"/>
+      <param name="use_exact_mass" value="true"/>
+      <param name="exclude_ms2_precursor" value="false"/>
+      <param name="precursor_mz_distance" value="0.0001"/>
+      <param name="precursor_rt_tolerance" value="5.0"/>
+      <param name="use_known_unknowns" value="false"/>
+      <param name="min_transitions" value="2"/>
+      <param name="max_transitions" value="3"/>
+      <param name="cosine_similarity_threshold" value="0.98"/>
+      <param name="transition_threshold" value="3.0"/>
+      <param name="out_workspace_directory" value=""/>
+      <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"/>
+        <param name="isotope_pattern_iterations" value="3"/>
+        <param name="feature_only" value="true"/>
+        <param name="no_masstrace_info_isotope_pattern" value="false"/>
+      </section>
+      <section name="sirius">
+        <param name="profile" value="qtof"/>
+        <param name="candidates" value="5"/>
+        <param name="database" value="all"/>
+        <param name="noise" value="0"/>
+        <param name="ppm_max" value="10"/>
+        <param name="isotope" value="both"/>
+        <param name="elements" value="CHNOP[5]S[8]Cl[1]"/>
+        <param name="compound_timeout" value="100"/>
+        <param name="tree_timeout" value="0"/>
+        <param name="top_n_hits" value="10"/>
+        <param name="auto_charge" value="false"/>
+        <param name="ion_tree" value="false"/>
+        <param name="no_recalibration" value="false"/>
+        <param name="most_intense_ms2" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="precursor_recalibration_window" value="0.1"/>
+        <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="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="AssayGeneratorMetabo_input.mzML"/>
+      <param name="in_id" value="AssayGeneratorMetabo_ams_input.featureXML"/>
+      <param name="out_type" value="tsv"/>
+      <output name="out" file="AssayGeneratorMetabo_ams_sirius_ukn_output.tmp.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="fragment_annotation" value="sirius"/>
+      <param name="method" value="highest_intensity"/>
+      <param name="use_exact_mass" value="true"/>
+      <param name="exclude_ms2_precursor" value="false"/>
+      <param name="precursor_mz_distance" value="0.0001"/>
+      <param name="precursor_rt_tolerance" value="5.0"/>
+      <param name="use_known_unknowns" value="true"/>
+      <param name="min_transitions" value="2"/>
+      <param name="max_transitions" value="3"/>
+      <param name="cosine_similarity_threshold" value="0.98"/>
+      <param name="transition_threshold" value="3.0"/>
+      <param name="out_workspace_directory" value=""/>
+      <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"/>
+        <param name="isotope_pattern_iterations" value="3"/>
+        <param name="feature_only" value="true"/>
+        <param name="no_masstrace_info_isotope_pattern" value="false"/>
+      </section>
+      <section name="sirius">
+        <param name="profile" value="qtof"/>
+        <param name="candidates" value="5"/>
+        <param name="database" value="all"/>
+        <param name="noise" value="0"/>
+        <param name="ppm_max" value="10"/>
+        <param name="isotope" value="both"/>
+        <param name="elements" value="CHNOP[5]S[8]Cl[1]"/>
+        <param name="compound_timeout" value="100"/>
+        <param name="tree_timeout" value="0"/>
+        <param name="top_n_hits" value="10"/>
+        <param name="auto_charge" value="false"/>
+        <param name="ion_tree" value="false"/>
+        <param name="no_recalibration" value="false"/>
+        <param name="most_intense_ms2" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="precursor_recalibration_window" value="0.1"/>
+        <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="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="AssayGeneratorMetabo_intsort_input.mzML"/>
+      <param name="in_id" value="AssayGeneratorMetabo_intsort_input.featureXML"/>
+      <param name="out_type" value="tsv"/>
+      <output name="out" file="AssayGeneratorMetabo_ams_sirius_intsort_output.tmp.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="fragment_annotation" value="sirius"/>
+      <param name="method" value="highest_intensity"/>
+      <param name="use_exact_mass" value="true"/>
+      <param name="exclude_ms2_precursor" value="false"/>
+      <param name="precursor_mz_distance" value="0.0001"/>
+      <param name="precursor_rt_tolerance" value="5.0"/>
+      <param name="use_known_unknowns" value="false"/>
+      <param name="min_transitions" value="2"/>
+      <param name="max_transitions" value="3"/>
+      <param name="cosine_similarity_threshold" value="0.98"/>
+      <param name="transition_threshold" value="3.0"/>
+      <param name="out_workspace_directory" value=""/>
+      <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"/>
+        <param name="isotope_pattern_iterations" value="3"/>
+        <param name="feature_only" value="true"/>
+        <param name="no_masstrace_info_isotope_pattern" value="false"/>
+      </section>
+      <section name="sirius">
+        <param name="profile" value="qtof"/>
+        <param name="candidates" value="5"/>
+        <param name="database" value="all"/>
+        <param name="noise" value="0"/>
+        <param name="ppm_max" value="10"/>
+        <param name="isotope" value="both"/>
+        <param name="elements" value="CHNOP[5]S[8]Cl[1]"/>
+        <param name="compound_timeout" value="100"/>
+        <param name="tree_timeout" value="0"/>
+        <param name="top_n_hits" value="10"/>
+        <param name="auto_charge" value="false"/>
+        <param name="ion_tree" value="false"/>
+        <param name="no_recalibration" value="false"/>
+        <param name="most_intense_ms2" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="precursor_recalibration_window" value="0.1"/>
+        <param name="precursor_recalibration_window_unit" value="Da"/>
+        <param name="min_fragment_mz" value="100.0"/>
+        <param name="max_fragment_mz" value="900.0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="AssayGeneratorMetabo_input.mzML"/>
+      <param name="in_id" value="AssayGeneratorMetabo_ams_input.featureXML"/>
+      <param name="out_type" value="tsv"/>
+      <output name="out" file="AssayGeneratorMetabo_ams_sirius_restrict_output.tmp.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="fragment_annotation" value="sirius"/>
+      <param name="method" value="highest_intensity"/>
+      <param name="use_exact_mass" value="true"/>
+      <param name="exclude_ms2_precursor" value="false"/>
+      <param name="precursor_mz_distance" value="0.0001"/>
+      <param name="precursor_rt_tolerance" value="5.0"/>
+      <param name="use_known_unknowns" value="false"/>
+      <param name="min_transitions" value="2"/>
+      <param name="max_transitions" value="3"/>
+      <param name="cosine_similarity_threshold" value="0.98"/>
+      <param name="transition_threshold" value="3.0"/>
+      <param name="out_workspace_directory" value=""/>
+      <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"/>
+        <param name="isotope_pattern_iterations" value="3"/>
+        <param name="feature_only" value="true"/>
+        <param name="no_masstrace_info_isotope_pattern" value="false"/>
+      </section>
+      <section name="sirius">
+        <param name="profile" value="qtof"/>
+        <param name="candidates" value="5"/>
+        <param name="database" value="all"/>
+        <param name="noise" value="0"/>
+        <param name="ppm_max" value="10"/>
+        <param name="isotope" value="both"/>
+        <param name="elements" value="CHNOP[5]S[8]Cl[1]"/>
+        <param name="compound_timeout" value="100"/>
+        <param name="tree_timeout" value="0"/>
+        <param name="top_n_hits" value="10"/>
+        <param name="auto_charge" value="false"/>
+        <param name="ion_tree" value="false"/>
+        <param name="no_recalibration" value="false"/>
+        <param name="most_intense_ms2" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_BaselineFilter">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="BaselineFilter_input.mzML"/>
+      <output name="out" file="BaselineFilter_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="struc_elem_length" value="1.5"/>
+      <param name="struc_elem_unit" value="Thomson"/>
+      <param name="method" value="tophat"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_ClusterMassTracesByPrecursor">
+</xml>
+  <xml name="autotest_ClusterMassTraces">
+</xml>
+  <xml name="autotest_CometAdapter">
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="use_A_ions" value="false"/>
+        <param name="use_B_ions" value="true"/>
+        <param name="use_C_ions" value="false"/>
+        <param name="use_X_ions" value="false"/>
+        <param name="use_Y_ions" value="true"/>
+        <param name="use_Z_ions" value="false"/>
+        <param name="use_NL_ions" value="false"/>
+        <param name="second_enzyme" value=""/>
+        <param name="digest_mass_range" value="600:5000"/>
+        <param name="max_precursor_charge" value="5"/>
+        <param name="spectrum_batch_size" value="1000"/>
+        <param name="mass_offsets" value="0.0"/>
+        <param name="minimum_peaks" value="10"/>
+        <param name="minimum_intensity" value="0.0"/>
+        <param name="remove_precursor_peak" value="no"/>
+        <param name="remove_precursor_tolerance" value="1.5"/>
+        <param name="clear_mz_range" value="0:0"/>
+        <param name="max_variable_mods_in_peptide" value="5"/>
+        <param name="require_variable_mod" value="false"/>
+        <param name="force" value="true"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="spectra_comet.mzML"/>
+      <output name="out" file="CometAdapter_1_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="database" value="proteins.fasta"/>
+      <output name="pin_out" file="CometAdapter_1_out2.tmp.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="precursor_mass_tolerance" value="3.0"/>
+      <param name="precursor_error_units" value="ppm"/>
+      <param name="isotope_error" value="off"/>
+      <param name="fragment_mass_tolerance" value="0.50025"/>
+      <param name="fragment_error_units" value="Da"/>
+      <param name="fragment_bin_offset" value="0.25"/>
+      <param name="instrument" value="high_res"/>
+      <param name="enzyme" value="Trypsin"/>
+      <param name="num_enzyme_termini" value="fully"/>
+      <param name="missed_cleavages" value="1"/>
+      <param name="min_peptide_length" value="5"/>
+      <param name="max_peptide_length" value="63"/>
+      <param name="num_hits" value="5"/>
+      <param name="precursor_charge" value="0:0"/>
+      <param name="override_charge" value="keep any known"/>
+      <param name="ms_level" value="2"/>
+      <param name="activation_method" value="ALL"/>
+      <param name="max_fragment_charge" value="3"/>
+      <param name="clip_nterm_methionine" value="false"/>
+      <param name="fixed_modifications" value=""/>
+      <param name="variable_modifications" value=""/>
+      <param name="binary_modifications" value=""/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,pin_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="use_A_ions" value="false"/>
+        <param name="use_B_ions" value="true"/>
+        <param name="use_C_ions" value="false"/>
+        <param name="use_X_ions" value="false"/>
+        <param name="use_Y_ions" value="true"/>
+        <param name="use_Z_ions" value="false"/>
+        <param name="use_NL_ions" value="false"/>
+        <param name="second_enzyme" value=""/>
+        <param name="digest_mass_range" value="600:5000"/>
+        <param name="max_precursor_charge" value="5"/>
+        <param name="spectrum_batch_size" value="1000"/>
+        <param name="mass_offsets" value="0.0"/>
+        <param name="minimum_peaks" value="10"/>
+        <param name="minimum_intensity" value="0.0"/>
+        <param name="remove_precursor_peak" value="no"/>
+        <param name="remove_precursor_tolerance" value="1.5"/>
+        <param name="clear_mz_range" value="0:0"/>
+        <param name="max_variable_mods_in_peptide" value="5"/>
+        <param name="require_variable_mod" value="false"/>
+        <param name="force" value="true"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="CometAdapter_2_prepared.mzML"/>
+      <output name="out" file="CometAdapter_2_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="database" value="CometAdapter_2_in.fasta"/>
+      <output name="pin_out" file="CometAdapter_2_out2.tmp.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="precursor_mass_tolerance" value="3.0"/>
+      <param name="precursor_error_units" value="Da"/>
+      <param name="isotope_error" value="off"/>
+      <param name="fragment_mass_tolerance" value="0.50025"/>
+      <param name="fragment_error_units" value="Da"/>
+      <param name="fragment_bin_offset" value="0.25"/>
+      <param name="instrument" value="high_res"/>
+      <param name="enzyme" value="Trypsin"/>
+      <param name="num_enzyme_termini" value="fully"/>
+      <param name="missed_cleavages" value="1"/>
+      <param name="min_peptide_length" value="5"/>
+      <param name="max_peptide_length" value="63"/>
+      <param name="num_hits" value="5"/>
+      <param name="precursor_charge" value="0:0"/>
+      <param name="override_charge" value="keep any known"/>
+      <param name="ms_level" value="2"/>
+      <param name="activation_method" value="ALL"/>
+      <param name="max_fragment_charge" value="3"/>
+      <param name="clip_nterm_methionine" value="false"/>
+      <param name="fixed_modifications" value=""/>
+      <param name="variable_modifications" value=""/>
+      <param name="binary_modifications" value=""/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,pin_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="use_A_ions" value="false"/>
+        <param name="use_B_ions" value="true"/>
+        <param name="use_C_ions" value="false"/>
+        <param name="use_X_ions" value="false"/>
+        <param name="use_Y_ions" value="true"/>
+        <param name="use_Z_ions" value="false"/>
+        <param name="use_NL_ions" value="false"/>
+        <param name="second_enzyme" value=""/>
+        <param name="digest_mass_range" value="600:5000"/>
+        <param name="max_precursor_charge" value="5"/>
+        <param name="spectrum_batch_size" value="20000"/>
+        <param name="mass_offsets" value="0.0"/>
+        <param name="minimum_peaks" value="10"/>
+        <param name="minimum_intensity" value="0.0"/>
+        <param name="remove_precursor_peak" value="no"/>
+        <param name="remove_precursor_tolerance" value="1.5"/>
+        <param name="clear_mz_range" value="0:0"/>
+        <param name="max_variable_mods_in_peptide" value="3"/>
+        <param name="require_variable_mod" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="CometAdapter_3.mzML"/>
+      <output name="out" file="CometAdapter_3_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="database" value="CometAdapter_3.fasta"/>
+      <output name="pin_out" file="CometAdapter_3_out2.tmp.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="precursor_mass_tolerance" value="5.0"/>
+      <param name="precursor_error_units" value="ppm"/>
+      <param name="isotope_error" value="off"/>
+      <param name="fragment_mass_tolerance" value="0.01"/>
+      <param name="fragment_error_units" value="Da"/>
+      <param name="fragment_bin_offset" value="0.0"/>
+      <param name="instrument" value="high_res"/>
+      <param name="enzyme" value="Trypsin"/>
+      <param name="num_enzyme_termini" value="fully"/>
+      <param name="missed_cleavages" value="3"/>
+      <param name="min_peptide_length" value="5"/>
+      <param name="max_peptide_length" value="63"/>
+      <param name="num_hits" value="5"/>
+      <param name="precursor_charge" value="0:0"/>
+      <param name="override_charge" value="keep known search unknown"/>
+      <param name="ms_level" value="2"/>
+      <param name="activation_method" value="ALL"/>
+      <param name="max_fragment_charge" value="3"/>
+      <param name="clip_nterm_methionine" value="false"/>
+      <param name="fixed_modifications" value="Carbamidomethyl (C)"/>
+      <param name="variable_modifications" value="Acetyl (Protein N-term),Carbamidomethyl (N-term)"/>
+      <param name="binary_modifications" value=""/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,pin_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="use_A_ions" value="false"/>
+        <param name="use_B_ions" value="true"/>
+        <param name="use_C_ions" value="false"/>
+        <param name="use_X_ions" value="false"/>
+        <param name="use_Y_ions" value="true"/>
+        <param name="use_Z_ions" value="false"/>
+        <param name="use_NL_ions" value="false"/>
+        <param name="second_enzyme" value=""/>
+        <param name="digest_mass_range" value="600:1200"/>
+        <param name="max_precursor_charge" value="5"/>
+        <param name="spectrum_batch_size" value="20000"/>
+        <param name="mass_offsets" value="0.0"/>
+        <param name="minimum_peaks" value="10"/>
+        <param name="minimum_intensity" value="0.0"/>
+        <param name="remove_precursor_peak" value="no"/>
+        <param name="remove_precursor_tolerance" value="1.5"/>
+        <param name="clear_mz_range" value="0:0"/>
+        <param name="max_variable_mods_in_peptide" value="3"/>
+        <param name="require_variable_mod" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="examples/FRACTIONS/BSA1_F1.mzML"/>
+      <output name="out" file="CometAdapter_4_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="database" value="examples/TOPPAS/data/BSA_Identification/18Protein_SoCe_Tr_detergents_trace_target_decoy.fasta"/>
+      <param name="precursor_mass_tolerance" value="5.0"/>
+      <param name="precursor_error_units" value="ppm"/>
+      <param name="isotope_error" value="off"/>
+      <param name="fragment_mass_tolerance" value="0.01"/>
+      <param name="fragment_error_units" value="Da"/>
+      <param name="fragment_bin_offset" value="0.0"/>
+      <param name="instrument" value="high_res"/>
+      <param name="enzyme" value="Trypsin"/>
+      <param name="num_enzyme_termini" value="fully"/>
+      <param name="missed_cleavages" value="3"/>
+      <param name="min_peptide_length" value="5"/>
+      <param name="max_peptide_length" value="63"/>
+      <param name="num_hits" value="5"/>
+      <param name="precursor_charge" value="0:0"/>
+      <param name="override_charge" value="keep known search unknown"/>
+      <param name="ms_level" value="2"/>
+      <param name="activation_method" value="ALL"/>
+      <param name="max_fragment_charge" value="3"/>
+      <param name="clip_nterm_methionine" value="false"/>
+      <param name="fixed_modifications" value="Carbamidomethyl (C)"/>
+      <param name="variable_modifications" value="Met-loss (Protein N-term M)"/>
+      <param name="binary_modifications" value=""/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_CompNovoCID">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="CompNovoCID_1_input.mzML"/>
+      <output name="out" file="CompNovoCID_1_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <section name="algorithm">
+        <param name="max_number_aa_per_decomp" value="4"/>
+        <param name="tryptic_only" value="true"/>
+        <param name="precursor_mass_tolerance" value="0.3"/>
+        <param name="fragment_mass_tolerance" value="0.3"/>
+        <param name="max_number_pivot" value="9"/>
+        <param name="max_subscore_number" value="40"/>
+        <param name="decomp_weights_precision" value="0.01"/>
+        <param name="double_charged_iso_threshold" value="0.6"/>
+        <param name="max_mz" value="2000.0"/>
+        <param name="min_mz" value="200.0"/>
+        <param name="max_isotope_to_score" value="3"/>
+        <param name="max_decomp_weight" value="450.0"/>
+        <param name="max_isotope" value="3"/>
+        <param name="missed_cleavages" value="1"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="estimate_precursor_mz" value="true"/>
+        <param name="number_of_prescoring_hits" value="250"/>
+        <param name="fixed_modifications" value=""/>
+        <param name="variable_modifications" value=""/>
+        <param name="residue_set" value="Natural19WithoutI"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_CompNovo">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="CompNovo_1_input.mzML"/>
+      <output name="out" file="CompNovo_1_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <section name="algorithm">
+        <param name="max_number_aa_per_decomp" value="4"/>
+        <param name="tryptic_only" value="true"/>
+        <param name="precursor_mass_tolerance" value="0.3"/>
+        <param name="fragment_mass_tolerance" value="0.3"/>
+        <param name="max_number_pivot" value="9"/>
+        <param name="max_subscore_number" value="40"/>
+        <param name="decomp_weights_precision" value="0.01"/>
+        <param name="double_charged_iso_threshold" value="0.6"/>
+        <param name="max_mz" value="2000.0"/>
+        <param name="min_mz" value="200.0"/>
+        <param name="max_isotope_to_score" value="3"/>
+        <param name="max_decomp_weight" value="450.0"/>
+        <param name="max_isotope" value="3"/>
+        <param name="missed_cleavages" value="1"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="estimate_precursor_mz" value="true"/>
+        <param name="number_of_prescoring_hits" value="250"/>
+        <param name="fixed_modifications" value=""/>
+        <param name="variable_modifications" value=""/>
+        <param name="residue_set" value="Natural19WithoutI"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_ConsensusID">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ConsensusID_1_input.idXML"/>
+      <output name="out" file="ConsensusID_1_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="rt_delta" value="0.1"/>
+      <param name="mz_delta" value="0.1"/>
+      <param name="per_spectrum" value="false"/>
+      <param name="algorithm" value="PEPMatrix"/>
+      <section name="filter">
+        <param name="considered_hits" value="0"/>
+        <param name="min_support" value="0.0"/>
+        <param name="count_empty" value="false"/>
+        <param name="keep_old_scores" value="false"/>
+      </section>
+      <section name="PEPIons">
+        <param name="mass_tolerance" value="0.5"/>
+        <param name="min_shared" value="2"/>
+      </section>
+      <section name="PEPMatrix">
+        <param name="matrix" value="PAM30MS"/>
+        <param name="penalty" value="5"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ConsensusID_2_input.featureXML"/>
+      <output name="out" file="ConsensusID_2_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="rt_delta" value="0.1"/>
+      <param name="mz_delta" value="0.1"/>
+      <param name="per_spectrum" value="false"/>
+      <param name="algorithm" value="average"/>
+      <section name="filter">
+        <param name="considered_hits" value="0"/>
+        <param name="min_support" value="0.0"/>
+        <param name="count_empty" value="false"/>
+        <param name="keep_old_scores" value="false"/>
+      </section>
+      <section name="PEPIons">
+        <param name="mass_tolerance" value="0.5"/>
+        <param name="min_shared" value="2"/>
+      </section>
+      <section name="PEPMatrix">
+        <param name="matrix" value="identity"/>
+        <param name="penalty" value="5"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ConsensusID_3_input.consensusXML"/>
+      <output name="out" file="ConsensusID_3_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="rt_delta" value="0.1"/>
+      <param name="mz_delta" value="0.1"/>
+      <param name="per_spectrum" value="false"/>
+      <param name="algorithm" value="best"/>
+      <section name="filter">
+        <param name="considered_hits" value="0"/>
+        <param name="min_support" value="0.0"/>
+        <param name="count_empty" value="false"/>
+        <param name="keep_old_scores" value="false"/>
+      </section>
+      <section name="PEPIons">
+        <param name="mass_tolerance" value="0.5"/>
+        <param name="min_shared" value="2"/>
+      </section>
+      <section name="PEPMatrix">
+        <param name="matrix" value="identity"/>
+        <param name="penalty" value="5"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ConsensusID_1_input.idXML"/>
+      <output name="out" file="ConsensusID_4_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="rt_delta" value="0.1"/>
+      <param name="mz_delta" value="0.1"/>
+      <param name="per_spectrum" value="false"/>
+      <param name="algorithm" value="PEPMatrix"/>
+      <section name="filter">
+        <param name="considered_hits" value="6"/>
+        <param name="min_support" value="0.0"/>
+        <param name="count_empty" value="false"/>
+        <param name="keep_old_scores" value="false"/>
+      </section>
+      <section name="PEPIons">
+        <param name="mass_tolerance" value="0.5"/>
+        <param name="min_shared" value="2"/>
+      </section>
+      <section name="PEPMatrix">
+        <param name="matrix" value="identity"/>
+        <param name="penalty" value="5"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ConsensusID_1_input.idXML"/>
+      <output name="out" file="ConsensusID_5_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="rt_delta" value="0.1"/>
+      <param name="mz_delta" value="0.1"/>
+      <param name="per_spectrum" value="false"/>
+      <param name="algorithm" value="PEPIons"/>
+      <section name="filter">
+        <param name="considered_hits" value="0"/>
+        <param name="min_support" value="0.0"/>
+        <param name="count_empty" value="false"/>
+        <param name="keep_old_scores" value="false"/>
+      </section>
+      <section name="PEPIons">
+        <param name="mass_tolerance" value="0.5"/>
+        <param name="min_shared" value="2"/>
+      </section>
+      <section name="PEPMatrix">
+        <param name="matrix" value="identity"/>
+        <param name="penalty" value="5"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ConsensusID_1_input.idXML"/>
+      <output name="out" file="ConsensusID_6_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="rt_delta" value="0.1"/>
+      <param name="mz_delta" value="0.1"/>
+      <param name="per_spectrum" value="false"/>
+      <param name="algorithm" value="best"/>
+      <section name="filter">
+        <param name="considered_hits" value="0"/>
+        <param name="min_support" value="0.5"/>
+        <param name="count_empty" value="false"/>
+        <param name="keep_old_scores" value="false"/>
+      </section>
+      <section name="PEPIons">
+        <param name="mass_tolerance" value="0.5"/>
+        <param name="min_shared" value="2"/>
+      </section>
+      <section name="PEPMatrix">
+        <param name="matrix" value="identity"/>
+        <param name="penalty" value="5"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ConsensusID_6_input.idXML"/>
+      <output name="out" file="ConsensusID_7_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="rt_delta" value="0.1"/>
+      <param name="mz_delta" value="0.1"/>
+      <param name="per_spectrum" value="true"/>
+      <param name="algorithm" value="best"/>
+      <section name="filter">
+        <param name="considered_hits" value="0"/>
+        <param name="min_support" value="0.0"/>
+        <param name="count_empty" value="false"/>
+        <param name="keep_old_scores" value="true"/>
+      </section>
+      <section name="PEPIons">
+        <param name="mass_tolerance" value="0.5"/>
+        <param name="min_shared" value="2"/>
+      </section>
+      <section name="PEPMatrix">
+        <param name="matrix" value="identity"/>
+        <param name="penalty" value="5"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ConsensusID_8_input.idXML"/>
+      <output name="out" file="ConsensusID_8_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="rt_delta" value="0.1"/>
+      <param name="mz_delta" value="0.1"/>
+      <param name="per_spectrum" value="true"/>
+      <param name="algorithm" value="best"/>
+      <section name="filter">
+        <param name="considered_hits" value="0"/>
+        <param name="min_support" value="0.0"/>
+        <param name="count_empty" value="false"/>
+        <param name="keep_old_scores" value="true"/>
+      </section>
+      <section name="PEPIons">
+        <param name="mass_tolerance" value="0.5"/>
+        <param name="min_shared" value="2"/>
+      </section>
+      <section name="PEPMatrix">
+        <param name="matrix" value="identity"/>
+        <param name="penalty" value="5"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_ConsensusMapNormalizer">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="accession_filter" value=""/>
+        <param name="description_filter" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ConsensusMapNormalizer_input.consensusXML"/>
+      <output name="out" file="ConsensusMapNormalizer_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="algorithm_type" value="robust_regression"/>
+      <param name="ratio_threshold" value="0.67"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_CruxAdapter">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="custom_enzyme" value=""/>
+        <param name="decoy_prefix" value="decoy_"/>
+        <param name="deisotope" value="false"/>
+        <param name="report_decoys" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="spectra_comet.mzML"/>
+      <output name="out" file="CruxAdapter_1_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="database" value="proteins.fasta"/>
+      <param name="extra_index_args" value=""/>
+      <param name="extra_search_args" value=""/>
+      <param name="extra_percolator_args" value=""/>
+      <param name="precursor_mass_tolerance" value="10.0"/>
+      <param name="precursor_mass_units" value="ppm"/>
+      <param name="fragment_bin_offset" value="0.0"/>
+      <param name="fragment_bin_width" value="0.02"/>
+      <param name="isotope_error" value=""/>
+      <param name="run_percolator" value="false"/>
+      <param name="enzyme" value="trypsin"/>
+      <param name="digestion" value="full-digest"/>
+      <param name="allowed_missed_cleavages" value="0"/>
+      <param name="decoy_format" value="peptide-reverse"/>
+      <param name="keep_terminal_aminos" value="NC"/>
+      <param name="cterm_modifications" value=""/>
+      <param name="nterm_modifications" value=""/>
+      <param name="modifications" value=""/>
+      <param name="test_fdr" value="0.01"/>
+      <param name="train_fdr" value="0.01"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_CVInspector">
+</xml>
+  <xml name="autotest_DatabaseFilter">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="DatabaseFilter_1.fasta"/>
+      <param name="id" value="DatabaseFilter_1.idXML"/>
+      <param name="method" value="whitelist"/>
+      <output name="out" file="DatabaseFilter_1_out.fasta" compare="sim_size" delta="5700" ftype="fasta"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="DatabaseFilter_1.fasta"/>
+      <param name="id" value="DatabaseFilter_1.idXML"/>
+      <param name="method" value="blacklist"/>
+      <output name="out" file="DatabaseFilter_2_out.fasta" compare="sim_size" delta="5700" ftype="fasta"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="DatabaseFilter_3.fasta"/>
+      <param name="id" value="DatabaseFilter_3.mzid"/>
+      <param name="method" value="whitelist"/>
+      <output name="out" file="DatabaseFilter_3_out.fasta" compare="sim_size" delta="5700" ftype="fasta"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="DatabaseFilter_3.fasta"/>
+      <param name="id" value="DatabaseFilter_3.mzid"/>
+      <param name="method" value="blacklist"/>
+      <output name="out" file="DatabaseFilter_4_out.fasta" compare="sim_size" delta="5700" ftype="fasta"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_DatabaseSuitability">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in_id" value="DatabaseSuitability_in_id.idXML"/>
+      <param name="in_spec" value="DatabaseSuitability_in_spec.mzML"/>
+      <param name="in_novo" value="DatabaseSuitability_in_novo.idXML"/>
+      <output name="out" file="DatabaseSuitability_out_1.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <section name="algorithm">
+        <param name="no_rerank" value="false"/>
+        <param name="reranking_cutoff_percentile" value="0.01"/>
+        <param name="FDR" value="0.8"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in_id" value="DatabaseSuitability_in_id.idXML"/>
+      <param name="in_spec" value="DatabaseSuitability_in_spec.mzML"/>
+      <param name="in_novo" value="DatabaseSuitability_in_novo.idXML"/>
+      <output name="out" file="DatabaseSuitability_out_2.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <section name="algorithm">
+        <param name="no_rerank" value="false"/>
+        <param name="reranking_cutoff_percentile" value="0.9"/>
+        <param name="FDR" value="1.0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in_id" value="DatabaseSuitability_in_id.idXML"/>
+      <param name="in_spec" value="DatabaseSuitability_in_spec.mzML"/>
+      <param name="in_novo" value="DatabaseSuitability_in_novo.idXML"/>
+      <output name="out" file="DatabaseSuitability_out_3.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <section name="algorithm">
+        <param name="no_rerank" value="true"/>
+        <param name="reranking_cutoff_percentile" value="0.01"/>
+        <param name="FDR" value="0.9"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_Decharger">
+    <test expect_num_outputs="4">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="Decharger_input.featureXML"/>
+      <output name="out_cm" file="Decharger_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <output name="out_fm" file="Decharger_output_fm.tmp" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="outpairs" file="Decharger_p_output.tmp" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="algorithm">
+        <section name="FeatureDeconvolution">
+          <param name="charge_min" value="1"/>
+          <param name="charge_max" value="10"/>
+          <param name="charge_span_max" value="4"/>
+          <param name="q_try" value="feature"/>
+          <param name="retention_max_diff" value="1.0"/>
+          <param name="retention_max_diff_local" value="1.0"/>
+          <param name="mass_max_diff" value="0.1"/>
+          <param name="potential_adducts" value="&quot;H:+:0.7&quot; &quot;Na:+:0.1&quot; &quot;(2)H4H-4:0:0.1:-2:heavy&quot;"/>
+          <param name="max_neutrals" value="0"/>
+          <param name="max_minority_bound" value="2"/>
+          <param name="min_rt_overlap" value="0.66"/>
+          <param name="intensity_filter" value="false"/>
+          <param name="negative_mode" value="false"/>
+          <param name="default_map_label" value="decharged features"/>
+          <param name="verbose_level" value="0"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_fm_FLAG,outpairs_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_DecoyDatabase">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="shuffle_max_attempts" value="30"/>
+        <param name="shuffle_sequence_identity_threshold" value="0.5"/>
+        <param name="seed" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="DecoyDatabase_1.fasta"/>
+      <output name="out" file="DecoyDatabase_1_out.fasta" compare="sim_size" delta="5700" ftype="fasta"/>
+      <param name="decoy_string" value="DECOY_"/>
+      <param name="decoy_string_position" value="prefix"/>
+      <param name="only_decoy" value="true"/>
+      <param name="type" value="protein"/>
+      <param name="method" value="reverse"/>
+      <param name="enzyme" value="Trypsin"/>
+      <section name="Decoy">
+        <param name="non_shuffle_pattern" value=""/>
+        <param name="keepPeptideNTerm" value="true"/>
+        <param name="keepPeptideCTerm" value="true"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="shuffle_max_attempts" value="30"/>
+        <param name="shuffle_sequence_identity_threshold" value="0.5"/>
+        <param name="seed" value="42"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="DecoyDatabase_1.fasta"/>
+      <output name="out" file="DecoyDatabase_2_out.fasta" compare="sim_size" delta="5700" ftype="fasta"/>
+      <param name="decoy_string" value="blabla"/>
+      <param name="decoy_string_position" value="prefix"/>
+      <param name="only_decoy" value="false"/>
+      <param name="type" value="protein"/>
+      <param name="method" value="shuffle"/>
+      <param name="enzyme" value="Trypsin"/>
+      <section name="Decoy">
+        <param name="non_shuffle_pattern" value="KRP"/>
+        <param name="keepPeptideNTerm" value="true"/>
+        <param name="keepPeptideCTerm" value="true"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="shuffle_max_attempts" value="30"/>
+        <param name="shuffle_sequence_identity_threshold" value="0.5"/>
+        <param name="seed" value="42"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="DecoyDatabase_1.fasta"/>
+      <output name="out" file="DecoyDatabase_3_out.fasta" compare="sim_size" delta="5700" ftype="fasta"/>
+      <param name="decoy_string" value="blabla"/>
+      <param name="decoy_string_position" value="prefix"/>
+      <param name="only_decoy" value="false"/>
+      <param name="type" value="protein"/>
+      <param name="method" value="shuffle"/>
+      <param name="enzyme" value="Chymotrypsin"/>
+      <section name="Decoy">
+        <param name="non_shuffle_pattern" value="KR"/>
+        <param name="keepPeptideNTerm" value="true"/>
+        <param name="keepPeptideCTerm" value="true"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="shuffle_max_attempts" value="30"/>
+        <param name="shuffle_sequence_identity_threshold" value="0.5"/>
+        <param name="seed" value="42"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="DecoyDatabase_4.fasta"/>
+      <output name="out" file="DecoyDatabase_4_out.fasta" compare="sim_size" delta="5700" ftype="fasta"/>
+      <param name="decoy_string" value="blabla"/>
+      <param name="decoy_string_position" value="prefix"/>
+      <param name="only_decoy" value="false"/>
+      <param name="type" value="RNA"/>
+      <param name="method" value="reverse"/>
+      <param name="enzyme" value="Trypsin"/>
+      <section name="Decoy">
+        <param name="non_shuffle_pattern" value=""/>
+        <param name="keepPeptideNTerm" value="true"/>
+        <param name="keepPeptideCTerm" value="true"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_DeMeanderize">
+</xml>
+  <xml name="autotest_DigestorMotif">
+</xml>
+  <xml name="autotest_Digestor">
+</xml>
+  <xml name="autotest_DTAExtractor">
+    <test expect_num_outputs="1">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="DTAExtractor_1_input.mzML"/>
+      <param name="out" value="DTAExtractor"/>
+      <param name="mz" value=":"/>
+      <param name="rt" value=":61"/>
+      <param name="level" value="1,2,3"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="1">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="DTAExtractor_1_input.mzML"/>
+      <param name="out" value="DTAExtractor"/>
+      <param name="mz" value=":"/>
+      <param name="rt" value=":"/>
+      <param name="level" value="1"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="1">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="DTAExtractor_1_input.mzML"/>
+      <param name="out" value="DTAExtractor"/>
+      <param name="mz" value=":1000"/>
+      <param name="rt" value=":"/>
+      <param name="level" value="2"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_EICExtractor">
+</xml>
+  <xml name="autotest_Epifany">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="conservative_fdr" value="true"/>
+        <param name="min_psms_extreme_probability" value="0.0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FidoAdapter_1_input.idXML"/>
+      <output name="out" file="Epifany_1_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idxml"/>
+      <param name="protein_fdr" value="false"/>
+      <param name="greedy_group_resolution" value="none"/>
+      <param name="max_psms_extreme_probability" value="1.0"/>
+      <section name="algorithm">
+        <param name="psm_probability_cutoff" value="0.001"/>
+        <param name="top_PSMs" value="1"/>
+        <param name="keep_best_PSM_only" value="true"/>
+        <param name="update_PSM_probabilities" value="true"/>
+        <param name="user_defined_priors" value="false"/>
+        <param name="annotate_group_probabilities" value="true"/>
+        <param name="use_ids_outside_features" value="false"/>
+        <section name="model_parameters">
+          <param name="prot_prior" value="0.7"/>
+          <param name="pep_emission" value="0.1"/>
+          <param name="pep_spurious_emission" value="0.001"/>
+          <param name="pep_prior" value="0.1"/>
+          <param name="regularize" value="false"/>
+          <param name="extended_model" value="false"/>
+        </section>
+        <section name="loopy_belief_propagation">
+          <param name="scheduling_type" value="priority"/>
+          <param name="convergence_threshold" value="1e-05"/>
+          <param name="dampening_lambda" value="0.001"/>
+          <param name="max_nr_iterations" value="2147483647"/>
+          <param name="p_norm_inference" value="1.0"/>
+        </section>
+        <section name="param_optimize">
+          <param name="aucweight" value="0.3"/>
+          <param name="conservative_fdr" value="true"/>
+          <param name="regularized_fdr" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="conservative_fdr" value="true"/>
+        <param name="min_psms_extreme_probability" value="0.0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="Epifany_2_input.consensusXML"/>
+      <output name="out" file="Epifany_2_out.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="out_type" value="consensusXML"/>
+      <param name="protein_fdr" value="false"/>
+      <param name="greedy_group_resolution" value="none"/>
+      <param name="max_psms_extreme_probability" value="1.0"/>
+      <section name="algorithm">
+        <param name="psm_probability_cutoff" value="0.001"/>
+        <param name="top_PSMs" value="1"/>
+        <param name="keep_best_PSM_only" value="true"/>
+        <param name="update_PSM_probabilities" value="true"/>
+        <param name="user_defined_priors" value="false"/>
+        <param name="annotate_group_probabilities" value="true"/>
+        <param name="use_ids_outside_features" value="false"/>
+        <section name="model_parameters">
+          <param name="prot_prior" value="0.7"/>
+          <param name="pep_emission" value="0.1"/>
+          <param name="pep_spurious_emission" value="0.001"/>
+          <param name="pep_prior" value="0.1"/>
+          <param name="regularize" value="false"/>
+          <param name="extended_model" value="false"/>
+        </section>
+        <section name="loopy_belief_propagation">
+          <param name="scheduling_type" value="priority"/>
+          <param name="convergence_threshold" value="1e-05"/>
+          <param name="dampening_lambda" value="0.001"/>
+          <param name="max_nr_iterations" value="2147483647"/>
+          <param name="p_norm_inference" value="1.0"/>
+        </section>
+        <section name="param_optimize">
+          <param name="aucweight" value="0.3"/>
+          <param name="conservative_fdr" value="true"/>
+          <param name="regularized_fdr" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="conservative_fdr" value="true"/>
+        <param name="min_psms_extreme_probability" value="0.0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="Epifany_2_input.consensusXML"/>
+      <output name="out" file="Epifany_3_out.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="out_type" value="consensusXML"/>
+      <param name="protein_fdr" value="false"/>
+      <param name="greedy_group_resolution" value="none"/>
+      <param name="max_psms_extreme_probability" value="1.0"/>
+      <section name="algorithm">
+        <param name="psm_probability_cutoff" value="0.001"/>
+        <param name="top_PSMs" value="1"/>
+        <param name="keep_best_PSM_only" value="false"/>
+        <param name="update_PSM_probabilities" value="true"/>
+        <param name="user_defined_priors" value="false"/>
+        <param name="annotate_group_probabilities" value="true"/>
+        <param name="use_ids_outside_features" value="false"/>
+        <section name="model_parameters">
+          <param name="prot_prior" value="0.7"/>
+          <param name="pep_emission" value="0.1"/>
+          <param name="pep_spurious_emission" value="0.001"/>
+          <param name="pep_prior" value="0.1"/>
+          <param name="regularize" value="false"/>
+          <param name="extended_model" value="false"/>
+        </section>
+        <section name="loopy_belief_propagation">
+          <param name="scheduling_type" value="priority"/>
+          <param name="convergence_threshold" value="1e-05"/>
+          <param name="dampening_lambda" value="0.001"/>
+          <param name="max_nr_iterations" value="2147483647"/>
+          <param name="p_norm_inference" value="1.0"/>
+        </section>
+        <section name="param_optimize">
+          <param name="aucweight" value="0.3"/>
+          <param name="conservative_fdr" value="true"/>
+          <param name="regularized_fdr" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_ERPairFinder">
+</xml>
+  <xml name="autotest_ExternalCalibration">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ExternalCalibration_1_input.mzML"/>
+      <output name="out" file="ExternalCalibration_1_MS1_out.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="offset" value="-5.5"/>
+      <param name="slope" value="0.0001"/>
+      <param name="power" value="0.0"/>
+      <param name="ms_level" value="1"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ExternalCalibration_1_input.mzML"/>
+      <output name="out" file="ExternalCalibration_2_MS2_out.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="offset" value="-5.5"/>
+      <param name="slope" value="0.0001"/>
+      <param name="power" value="0.0"/>
+      <param name="ms_level" value="2"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_FalseDiscoveryRate">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FalseDiscoveryRate_OMSSA.idXML"/>
+      <output name="out" file="FalseDiscoveryRate_output_1.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="PSM" value="true"/>
+      <param name="protein" value="false"/>
+      <section name="FDR">
+        <param name="PSM" value="1.0"/>
+        <param name="protein" value="1.0"/>
+        <section name="cleanup">
+          <param name="remove_proteins_without_psms" value="true"/>
+          <param name="remove_psms_without_proteins" value="true"/>
+          <param name="remove_spectra_without_psms" value="true"/>
+        </section>
+      </section>
+      <section name="algorithm">
+        <param name="no_qvalues" value="false"/>
+        <param name="use_all_hits" value="false"/>
+        <param name="split_charge_variants" value="false"/>
+        <param name="treat_runs_separately" value="false"/>
+        <param name="add_decoy_peptides" value="false"/>
+        <param name="add_decoy_proteins" value="false"/>
+        <param name="conservative" value="true"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FalseDiscoveryRate_OMSSA.idXML"/>
+      <output name="out" file="FalseDiscoveryRate_output_2.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="PSM" value="true"/>
+      <param name="protein" value="false"/>
+      <section name="FDR">
+        <param name="PSM" value="1.0"/>
+        <param name="protein" value="1.0"/>
+        <section name="cleanup">
+          <param name="remove_proteins_without_psms" value="true"/>
+          <param name="remove_psms_without_proteins" value="true"/>
+          <param name="remove_spectra_without_psms" value="true"/>
+        </section>
+      </section>
+      <section name="algorithm">
+        <param name="no_qvalues" value="false"/>
+        <param name="use_all_hits" value="false"/>
+        <param name="split_charge_variants" value="false"/>
+        <param name="treat_runs_separately" value="true"/>
+        <param name="add_decoy_peptides" value="false"/>
+        <param name="add_decoy_proteins" value="false"/>
+        <param name="conservative" value="true"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FalseDiscoveryRate_OMSSA.idXML"/>
+      <output name="out" file="FalseDiscoveryRate_output_3.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="PSM" value="true"/>
+      <param name="protein" value="false"/>
+      <section name="FDR">
+        <param name="PSM" value="1.0"/>
+        <param name="protein" value="1.0"/>
+        <section name="cleanup">
+          <param name="remove_proteins_without_psms" value="true"/>
+          <param name="remove_psms_without_proteins" value="true"/>
+          <param name="remove_spectra_without_psms" value="true"/>
+        </section>
+      </section>
+      <section name="algorithm">
+        <param name="no_qvalues" value="false"/>
+        <param name="use_all_hits" value="false"/>
+        <param name="split_charge_variants" value="true"/>
+        <param name="treat_runs_separately" value="false"/>
+        <param name="add_decoy_peptides" value="false"/>
+        <param name="add_decoy_proteins" value="false"/>
+        <param name="conservative" value="true"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FalseDiscoveryRate_OMSSA_4.idXML"/>
+      <output name="out" file="FalseDiscoveryRate_output_4.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="PSM" value="true"/>
+      <param name="protein" value="false"/>
+      <section name="FDR">
+        <param name="PSM" value="1.0"/>
+        <param name="protein" value="1.0"/>
+        <section name="cleanup">
+          <param name="remove_proteins_without_psms" value="true"/>
+          <param name="remove_psms_without_proteins" value="true"/>
+          <param name="remove_spectra_without_psms" value="true"/>
+        </section>
+      </section>
+      <section name="algorithm">
+        <param name="no_qvalues" value="false"/>
+        <param name="use_all_hits" value="false"/>
+        <param name="split_charge_variants" value="true"/>
+        <param name="treat_runs_separately" value="false"/>
+        <param name="add_decoy_peptides" value="false"/>
+        <param name="add_decoy_proteins" value="false"/>
+        <param name="conservative" value="true"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="true"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FalseDiscoveryRate_5_input.idXML"/>
+      <output name="out" file="FalseDiscoveryRate_5_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="PSM" value="false"/>
+      <param name="protein" value="true"/>
+      <section name="FDR">
+        <param name="PSM" value="1.0"/>
+        <param name="protein" value="1.0"/>
+        <section name="cleanup">
+          <param name="remove_proteins_without_psms" value="true"/>
+          <param name="remove_psms_without_proteins" value="true"/>
+          <param name="remove_spectra_without_psms" value="true"/>
+        </section>
+      </section>
+      <section name="algorithm">
+        <param name="no_qvalues" value="false"/>
+        <param name="use_all_hits" value="false"/>
+        <param name="split_charge_variants" value="false"/>
+        <param name="treat_runs_separately" value="false"/>
+        <param name="add_decoy_peptides" value="false"/>
+        <param name="add_decoy_proteins" value="true"/>
+        <param name="conservative" value="true"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FalseDiscoveryRate_6_input.idXML"/>
+      <output name="out" file="FalseDiscoveryRate_6_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="PSM" value="true"/>
+      <param name="protein" value="false"/>
+      <section name="FDR">
+        <param name="PSM" value="0.05"/>
+        <param name="protein" value="1.0"/>
+        <section name="cleanup">
+          <param name="remove_proteins_without_psms" value="true"/>
+          <param name="remove_psms_without_proteins" value="true"/>
+          <param name="remove_spectra_without_psms" value="true"/>
+        </section>
+      </section>
+      <section name="algorithm">
+        <param name="no_qvalues" value="false"/>
+        <param name="use_all_hits" value="false"/>
+        <param name="split_charge_variants" value="false"/>
+        <param name="treat_runs_separately" value="false"/>
+        <param name="add_decoy_peptides" value="false"/>
+        <param name="add_decoy_proteins" value="false"/>
+        <param name="conservative" value="true"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="true"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FalseDiscoveryRate_7_input.idXML"/>
+      <output name="out" file="FalseDiscoveryRate_7_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="PSM" value="false"/>
+      <param name="protein" value="true"/>
+      <section name="FDR">
+        <param name="PSM" value="1.0"/>
+        <param name="protein" value="0.3"/>
+        <section name="cleanup">
+          <param name="remove_proteins_without_psms" value="true"/>
+          <param name="remove_psms_without_proteins" value="true"/>
+          <param name="remove_spectra_without_psms" value="true"/>
+        </section>
+      </section>
+      <section name="algorithm">
+        <param name="no_qvalues" value="false"/>
+        <param name="use_all_hits" value="false"/>
+        <param name="split_charge_variants" value="false"/>
+        <param name="treat_runs_separately" value="false"/>
+        <param name="add_decoy_peptides" value="false"/>
+        <param name="add_decoy_proteins" value="false"/>
+        <param name="conservative" value="true"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_FeatureFinderCentroided">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+        <param name="pseudo_rt_shift" value="500.0"/>
+      </conditional>
+      <param name="in" value="FeatureFinderCentroided_1_input.mzML"/>
+      <output name="out" file="FeatureFinderCentroided_1_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <section name="algorithm">
+        <section name="intensity">
+          <param name="bins" value="1"/>
+        </section>
+        <section name="mass_trace">
+          <param name="mz_tolerance" value="0.02"/>
+          <param name="min_spectra" value="14"/>
+          <param name="max_missing" value="1"/>
+          <param name="slope_bound" value="0.1"/>
+        </section>
+        <section name="isotopic_pattern">
+          <param name="charge_low" value="2"/>
+          <param name="charge_high" value="2"/>
+          <param name="mz_tolerance" value="0.02"/>
+          <param name="intensity_percentage" value="10.0"/>
+          <param name="intensity_percentage_optional" value="0.1"/>
+          <param name="optional_fit_improvement" value="2.0"/>
+          <param name="mass_window_width" value="100.0"/>
+          <param name="abundance_12C" value="98.93"/>
+          <param name="abundance_14N" value="99.632"/>
+        </section>
+        <section name="seed">
+          <param name="min_score" value="0.8"/>
+        </section>
+        <section name="fit">
+          <param name="max_iterations" value="500"/>
+        </section>
+        <section name="feature">
+          <param name="min_score" value="0.7"/>
+          <param name="min_isotope_fit" value="0.8"/>
+          <param name="min_trace_score" value="0.5"/>
+          <param name="min_rt_span" value="0.333"/>
+          <param name="max_rt_span" value="2.5"/>
+          <param name="rt_shape" value="symmetric"/>
+          <param name="max_intersection" value="0.35"/>
+          <param name="reported_mz" value="monoisotopic"/>
+        </section>
+        <section name="user-seed">
+          <param name="rt_tolerance" value="5.0"/>
+          <param name="mz_tolerance" value="1.1"/>
+          <param name="min_score" value="0.5"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_FeatureFinderIdentification">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderIdentification_1_input.mzML"/>
+      <param name="id" value="FeatureFinderIdentification_1_input.idXML"/>
+      <output name="out" file="FeatureFinderIdentification_1_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <section name="extract">
+        <param name="batch_size" value="1000"/>
+        <param name="mz_window" value="0.1"/>
+        <param name="n_isotopes" value="2"/>
+        <param name="isotope_pmin" value="0.0"/>
+        <param name="rt_quantile" value="0.95"/>
+        <param name="rt_window" value="0.0"/>
+      </section>
+      <section name="detect">
+        <param name="peak_width" value="60.0"/>
+        <param name="min_peak_width" value="0.2"/>
+        <param name="signal_to_noise" value="0.8"/>
+        <param name="mapping_tolerance" value="0.0"/>
+      </section>
+      <section name="svm">
+        <param name="samples" value="0"/>
+        <param name="no_selection" value="false"/>
+        <param name="kernel" value="RBF"/>
+        <param name="xval" value="5"/>
+        <param name="log2_C" value="-5.0 -3.0 -1.0 1.0 3.0 5.0 7.0 9.0 11.0 13.0 15.0"/>
+        <param name="log2_gamma" value="-15.0 -13.0 -11.0 -9.0 -7.0 -5.0 -3.0 -1.0 1.0 3.0"/>
+        <param name="epsilon" value="0.001"/>
+        <param name="cache_size" value="100.0"/>
+        <param name="no_shrinking" value="false"/>
+        <param name="predictors" value="peak_apices_sum,var_xcorr_coelution,var_xcorr_shape,var_library_sangle,var_intensity_score,sn_ratio,var_log_sn_score,var_elution_model_fit_score,xx_lda_prelim_score,var_isotope_correlation_score,var_isotope_overlap_score,var_massdev_score,main_var_xx_swath_prelim_score"/>
+        <param name="min_prob" value="0.0"/>
+      </section>
+      <section name="model">
+        <param name="type" value="none"/>
+        <param name="add_zeros" value="0.2"/>
+        <param name="unweighted_fit" value="false"/>
+        <param name="no_imputation" value="false"/>
+        <param name="each_trace" value="false"/>
+        <section name="check">
+          <param name="min_area" value="1.0"/>
+          <param name="boundaries" value="0.5"/>
+          <param name="width" value="10.0"/>
+          <param name="asymmetry" value="10.0"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderIdentification_1_input.mzML"/>
+      <param name="id" value="FeatureFinderIdentification_1_input.idXML"/>
+      <output name="out" file="FeatureFinderIdentification_3_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <section name="extract">
+        <param name="batch_size" value="1000"/>
+        <param name="mz_window" value="0.1"/>
+        <param name="n_isotopes" value="2"/>
+        <param name="isotope_pmin" value="0.0"/>
+        <param name="rt_quantile" value="0.95"/>
+        <param name="rt_window" value="0.0"/>
+      </section>
+      <section name="detect">
+        <param name="peak_width" value="60.0"/>
+        <param name="min_peak_width" value="0.2"/>
+        <param name="signal_to_noise" value="0.8"/>
+        <param name="mapping_tolerance" value="0.0"/>
+      </section>
+      <section name="svm">
+        <param name="samples" value="0"/>
+        <param name="no_selection" value="false"/>
+        <param name="kernel" value="RBF"/>
+        <param name="xval" value="5"/>
+        <param name="log2_C" value="-5.0 -3.0 -1.0 1.0 3.0 5.0 7.0 9.0 11.0 13.0 15.0"/>
+        <param name="log2_gamma" value="-15.0 -13.0 -11.0 -9.0 -7.0 -5.0 -3.0 -1.0 1.0 3.0"/>
+        <param name="epsilon" value="0.001"/>
+        <param name="cache_size" value="100.0"/>
+        <param name="no_shrinking" value="false"/>
+        <param name="predictors" value="peak_apices_sum,var_xcorr_coelution,var_xcorr_shape,var_library_sangle,var_intensity_score,sn_ratio,var_log_sn_score,var_elution_model_fit_score,xx_lda_prelim_score,var_isotope_correlation_score,var_isotope_overlap_score,var_massdev_score,main_var_xx_swath_prelim_score"/>
+        <param name="min_prob" value="0.0"/>
+      </section>
+      <section name="model">
+        <param name="type" value="symmetric"/>
+        <param name="add_zeros" value="0.2"/>
+        <param name="unweighted_fit" value="false"/>
+        <param name="no_imputation" value="false"/>
+        <param name="each_trace" value="false"/>
+        <section name="check">
+          <param name="min_area" value="1.0"/>
+          <param name="boundaries" value="0.5"/>
+          <param name="width" value="10.0"/>
+          <param name="asymmetry" value="10.0"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_FeatureFinderIsotopeWavelet">
+</xml>
+  <xml name="autotest_FeatureFinderMetaboIdent">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderMetaboIdent_1_input.mzML"/>
+      <param name="id" value="FeatureFinderMetaboIdent_1_input.tsv" ftype="tabular"/>
+      <output name="out" file="FeatureFinderMetaboIdent_1_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <section name="extract">
+        <param name="mz_window" value="5.0"/>
+        <param name="n_isotopes" value="2"/>
+        <param name="isotope_pmin" value="0.0"/>
+        <param name="rt_window" value="20.0"/>
+      </section>
+      <section name="detect">
+        <param name="peak_width" value="3.0"/>
+        <param name="min_peak_width" value="0.2"/>
+        <param name="signal_to_noise" value="0.8"/>
+      </section>
+      <section name="model">
+        <param name="type" value="symmetric"/>
+        <param name="add_zeros" value="0.2"/>
+        <param name="unweighted_fit" value="false"/>
+        <param name="no_imputation" value="false"/>
+        <param name="each_trace" value="false"/>
+        <section name="check">
+          <param name="min_area" value="1.0"/>
+          <param name="boundaries" value="0.5"/>
+          <param name="width" value="10.0"/>
+          <param name="asymmetry" value="10.0"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_FeatureFinderMetabo">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderMetabo_1_input.mzML"/>
+      <output name="out" file="FeatureFinderMetabo_1_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <section name="algorithm">
+        <section name="common">
+          <param name="noise_threshold_int" value="10.0"/>
+          <param name="chrom_peak_snr" value="3.0"/>
+          <param name="chrom_fwhm" value="5.0"/>
+        </section>
+        <section name="mtd">
+          <param name="mass_error_ppm" value="20.0"/>
+          <param name="reestimate_mt_sd" value="true"/>
+          <param name="quant_method" value="area"/>
+          <param name="trace_termination_criterion" value="outlier"/>
+          <param name="trace_termination_outliers" value="5"/>
+          <param name="min_sample_rate" value="0.5"/>
+          <param name="min_trace_length" value="5.0"/>
+          <param name="max_trace_length" value="300.0"/>
+        </section>
+        <section name="epd">
+          <param name="enabled" value="true"/>
+          <param name="width_filtering" value="off"/>
+          <param name="min_fwhm" value="3.0"/>
+          <param name="max_fwhm" value="60.0"/>
+          <param name="masstrace_snr_filtering" value="false"/>
+        </section>
+        <section name="ffm">
+          <param name="local_rt_range" value="10.0"/>
+          <param name="local_mz_range" value="6.5"/>
+          <param name="charge_lower_bound" value="1"/>
+          <param name="charge_upper_bound" value="3"/>
+          <param name="report_summed_ints" value="false"/>
+          <param name="enable_RT_filtering" value="true"/>
+          <param name="isotope_filtering_model" value="metabolites (5% RMS)"/>
+          <param name="mz_scoring_13C" value="true"/>
+          <param name="use_smoothed_intensities" value="true"/>
+          <param name="report_convex_hulls" value="false"/>
+          <param name="remove_single_traces" value="false"/>
+          <param name="mz_scoring_by_elements" value="false"/>
+          <param name="elements" value="CHNOPS"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderMetabo_2_input.mzML"/>
+      <output name="out" file="FeatureFinderMetabo_2_noEPD_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <section name="algorithm">
+        <section name="common">
+          <param name="noise_threshold_int" value="100.0"/>
+          <param name="chrom_peak_snr" value="0.0"/>
+          <param name="chrom_fwhm" value="100.0"/>
+        </section>
+        <section name="mtd">
+          <param name="mass_error_ppm" value="5.0"/>
+          <param name="reestimate_mt_sd" value="true"/>
+          <param name="quant_method" value="median"/>
+          <param name="trace_termination_criterion" value="sample_rate"/>
+          <param name="trace_termination_outliers" value="2"/>
+          <param name="min_sample_rate" value="0.01"/>
+          <param name="min_trace_length" value="30.0"/>
+          <param name="max_trace_length" value="3000.0"/>
+        </section>
+        <section name="epd">
+          <param name="enabled" value="false"/>
+          <param name="width_filtering" value="off"/>
+          <param name="min_fwhm" value="10.0"/>
+          <param name="max_fwhm" value="80.0"/>
+          <param name="masstrace_snr_filtering" value="false"/>
+        </section>
+        <section name="ffm">
+          <param name="local_rt_range" value="10.0"/>
+          <param name="local_mz_range" value="4.5"/>
+          <param name="charge_lower_bound" value="1"/>
+          <param name="charge_upper_bound" value="3"/>
+          <param name="report_summed_ints" value="false"/>
+          <param name="enable_RT_filtering" value="false"/>
+          <param name="isotope_filtering_model" value="none"/>
+          <param name="mz_scoring_13C" value="false"/>
+          <param name="use_smoothed_intensities" value="false"/>
+          <param name="report_convex_hulls" value="true"/>
+          <param name="remove_single_traces" value="false"/>
+          <param name="mz_scoring_by_elements" value="false"/>
+          <param name="elements" value="CHNOPS"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderMetabo_3_input.mzML"/>
+      <output name="out" file="FeatureFinderMetabo_3.tmp" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_chrom" file="FeatureFinderMetabo_3_chrom_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <section name="common">
+          <param name="noise_threshold_int" value="10.0"/>
+          <param name="chrom_peak_snr" value="3.0"/>
+          <param name="chrom_fwhm" value="5.0"/>
+        </section>
+        <section name="mtd">
+          <param name="mass_error_ppm" value="5.0"/>
+          <param name="reestimate_mt_sd" value="true"/>
+          <param name="quant_method" value="area"/>
+          <param name="trace_termination_criterion" value="outlier"/>
+          <param name="trace_termination_outliers" value="5"/>
+          <param name="min_sample_rate" value="0.5"/>
+          <param name="min_trace_length" value="5.0"/>
+          <param name="max_trace_length" value="-1.0"/>
+        </section>
+        <section name="epd">
+          <param name="enabled" value="true"/>
+          <param name="width_filtering" value="fixed"/>
+          <param name="min_fwhm" value="3.0"/>
+          <param name="max_fwhm" value="60.0"/>
+          <param name="masstrace_snr_filtering" value="false"/>
+        </section>
+        <section name="ffm">
+          <param name="local_rt_range" value="10.0"/>
+          <param name="local_mz_range" value="6.5"/>
+          <param name="charge_lower_bound" value="1"/>
+          <param name="charge_upper_bound" value="3"/>
+          <param name="report_summed_ints" value="false"/>
+          <param name="enable_RT_filtering" value="true"/>
+          <param name="isotope_filtering_model" value="none"/>
+          <param name="mz_scoring_13C" value="true"/>
+          <param name="use_smoothed_intensities" value="true"/>
+          <param name="report_convex_hulls" value="true"/>
+          <param name="remove_single_traces" value="false"/>
+          <param name="mz_scoring_by_elements" value="false"/>
+          <param name="elements" value="CHNOPS"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_chrom_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderMetabo_3_input.mzML"/>
+      <output name="out" file="FeatureFinderMetabo_4_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_chrom" file="FeatureFinderMetabo_4_chrom_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <section name="common">
+          <param name="noise_threshold_int" value="10.0"/>
+          <param name="chrom_peak_snr" value="3.0"/>
+          <param name="chrom_fwhm" value="5.0"/>
+        </section>
+        <section name="mtd">
+          <param name="mass_error_ppm" value="5.0"/>
+          <param name="reestimate_mt_sd" value="true"/>
+          <param name="quant_method" value="area"/>
+          <param name="trace_termination_criterion" value="outlier"/>
+          <param name="trace_termination_outliers" value="5"/>
+          <param name="min_sample_rate" value="0.5"/>
+          <param name="min_trace_length" value="5.0"/>
+          <param name="max_trace_length" value="-1.0"/>
+        </section>
+        <section name="epd">
+          <param name="enabled" value="true"/>
+          <param name="width_filtering" value="fixed"/>
+          <param name="min_fwhm" value="3.0"/>
+          <param name="max_fwhm" value="60.0"/>
+          <param name="masstrace_snr_filtering" value="false"/>
+        </section>
+        <section name="ffm">
+          <param name="local_rt_range" value="10.0"/>
+          <param name="local_mz_range" value="6.5"/>
+          <param name="charge_lower_bound" value="1"/>
+          <param name="charge_upper_bound" value="3"/>
+          <param name="report_summed_ints" value="false"/>
+          <param name="enable_RT_filtering" value="true"/>
+          <param name="isotope_filtering_model" value="none"/>
+          <param name="mz_scoring_13C" value="true"/>
+          <param name="use_smoothed_intensities" value="true"/>
+          <param name="report_convex_hulls" value="true"/>
+          <param name="remove_single_traces" value="true"/>
+          <param name="mz_scoring_by_elements" value="false"/>
+          <param name="elements" value="CHNOPS"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_chrom_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderMetabo_1_input.mzML"/>
+      <output name="out" file="FeatureFinderMetabo_5_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <section name="algorithm">
+        <section name="common">
+          <param name="noise_threshold_int" value="10.0"/>
+          <param name="chrom_peak_snr" value="3.0"/>
+          <param name="chrom_fwhm" value="5.0"/>
+        </section>
+        <section name="mtd">
+          <param name="mass_error_ppm" value="20.0"/>
+          <param name="reestimate_mt_sd" value="true"/>
+          <param name="quant_method" value="max_height"/>
+          <param name="trace_termination_criterion" value="outlier"/>
+          <param name="trace_termination_outliers" value="5"/>
+          <param name="min_sample_rate" value="0.5"/>
+          <param name="min_trace_length" value="5.0"/>
+          <param name="max_trace_length" value="300.0"/>
+        </section>
+        <section name="epd">
+          <param name="enabled" value="true"/>
+          <param name="width_filtering" value="off"/>
+          <param name="min_fwhm" value="3.0"/>
+          <param name="max_fwhm" value="60.0"/>
+          <param name="masstrace_snr_filtering" value="false"/>
+        </section>
+        <section name="ffm">
+          <param name="local_rt_range" value="10.0"/>
+          <param name="local_mz_range" value="6.5"/>
+          <param name="charge_lower_bound" value="1"/>
+          <param name="charge_upper_bound" value="3"/>
+          <param name="report_summed_ints" value="false"/>
+          <param name="enable_RT_filtering" value="true"/>
+          <param name="isotope_filtering_model" value="metabolites (5% RMS)"/>
+          <param name="mz_scoring_13C" value="true"/>
+          <param name="use_smoothed_intensities" value="true"/>
+          <param name="report_convex_hulls" value="false"/>
+          <param name="remove_single_traces" value="false"/>
+          <param name="mz_scoring_by_elements" value="false"/>
+          <param name="elements" value="CHNOPS"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_FeatureFinderMRM">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderMRM_1_input.mzML"/>
+      <output name="out" file="FeatureFinderMRM_1_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <section name="algorithm">
+        <param name="min_rt_distance" value="10.0"/>
+        <param name="min_num_peaks_per_feature" value="5"/>
+        <param name="min_signal_to_noise_ratio" value="2.0"/>
+        <param name="write_debug_files" value="false"/>
+        <param name="resample_traces" value="false"/>
+        <param name="write_debuginfo" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_FeatureFinderMultiplex">
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderMultiplex_1_input.mzML"/>
+      <output name="out" file="FeatureFinderMultiplex_1_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_multiplets" file="FeatureFinderMultiplex_1_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="algorithm">
+        <param name="labels" value="[Dimethyl0][Dimethyl8]"/>
+        <param name="charge" value="1:4"/>
+        <param name="isotopes_per_peptide" value="3:6"/>
+        <param name="rt_typical" value="90.0"/>
+        <param name="rt_band" value="10.0"/>
+        <param name="rt_min" value="5.0"/>
+        <param name="mz_tolerance" value="40.0"/>
+        <param name="mz_unit" value="ppm"/>
+        <param name="intensity_cutoff" value="10.0"/>
+        <param name="peptide_similarity" value="0.8"/>
+        <param name="averagine_similarity" value="0.75"/>
+        <param name="averagine_similarity_scaling" value="0.75"/>
+        <param name="missed_cleavages" value="1"/>
+        <param name="spectrum_type" value="automatic"/>
+        <param name="averagine_type" value="peptide"/>
+        <param name="knock_out" value="false"/>
+      </section>
+      <section name="labels">
+        <param name="Arg6" value="6.0201290268"/>
+        <param name="Arg10" value="10.0082686"/>
+        <param name="Lys4" value="4.0251069836"/>
+        <param name="Lys6" value="6.0201290268"/>
+        <param name="Lys8" value="8.0141988132"/>
+        <param name="Leu3" value="3.01883"/>
+        <param name="Dimethyl0" value="28.0313"/>
+        <param name="Dimethyl4" value="32.056407"/>
+        <param name="Dimethyl6" value="34.063117"/>
+        <param name="Dimethyl8" value="36.07567"/>
+        <param name="ICPL0" value="105.021464"/>
+        <param name="ICPL4" value="109.046571"/>
+        <param name="ICPL6" value="111.041593"/>
+        <param name="ICPL10" value="115.0667"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,out_multiplets_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderMultiplex_2_input.mzML"/>
+      <output name="out" file="FeatureFinderMultiplex_2_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_multiplets" file="FeatureFinderMultiplex_2_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="algorithm">
+        <param name="labels" value="[][Lys8,Arg10]"/>
+        <param name="charge" value="1:4"/>
+        <param name="isotopes_per_peptide" value="3:6"/>
+        <param name="rt_typical" value="40.0"/>
+        <param name="rt_band" value="5.0"/>
+        <param name="rt_min" value="2.0"/>
+        <param name="mz_tolerance" value="6.0"/>
+        <param name="mz_unit" value="ppm"/>
+        <param name="intensity_cutoff" value="1000.0"/>
+        <param name="peptide_similarity" value="0.5"/>
+        <param name="averagine_similarity" value="0.4"/>
+        <param name="averagine_similarity_scaling" value="0.75"/>
+        <param name="missed_cleavages" value="0"/>
+        <param name="spectrum_type" value="automatic"/>
+        <param name="averagine_type" value="peptide"/>
+        <param name="knock_out" value="false"/>
+      </section>
+      <section name="labels">
+        <param name="Arg6" value="6.0201290268"/>
+        <param name="Arg10" value="10.0082686"/>
+        <param name="Lys4" value="4.0251069836"/>
+        <param name="Lys6" value="6.0201290268"/>
+        <param name="Lys8" value="8.0141988132"/>
+        <param name="Leu3" value="3.01883"/>
+        <param name="Dimethyl0" value="28.0313"/>
+        <param name="Dimethyl4" value="32.056407"/>
+        <param name="Dimethyl6" value="34.063117"/>
+        <param name="Dimethyl8" value="36.07567"/>
+        <param name="ICPL0" value="105.021464"/>
+        <param name="ICPL4" value="109.046571"/>
+        <param name="ICPL6" value="111.041593"/>
+        <param name="ICPL10" value="115.0667"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,out_multiplets_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderMultiplex_3_input.mzML"/>
+      <output name="out" file="FeatureFinderMultiplex_3_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_multiplets" file="FeatureFinderMultiplex_3_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="algorithm">
+        <param name="labels" value="[]"/>
+        <param name="charge" value="5:15"/>
+        <param name="isotopes_per_peptide" value="5:10"/>
+        <param name="rt_typical" value="45.0"/>
+        <param name="rt_band" value="5.0"/>
+        <param name="rt_min" value="2.0"/>
+        <param name="mz_tolerance" value="6.0"/>
+        <param name="mz_unit" value="ppm"/>
+        <param name="intensity_cutoff" value="200.0"/>
+        <param name="peptide_similarity" value="0.5"/>
+        <param name="averagine_similarity" value="0.4"/>
+        <param name="averagine_similarity_scaling" value="0.75"/>
+        <param name="missed_cleavages" value="0"/>
+        <param name="spectrum_type" value="automatic"/>
+        <param name="averagine_type" value="RNA"/>
+        <param name="knock_out" value="false"/>
+      </section>
+      <section name="labels">
+        <param name="Arg6" value="6.0201290268"/>
+        <param name="Arg10" value="10.0082686"/>
+        <param name="Lys4" value="4.0251069836"/>
+        <param name="Lys6" value="6.0201290268"/>
+        <param name="Lys8" value="8.0141988132"/>
+        <param name="Leu3" value="3.01883"/>
+        <param name="Dimethyl0" value="28.0313"/>
+        <param name="Dimethyl4" value="32.056407"/>
+        <param name="Dimethyl6" value="34.063117"/>
+        <param name="Dimethyl8" value="36.07567"/>
+        <param name="ICPL0" value="105.021464"/>
+        <param name="ICPL4" value="109.046571"/>
+        <param name="ICPL6" value="111.041593"/>
+        <param name="ICPL10" value="115.0667"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,out_multiplets_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderMultiplex_4_input.mzML"/>
+      <output name="out" file="FeatureFinderMultiplex_4_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_multiplets" file="FeatureFinderMultiplex_4_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="algorithm">
+        <param name="labels" value="[]"/>
+        <param name="charge" value="5:15"/>
+        <param name="isotopes_per_peptide" value="5:10"/>
+        <param name="rt_typical" value="45.0"/>
+        <param name="rt_band" value="5.0"/>
+        <param name="rt_min" value="2.0"/>
+        <param name="mz_tolerance" value="6.0"/>
+        <param name="mz_unit" value="ppm"/>
+        <param name="intensity_cutoff" value="200.0"/>
+        <param name="peptide_similarity" value="0.5"/>
+        <param name="averagine_similarity" value="0.4"/>
+        <param name="averagine_similarity_scaling" value="0.75"/>
+        <param name="missed_cleavages" value="0"/>
+        <param name="spectrum_type" value="automatic"/>
+        <param name="averagine_type" value="DNA"/>
+        <param name="knock_out" value="false"/>
+      </section>
+      <section name="labels">
+        <param name="Arg6" value="6.0201290268"/>
+        <param name="Arg10" value="10.0082686"/>
+        <param name="Lys4" value="4.0251069836"/>
+        <param name="Lys6" value="6.0201290268"/>
+        <param name="Lys8" value="8.0141988132"/>
+        <param name="Leu3" value="3.01883"/>
+        <param name="Dimethyl0" value="28.0313"/>
+        <param name="Dimethyl4" value="32.056407"/>
+        <param name="Dimethyl6" value="34.063117"/>
+        <param name="Dimethyl8" value="36.07567"/>
+        <param name="ICPL0" value="105.021464"/>
+        <param name="ICPL4" value="109.046571"/>
+        <param name="ICPL6" value="111.041593"/>
+        <param name="ICPL10" value="115.0667"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,out_multiplets_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderMultiplex_5_input.mzML"/>
+      <output name="out" file="FeatureFinderMultiplex_5_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_multiplets" file="FeatureFinderMultiplex_5_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="algorithm">
+        <param name="labels" value="[Dimethyl0][Dimethyl6]"/>
+        <param name="charge" value="1:5"/>
+        <param name="isotopes_per_peptide" value="3:6"/>
+        <param name="rt_typical" value="50.0"/>
+        <param name="rt_band" value="3.0"/>
+        <param name="rt_min" value="8.0"/>
+        <param name="mz_tolerance" value="10.0"/>
+        <param name="mz_unit" value="ppm"/>
+        <param name="intensity_cutoff" value="10000000.0"/>
+        <param name="peptide_similarity" value="0.95"/>
+        <param name="averagine_similarity" value="0.8"/>
+        <param name="averagine_similarity_scaling" value="0.95"/>
+        <param name="missed_cleavages" value="3"/>
+        <param name="spectrum_type" value="profile"/>
+        <param name="averagine_type" value="peptide"/>
+        <param name="knock_out" value="false"/>
+      </section>
+      <section name="labels">
+        <param name="Arg6" value="6.0201290268"/>
+        <param name="Arg10" value="10.0082686"/>
+        <param name="Lys4" value="4.0251069836"/>
+        <param name="Lys6" value="6.0201290268"/>
+        <param name="Lys8" value="8.0141988132"/>
+        <param name="Leu3" value="3.01883"/>
+        <param name="Dimethyl0" value="28.0313"/>
+        <param name="Dimethyl4" value="32.056407"/>
+        <param name="Dimethyl6" value="34.063117"/>
+        <param name="Dimethyl8" value="36.07567"/>
+        <param name="ICPL0" value="105.021464"/>
+        <param name="ICPL4" value="109.046571"/>
+        <param name="ICPL6" value="111.041593"/>
+        <param name="ICPL10" value="115.0667"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,out_multiplets_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderMultiplex_6_input.mzML"/>
+      <output name="out" file="FeatureFinderMultiplex_6_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_multiplets" file="FeatureFinderMultiplex_6_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="algorithm">
+        <param name="labels" value="[Dimethyl0][Dimethyl6]"/>
+        <param name="charge" value="1:5"/>
+        <param name="isotopes_per_peptide" value="3:6"/>
+        <param name="rt_typical" value="50.0"/>
+        <param name="rt_band" value="3.0"/>
+        <param name="rt_min" value="8.0"/>
+        <param name="mz_tolerance" value="10.0"/>
+        <param name="mz_unit" value="ppm"/>
+        <param name="intensity_cutoff" value="10000000.0"/>
+        <param name="peptide_similarity" value="0.95"/>
+        <param name="averagine_similarity" value="0.8"/>
+        <param name="averagine_similarity_scaling" value="1.0"/>
+        <param name="missed_cleavages" value="3"/>
+        <param name="spectrum_type" value="profile"/>
+        <param name="averagine_type" value="peptide"/>
+        <param name="knock_out" value="false"/>
+      </section>
+      <section name="labels">
+        <param name="Arg6" value="6.0201290268"/>
+        <param name="Arg10" value="10.0082686"/>
+        <param name="Lys4" value="4.0251069836"/>
+        <param name="Lys6" value="6.0201290268"/>
+        <param name="Lys8" value="8.0141988132"/>
+        <param name="Leu3" value="3.01883"/>
+        <param name="Dimethyl0" value="28.0313"/>
+        <param name="Dimethyl4" value="32.056407"/>
+        <param name="Dimethyl6" value="34.063117"/>
+        <param name="Dimethyl8" value="36.07567"/>
+        <param name="ICPL0" value="105.021464"/>
+        <param name="ICPL4" value="109.046571"/>
+        <param name="ICPL6" value="111.041593"/>
+        <param name="ICPL10" value="115.0667"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,out_multiplets_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderMultiplex_7_input.mzML"/>
+      <output name="out" file="FeatureFinderMultiplex_7_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_multiplets" file="FeatureFinderMultiplex_7_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="algorithm">
+        <param name="labels" value="[][Dimethyl4]"/>
+        <param name="charge" value="1:4"/>
+        <param name="isotopes_per_peptide" value="3:6"/>
+        <param name="rt_typical" value="40.0"/>
+        <param name="rt_band" value="5.0"/>
+        <param name="rt_min" value="2.0"/>
+        <param name="mz_tolerance" value="6.0"/>
+        <param name="mz_unit" value="ppm"/>
+        <param name="intensity_cutoff" value="1000.0"/>
+        <param name="peptide_similarity" value="0.5"/>
+        <param name="averagine_similarity" value="0.4"/>
+        <param name="averagine_similarity_scaling" value="0.75"/>
+        <param name="missed_cleavages" value="0"/>
+        <param name="spectrum_type" value="automatic"/>
+        <param name="averagine_type" value="peptide"/>
+        <param name="knock_out" value="false"/>
+      </section>
+      <section name="labels">
+        <param name="Arg6" value="6.0201290268"/>
+        <param name="Arg10" value="10.0082686"/>
+        <param name="Lys4" value="4.0251069836"/>
+        <param name="Lys6" value="6.0201290268"/>
+        <param name="Lys8" value="8.0141988132"/>
+        <param name="Leu3" value="3.01883"/>
+        <param name="Dimethyl0" value="28.0313"/>
+        <param name="Dimethyl4" value="31.0094"/>
+        <param name="Dimethyl6" value="34.063117"/>
+        <param name="Dimethyl8" value="36.07567"/>
+        <param name="ICPL0" value="105.021464"/>
+        <param name="ICPL4" value="109.046571"/>
+        <param name="ICPL6" value="111.041593"/>
+        <param name="ICPL10" value="115.0667"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,out_multiplets_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderMultiplex_8_input.mzML"/>
+      <output name="out" file="FeatureFinderMultiplex_8_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_multiplets" file="FeatureFinderMultiplex_8_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="algorithm">
+        <param name="labels" value="[Dimethyl0][Dimethyl4][Dimethyl8]"/>
+        <param name="charge" value="1:7"/>
+        <param name="isotopes_per_peptide" value="3:8"/>
+        <param name="rt_typical" value="50.0"/>
+        <param name="rt_band" value="3.0"/>
+        <param name="rt_min" value="8.0"/>
+        <param name="mz_tolerance" value="10.0"/>
+        <param name="mz_unit" value="ppm"/>
+        <param name="intensity_cutoff" value="10.0"/>
+        <param name="peptide_similarity" value="0.2"/>
+        <param name="averagine_similarity" value="0.25"/>
+        <param name="averagine_similarity_scaling" value="0.95"/>
+        <param name="missed_cleavages" value="4"/>
+        <param name="spectrum_type" value="automatic"/>
+        <param name="averagine_type" value="peptide"/>
+        <param name="knock_out" value="true"/>
+      </section>
+      <section name="labels">
+        <param name="Arg6" value="6.0201290268"/>
+        <param name="Arg10" value="10.0082686"/>
+        <param name="Lys4" value="4.0251069836"/>
+        <param name="Lys6" value="6.0201290268"/>
+        <param name="Lys8" value="8.0141988132"/>
+        <param name="Leu3" value="3.01883"/>
+        <param name="Dimethyl0" value="28.0313"/>
+        <param name="Dimethyl4" value="32.056407"/>
+        <param name="Dimethyl6" value="34.063117"/>
+        <param name="Dimethyl8" value="36.07567"/>
+        <param name="ICPL0" value="105.021464"/>
+        <param name="ICPL4" value="109.046571"/>
+        <param name="ICPL6" value="111.041593"/>
+        <param name="ICPL10" value="115.0667"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,out_multiplets_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderMultiplex_9_input.mzML"/>
+      <output name="out" file="FeatureFinderMultiplex_9_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_multiplets" file="FeatureFinderMultiplex_9_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="algorithm">
+        <param name="labels" value="[0][6.03705]"/>
+        <param name="charge" value="2:8"/>
+        <param name="isotopes_per_peptide" value="3:8"/>
+        <param name="rt_typical" value="40.0"/>
+        <param name="rt_band" value="0.0"/>
+        <param name="rt_min" value="4.0"/>
+        <param name="mz_tolerance" value="10.0"/>
+        <param name="mz_unit" value="ppm"/>
+        <param name="intensity_cutoff" value="1000.0"/>
+        <param name="peptide_similarity" value="0.5"/>
+        <param name="averagine_similarity" value="0.4"/>
+        <param name="averagine_similarity_scaling" value="0.95"/>
+        <param name="missed_cleavages" value="0"/>
+        <param name="spectrum_type" value="centroid"/>
+        <param name="averagine_type" value="peptide"/>
+        <param name="knock_out" value="false"/>
+      </section>
+      <section name="labels">
+        <param name="Arg6" value="6.0201290268"/>
+        <param name="Arg10" value="10.0082686"/>
+        <param name="Lys4" value="4.0251069836"/>
+        <param name="Lys6" value="6.0201290268"/>
+        <param name="Lys8" value="8.0141988132"/>
+        <param name="Leu3" value="3.01883"/>
+        <param name="Dimethyl0" value="28.0313"/>
+        <param name="Dimethyl4" value="32.056407"/>
+        <param name="Dimethyl6" value="34.063117"/>
+        <param name="Dimethyl8" value="36.07567"/>
+        <param name="ICPL0" value="105.021464"/>
+        <param name="ICPL4" value="109.046571"/>
+        <param name="ICPL6" value="111.041593"/>
+        <param name="ICPL10" value="115.0667"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,out_multiplets_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderMultiplex_10_input.mzML"/>
+      <output name="out" file="FeatureFinderMultiplex_10_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_multiplets" file="FeatureFinderMultiplex_10_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="algorithm">
+        <param name="labels" value="[Dimethyl0][Dimethyl6]"/>
+        <param name="charge" value="1:7"/>
+        <param name="isotopes_per_peptide" value="3:6"/>
+        <param name="rt_typical" value="50.0"/>
+        <param name="rt_band" value="5.0"/>
+        <param name="rt_min" value="8.0"/>
+        <param name="mz_tolerance" value="6.0"/>
+        <param name="mz_unit" value="ppm"/>
+        <param name="intensity_cutoff" value="10.0"/>
+        <param name="peptide_similarity" value="0.4"/>
+        <param name="averagine_similarity" value="0.5"/>
+        <param name="averagine_similarity_scaling" value="0.95"/>
+        <param name="missed_cleavages" value="3"/>
+        <param name="spectrum_type" value="profile"/>
+        <param name="averagine_type" value="peptide"/>
+        <param name="knock_out" value="true"/>
+      </section>
+      <section name="labels">
+        <param name="Arg6" value="6.0201290268"/>
+        <param name="Arg10" value="10.0082686"/>
+        <param name="Lys4" value="4.0251069836"/>
+        <param name="Lys6" value="6.0201290268"/>
+        <param name="Lys8" value="8.0141988132"/>
+        <param name="Leu3" value="3.01883"/>
+        <param name="Dimethyl0" value="28.0313"/>
+        <param name="Dimethyl4" value="32.056407"/>
+        <param name="Dimethyl6" value="34.063117"/>
+        <param name="Dimethyl8" value="36.07567"/>
+        <param name="ICPL0" value="105.021464"/>
+        <param name="ICPL4" value="109.046571"/>
+        <param name="ICPL6" value="111.041593"/>
+        <param name="ICPL10" value="115.0667"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,out_multiplets_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderMultiplex_11_input.mzML"/>
+      <output name="out" file="FeatureFinderMultiplex_11_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <section name="algorithm">
+        <param name="labels" value="[]"/>
+        <param name="charge" value="1:4"/>
+        <param name="isotopes_per_peptide" value="3:6"/>
+        <param name="rt_typical" value="1e-05"/>
+        <param name="rt_band" value="0.0"/>
+        <param name="rt_min" value="0.0"/>
+        <param name="mz_tolerance" value="10.0"/>
+        <param name="mz_unit" value="ppm"/>
+        <param name="intensity_cutoff" value="1000.0"/>
+        <param name="peptide_similarity" value="0.5"/>
+        <param name="averagine_similarity" value="0.7"/>
+        <param name="averagine_similarity_scaling" value="0.95"/>
+        <param name="missed_cleavages" value="0"/>
+        <param name="spectrum_type" value="automatic"/>
+        <param name="averagine_type" value="peptide"/>
+        <param name="knock_out" value="false"/>
+      </section>
+      <section name="labels">
+        <param name="Arg6" value="6.0201290268"/>
+        <param name="Arg10" value="10.0082686"/>
+        <param name="Lys4" value="4.0251069836"/>
+        <param name="Lys6" value="6.0201290268"/>
+        <param name="Lys8" value="8.0141988132"/>
+        <param name="Leu3" value="3.01883"/>
+        <param name="Dimethyl0" value="28.0313"/>
+        <param name="Dimethyl4" value="32.056407"/>
+        <param name="Dimethyl6" value="34.063117"/>
+        <param name="Dimethyl8" value="36.07567"/>
+        <param name="ICPL0" value="105.021464"/>
+        <param name="ICPL4" value="109.046571"/>
+        <param name="ICPL6" value="111.041593"/>
+        <param name="ICPL10" value="115.0667"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_FeatureFinderSuperHirn">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderSuperHirn_input_1.mzML"/>
+      <output name="out" file="FeatureFinderSuperHirn_1_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <section name="algorithm">
+        <section name="centroiding">
+          <param name="active" value="false"/>
+          <param name="window_width" value="5"/>
+          <param name="absolute_isotope_mass_precision" value="0.01"/>
+          <param name="relative_isotope_mass_precision" value="10.0"/>
+          <param name="minimal_peak_height" value="0.0"/>
+          <param name="min_ms_signal_intensity" value="50.0"/>
+        </section>
+        <section name="ms1">
+          <param name="precursor_detection_scan_levels" value="1"/>
+          <param name="max_inter_scan_distance" value="0"/>
+          <param name="tr_resolution" value="0.01"/>
+          <param name="intensity_threshold" value="1000.0"/>
+          <param name="max_inter_scan_rt_distance" value="0.1"/>
+          <param name="min_nb_cluster_members" value="4"/>
+          <param name="detectable_isotope_factor" value="0.05"/>
+          <param name="intensity_cv" value="0.9"/>
+          <param name="retention_time_tolerance" value="0.5"/>
+          <param name="mz_tolerance" value="0.0"/>
+        </section>
+        <section name="ms1_feature_merger">
+          <param name="active" value="true"/>
+          <param name="tr_resolution" value="0.01"/>
+          <param name="initial_apex_tr_tolerance" value="5.0"/>
+          <param name="feature_merging_tr_tolerance" value="1.0"/>
+          <param name="intensity_variation_percentage" value="25.0"/>
+          <param name="ppm_tolerance_for_mz_clustering" value="10.0"/>
+        </section>
+        <section name="ms1_feature_selection_options">
+          <param name="start_elution_window" value="0.0"/>
+          <param name="end_elution_window" value="180.0"/>
+          <param name="mz_range_min" value="0.0"/>
+          <param name="mz_range_max" value="2000.0"/>
+          <param name="chrg_range_min" value="1"/>
+          <param name="chrg_range_max" value="5"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureFinderSuperHirn_input_2.mzML"/>
+      <output name="out" file="FeatureFinderSuperHirn_2_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <section name="algorithm">
+        <section name="centroiding">
+          <param name="active" value="true"/>
+          <param name="window_width" value="5"/>
+          <param name="absolute_isotope_mass_precision" value="0.01"/>
+          <param name="relative_isotope_mass_precision" value="10.0"/>
+          <param name="minimal_peak_height" value="0.0"/>
+          <param name="min_ms_signal_intensity" value="50.0"/>
+        </section>
+        <section name="ms1">
+          <param name="precursor_detection_scan_levels" value="1"/>
+          <param name="max_inter_scan_distance" value="0"/>
+          <param name="tr_resolution" value="0.01"/>
+          <param name="intensity_threshold" value="1000.0"/>
+          <param name="max_inter_scan_rt_distance" value="0.1"/>
+          <param name="min_nb_cluster_members" value="4"/>
+          <param name="detectable_isotope_factor" value="0.05"/>
+          <param name="intensity_cv" value="0.9"/>
+          <param name="retention_time_tolerance" value="0.5"/>
+          <param name="mz_tolerance" value="0.0"/>
+        </section>
+        <section name="ms1_feature_merger">
+          <param name="active" value="true"/>
+          <param name="tr_resolution" value="0.01"/>
+          <param name="initial_apex_tr_tolerance" value="5.0"/>
+          <param name="feature_merging_tr_tolerance" value="1.0"/>
+          <param name="intensity_variation_percentage" value="25.0"/>
+          <param name="ppm_tolerance_for_mz_clustering" value="10.0"/>
+        </section>
+        <section name="ms1_feature_selection_options">
+          <param name="start_elution_window" value="0.0"/>
+          <param name="end_elution_window" value="180.0"/>
+          <param name="mz_range_min" value="0.0"/>
+          <param name="mz_range_max" value="2000.0"/>
+          <param name="chrg_range_min" value="1"/>
+          <param name="chrg_range_max" value="5"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_FeatureLinkerLabeled">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureLinkerLabeled_1_input.featureXML"/>
+      <output name="out" file="FeatureLinkerLabeled_1_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="algorithm">
+        <param name="rt_estimate" value="false"/>
+        <param name="rt_pair_dist" value="-1.0"/>
+        <param name="rt_dev_low" value="0.4"/>
+        <param name="rt_dev_high" value="0.4"/>
+        <param name="mz_pair_dists" value="8.0"/>
+        <param name="mz_dev" value="0.1"/>
+        <param name="mrm" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureLinkerLabeled_2_input.featureXML"/>
+      <output name="out" file="FeatureLinkerLabeled_2_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="algorithm">
+        <param name="rt_estimate" value="true"/>
+        <param name="rt_pair_dist" value="-121.0382"/>
+        <param name="rt_dev_low" value="123.3965"/>
+        <param name="rt_dev_high" value="123.3965"/>
+        <param name="mz_pair_dists" value="4.0"/>
+        <param name="mz_dev" value="0.1"/>
+        <param name="mrm" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_FeatureLinkerUnlabeledKD">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureLinkerUnlabeled_1_input1.featureXML,FeatureLinkerUnlabeled_1_input2.featureXML,FeatureLinkerUnlabeled_1_input3.featureXML"/>
+      <output name="out" file="FeatureLinkerUnlabeledKD_1_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="keep_subelements" value="false"/>
+      <section name="algorithm">
+        <param name="mz_unit" value="Da"/>
+        <param name="nr_partitions" value="1"/>
+        <section name="warp">
+          <param name="enabled" value="false"/>
+          <param name="rt_tol" value="100.0"/>
+          <param name="mz_tol" value="0.3"/>
+          <param name="max_pairwise_log_fc" value="0.5"/>
+          <param name="min_rel_cc_size" value="0.5"/>
+          <param name="max_nr_conflicts" value="0"/>
+        </section>
+        <section name="link">
+          <param name="rt_tol" value="100.0"/>
+          <param name="mz_tol" value="0.3"/>
+          <param name="charge_merging" value="With_charge_zero"/>
+          <param name="adduct_merging" value="Any"/>
+        </section>
+        <section name="distance_RT">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_MZ">
+          <param name="exponent" value="2.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_intensity">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+          <param name="log_transform" value="enabled"/>
+        </section>
+        <section name="LOWESS">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureLinkerUnlabeledKD_1_output.consensusXML,FeatureLinkerUnlabeledKD_1_output_2.consensusXML"/>
+      <output name="out" file="FeatureLinkerUnlabeledKD_2_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="keep_subelements" value="true"/>
+      <section name="algorithm">
+        <param name="mz_unit" value="Da"/>
+        <param name="nr_partitions" value="99999"/>
+        <section name="warp">
+          <param name="enabled" value="false"/>
+          <param name="rt_tol" value="100.0"/>
+          <param name="mz_tol" value="0.3"/>
+          <param name="max_pairwise_log_fc" value="0.5"/>
+          <param name="min_rel_cc_size" value="0.5"/>
+          <param name="max_nr_conflicts" value="0"/>
+        </section>
+        <section name="link">
+          <param name="rt_tol" value="100.0"/>
+          <param name="mz_tol" value="0.3"/>
+          <param name="charge_merging" value="With_charge_zero"/>
+          <param name="adduct_merging" value="Any"/>
+        </section>
+        <section name="distance_RT">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_MZ">
+          <param name="exponent" value="2.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_intensity">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+          <param name="log_transform" value="enabled"/>
+        </section>
+        <section name="LOWESS">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureLinkerUnlabeledQT_3_input1.featureXML,FeatureLinkerUnlabeledQT_3_input2.featureXML"/>
+      <output name="out" file="FeatureLinkerUnlabeledKD_3_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="keep_subelements" value="false"/>
+      <section name="algorithm">
+        <param name="mz_unit" value="Da"/>
+        <param name="nr_partitions" value="100"/>
+        <section name="warp">
+          <param name="enabled" value="false"/>
+          <param name="rt_tol" value="100.0"/>
+          <param name="mz_tol" value="0.3"/>
+          <param name="max_pairwise_log_fc" value="0.5"/>
+          <param name="min_rel_cc_size" value="0.5"/>
+          <param name="max_nr_conflicts" value="0"/>
+        </section>
+        <section name="link">
+          <param name="rt_tol" value="100.0"/>
+          <param name="mz_tol" value="0.3"/>
+          <param name="charge_merging" value="With_charge_zero"/>
+          <param name="adduct_merging" value="Any"/>
+        </section>
+        <section name="distance_RT">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_MZ">
+          <param name="exponent" value="2.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_intensity">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+          <param name="log_transform" value="enabled"/>
+        </section>
+        <section name="LOWESS">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureLinkerUnlabeledKD_dc_input1.featureXML,FeatureLinkerUnlabeledKD_dc_input2.featureXML,FeatureLinkerUnlabeledKD_dc_input3.featureXML,FeatureLinkerUnlabeledKD_dc_input1_2.featureXML,FeatureLinkerUnlabeledKD_dc_input2_2.featureXML"/>
+      <output name="out" file="FeatureLinkerUnlabeledKD_4_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="keep_subelements" value="false"/>
+      <section name="algorithm">
+        <param name="mz_unit" value="ppm"/>
+        <param name="nr_partitions" value="100"/>
+        <section name="warp">
+          <param name="enabled" value="true"/>
+          <param name="rt_tol" value="100.0"/>
+          <param name="mz_tol" value="5.0"/>
+          <param name="max_pairwise_log_fc" value="0.5"/>
+          <param name="min_rel_cc_size" value="0.5"/>
+          <param name="max_nr_conflicts" value="0"/>
+        </section>
+        <section name="link">
+          <param name="rt_tol" value="30.0"/>
+          <param name="mz_tol" value="10.0"/>
+          <param name="charge_merging" value="Identical"/>
+          <param name="adduct_merging" value="Any"/>
+        </section>
+        <section name="distance_RT">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_MZ">
+          <param name="exponent" value="2.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_intensity">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+          <param name="log_transform" value="enabled"/>
+        </section>
+        <section name="LOWESS">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureLinkerUnlabeledKD_dc_input1.featureXML,FeatureLinkerUnlabeledKD_dc_input2.featureXML,FeatureLinkerUnlabeledKD_dc_input3.featureXML,FeatureLinkerUnlabeledKD_dc_input1_2.featureXML,FeatureLinkerUnlabeledKD_dc_input2_2.featureXML"/>
+      <output name="out" file="FeatureLinkerUnlabeledKD_5_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="keep_subelements" value="false"/>
+      <section name="algorithm">
+        <param name="mz_unit" value="ppm"/>
+        <param name="nr_partitions" value="100"/>
+        <section name="warp">
+          <param name="enabled" value="true"/>
+          <param name="rt_tol" value="100.0"/>
+          <param name="mz_tol" value="5.0"/>
+          <param name="max_pairwise_log_fc" value="0.5"/>
+          <param name="min_rel_cc_size" value="0.5"/>
+          <param name="max_nr_conflicts" value="0"/>
+        </section>
+        <section name="link">
+          <param name="rt_tol" value="30.0"/>
+          <param name="mz_tol" value="10.0"/>
+          <param name="charge_merging" value="With_charge_zero"/>
+          <param name="adduct_merging" value="Any"/>
+        </section>
+        <section name="distance_RT">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_MZ">
+          <param name="exponent" value="2.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_intensity">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+          <param name="log_transform" value="enabled"/>
+        </section>
+        <section name="LOWESS">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureLinkerUnlabeledKD_dc_input1.featureXML,FeatureLinkerUnlabeledKD_dc_input2.featureXML,FeatureLinkerUnlabeledKD_dc_input3.featureXML,FeatureLinkerUnlabeledKD_dc_input1_2.featureXML,FeatureLinkerUnlabeledKD_dc_input2_2.featureXML"/>
+      <output name="out" file="FeatureLinkerUnlabeledKD_6_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="keep_subelements" value="false"/>
+      <section name="algorithm">
+        <param name="mz_unit" value="ppm"/>
+        <param name="nr_partitions" value="100"/>
+        <section name="warp">
+          <param name="enabled" value="true"/>
+          <param name="rt_tol" value="100.0"/>
+          <param name="mz_tol" value="5.0"/>
+          <param name="max_pairwise_log_fc" value="0.5"/>
+          <param name="min_rel_cc_size" value="0.5"/>
+          <param name="max_nr_conflicts" value="0"/>
+        </section>
+        <section name="link">
+          <param name="rt_tol" value="30.0"/>
+          <param name="mz_tol" value="10.0"/>
+          <param name="charge_merging" value="Any"/>
+          <param name="adduct_merging" value="With_unknown_adducts"/>
+        </section>
+        <section name="distance_RT">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_MZ">
+          <param name="exponent" value="2.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_intensity">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+          <param name="log_transform" value="enabled"/>
+        </section>
+        <section name="LOWESS">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureLinkerUnlabeledKD_dc_input1.featureXML,FeatureLinkerUnlabeledKD_dc_input2.featureXML,FeatureLinkerUnlabeledKD_dc_input3.featureXML,FeatureLinkerUnlabeledKD_dc_input1_2.featureXML,FeatureLinkerUnlabeledKD_dc_input2_2.featureXML"/>
+      <output name="out" file="FeatureLinkerUnlabeledKD_7_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="keep_subelements" value="false"/>
+      <section name="algorithm">
+        <param name="mz_unit" value="ppm"/>
+        <param name="nr_partitions" value="100"/>
+        <section name="warp">
+          <param name="enabled" value="true"/>
+          <param name="rt_tol" value="100.0"/>
+          <param name="mz_tol" value="5.0"/>
+          <param name="max_pairwise_log_fc" value="0.5"/>
+          <param name="min_rel_cc_size" value="0.5"/>
+          <param name="max_nr_conflicts" value="0"/>
+        </section>
+        <section name="link">
+          <param name="rt_tol" value="30.0"/>
+          <param name="mz_tol" value="10.0"/>
+          <param name="charge_merging" value="Any"/>
+          <param name="adduct_merging" value="Identical"/>
+        </section>
+        <section name="distance_RT">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_MZ">
+          <param name="exponent" value="2.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_intensity">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+          <param name="log_transform" value="enabled"/>
+        </section>
+        <section name="LOWESS">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_FeatureLinkerUnlabeledQT">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureLinkerUnlabeled_1_input1.featureXML,FeatureLinkerUnlabeled_1_input2.featureXML,FeatureLinkerUnlabeled_1_input3.featureXML"/>
+      <output name="out" file="FeatureLinkerUnlabeledQT_1_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="keep_subelements" value="false"/>
+      <section name="algorithm">
+        <param name="use_identifications" value="false"/>
+        <param name="nr_partitions" value="100"/>
+        <param name="ignore_charge" value="false"/>
+        <param name="ignore_adduct" value="true"/>
+        <section name="distance_RT">
+          <param name="max_difference" value="100.0"/>
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_MZ">
+          <param name="max_difference" value="0.3"/>
+          <param name="unit" value="Da"/>
+          <param name="exponent" value="2.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_intensity">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="0.0"/>
+          <param name="log_transform" value="disabled"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureLinkerUnlabeledQT_1_output.consensusXML,FeatureLinkerUnlabeledQT_1_output_2.consensusXML"/>
+      <output name="out" file="FeatureLinkerUnlabeledQT_2_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="keep_subelements" value="true"/>
+      <section name="algorithm">
+        <param name="use_identifications" value="false"/>
+        <param name="nr_partitions" value="100"/>
+        <param name="ignore_charge" value="false"/>
+        <param name="ignore_adduct" value="true"/>
+        <section name="distance_RT">
+          <param name="max_difference" value="100.0"/>
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_MZ">
+          <param name="max_difference" value="0.3"/>
+          <param name="unit" value="Da"/>
+          <param name="exponent" value="2.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_intensity">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="0.0"/>
+          <param name="log_transform" value="disabled"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureLinkerUnlabeledQT_3_input1.featureXML,FeatureLinkerUnlabeledQT_3_input2.featureXML"/>
+      <output name="out" file="FeatureLinkerUnlabeledQT_3_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="keep_subelements" value="false"/>
+      <section name="algorithm">
+        <param name="use_identifications" value="false"/>
+        <param name="nr_partitions" value="99999"/>
+        <param name="ignore_charge" value="false"/>
+        <param name="ignore_adduct" value="true"/>
+        <section name="distance_RT">
+          <param name="max_difference" value="100.0"/>
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_MZ">
+          <param name="max_difference" value="0.3"/>
+          <param name="unit" value="Da"/>
+          <param name="exponent" value="2.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_intensity">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="0.0"/>
+          <param name="log_transform" value="disabled"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureLinkerUnlabeled_1_input1.featureXML,FeatureLinkerUnlabeled_1_input2.featureXML,FeatureLinkerUnlabeled_1_input3.featureXML"/>
+      <output name="out" file="FeatureLinkerUnlabeledQT_4_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="keep_subelements" value="false"/>
+      <section name="algorithm">
+        <param name="use_identifications" value="true"/>
+        <param name="nr_partitions" value="100"/>
+        <param name="ignore_charge" value="false"/>
+        <param name="ignore_adduct" value="true"/>
+        <section name="distance_RT">
+          <param name="max_difference" value="100.0"/>
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_MZ">
+          <param name="max_difference" value="0.3"/>
+          <param name="unit" value="Da"/>
+          <param name="exponent" value="2.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_intensity">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="0.0"/>
+          <param name="log_transform" value="disabled"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureLinkerUnlabeledQT_5_input1.featureXML,FeatureLinkerUnlabeledQT_5_input2.featureXML,FeatureLinkerUnlabeledQT_5_input3.featureXML"/>
+      <output name="out" file="FeatureLinkerUnlabeledQT_5_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="keep_subelements" value="false"/>
+      <section name="algorithm">
+        <param name="use_identifications" value="false"/>
+        <param name="nr_partitions" value="100"/>
+        <param name="ignore_charge" value="false"/>
+        <param name="ignore_adduct" value="true"/>
+        <section name="distance_RT">
+          <param name="max_difference" value="200.0"/>
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_MZ">
+          <param name="max_difference" value="0.3"/>
+          <param name="unit" value="Da"/>
+          <param name="exponent" value="2.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_intensity">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="0.0"/>
+          <param name="log_transform" value="disabled"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureLinkerUnlabeledQT_5_input1.featureXML,FeatureLinkerUnlabeledQT_5_input2.featureXML,FeatureLinkerUnlabeledQT_5_input3.featureXML"/>
+      <output name="out" file="FeatureLinkerUnlabeledQT_6_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="keep_subelements" value="false"/>
+      <section name="algorithm">
+        <param name="use_identifications" value="true"/>
+        <param name="nr_partitions" value="100"/>
+        <param name="ignore_charge" value="false"/>
+        <param name="ignore_adduct" value="true"/>
+        <section name="distance_RT">
+          <param name="max_difference" value="200.0"/>
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_MZ">
+          <param name="max_difference" value="0.3"/>
+          <param name="unit" value="Da"/>
+          <param name="exponent" value="2.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_intensity">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="0.0"/>
+          <param name="log_transform" value="disabled"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_FeatureLinkerUnlabeled">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureLinkerUnlabeled_1_input1.featureXML,FeatureLinkerUnlabeled_1_input2.featureXML,FeatureLinkerUnlabeled_1_input3.featureXML"/>
+      <output name="out" file="FeatureLinkerUnlabeled_1_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="keep_subelements" value="false"/>
+      <section name="algorithm">
+        <param name="second_nearest_gap" value="2.0"/>
+        <param name="use_identifications" value="false"/>
+        <param name="ignore_charge" value="true"/>
+        <param name="ignore_adduct" value="true"/>
+        <section name="distance_RT">
+          <param name="max_difference" value="200.0"/>
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_MZ">
+          <param name="max_difference" value="0.5"/>
+          <param name="unit" value="Da"/>
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_intensity">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="0.0"/>
+          <param name="log_transform" value="disabled"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureLinkerUnlabeled_2_input1.featureXML,FeatureLinkerUnlabeled_2_input2.featureXML,FeatureLinkerUnlabeled_2_input3.featureXML"/>
+      <output name="out" file="FeatureLinkerUnlabeled_2_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="keep_subelements" value="false"/>
+      <section name="algorithm">
+        <param name="second_nearest_gap" value="2.0"/>
+        <param name="use_identifications" value="false"/>
+        <param name="ignore_charge" value="false"/>
+        <param name="ignore_adduct" value="true"/>
+        <section name="distance_RT">
+          <param name="max_difference" value="100.0"/>
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_MZ">
+          <param name="max_difference" value="0.3"/>
+          <param name="unit" value="Da"/>
+          <param name="exponent" value="2.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_intensity">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="0.5"/>
+          <param name="log_transform" value="disabled"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureLinkerUnlabeled_3_input1.featureXML,FeatureLinkerUnlabeled_3_input2.featureXML"/>
+      <output name="out" file="FeatureLinkerUnlabeled_3_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="keep_subelements" value="false"/>
+      <section name="algorithm">
+        <param name="second_nearest_gap" value="1.5"/>
+        <param name="use_identifications" value="false"/>
+        <param name="ignore_charge" value="true"/>
+        <param name="ignore_adduct" value="true"/>
+        <section name="distance_RT">
+          <param name="max_difference" value="30.0"/>
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_MZ">
+          <param name="max_difference" value="0.3"/>
+          <param name="unit" value="Da"/>
+          <param name="exponent" value="2.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_intensity">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="0.0"/>
+          <param name="log_transform" value="disabled"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FeatureLinkerUnlabeled_1_input1.featureXML,FeatureLinkerUnlabeled_1_input2.featureXML,FeatureLinkerUnlabeled_1_input3.featureXML"/>
+      <output name="out" file="FeatureLinkerUnlabeled_4_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="keep_subelements" value="false"/>
+      <section name="algorithm">
+        <param name="second_nearest_gap" value="2.0"/>
+        <param name="use_identifications" value="true"/>
+        <param name="ignore_charge" value="true"/>
+        <param name="ignore_adduct" value="true"/>
+        <section name="distance_RT">
+          <param name="max_difference" value="200.0"/>
+          <param name="exponent" value="2.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_MZ">
+          <param name="max_difference" value="0.5"/>
+          <param name="unit" value="Da"/>
+          <param name="exponent" value="2.0"/>
+          <param name="weight" value="1.0"/>
+        </section>
+        <section name="distance_intensity">
+          <param name="exponent" value="1.0"/>
+          <param name="weight" value="0.0"/>
+          <param name="log_transform" value="disabled"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_FFEval">
+</xml>
+  <xml name="autotest_FidoAdapter">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="keep_zero_group" value="false"/>
+        <param name="accuracy" value=""/>
+        <param name="log2_states_precalc" value="0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FidoAdapter_1_input.idXML"/>
+      <output name="out" file="FidoAdapter_1_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="separate_runs" value="false"/>
+      <param name="greedy_group_resolution" value="false"/>
+      <param name="no_cleanup" value="false"/>
+      <param name="all_PSMs" value="false"/>
+      <param name="group_level" value="false"/>
+      <param name="log2_states" value="0"/>
+      <section name="prob">
+        <param name="protein" value="0.0"/>
+        <param name="peptide" value="0.0"/>
+        <param name="spurious" value="0.0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="keep_zero_group" value="false"/>
+        <param name="accuracy" value=""/>
+        <param name="log2_states_precalc" value="0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FidoAdapter_1_input.idXML"/>
+      <output name="out" file="FidoAdapter_2_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="separate_runs" value="true"/>
+      <param name="greedy_group_resolution" value="false"/>
+      <param name="no_cleanup" value="false"/>
+      <param name="all_PSMs" value="false"/>
+      <param name="group_level" value="false"/>
+      <param name="log2_states" value="0"/>
+      <section name="prob">
+        <param name="protein" value="0.0"/>
+        <param name="peptide" value="0.0"/>
+        <param name="spurious" value="0.0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="keep_zero_group" value="false"/>
+        <param name="accuracy" value=""/>
+        <param name="log2_states_precalc" value="0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FidoAdapter_1_input.idXML"/>
+      <output name="out" file="FidoAdapter_3_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="separate_runs" value="false"/>
+      <param name="greedy_group_resolution" value="false"/>
+      <param name="no_cleanup" value="false"/>
+      <param name="all_PSMs" value="true"/>
+      <param name="group_level" value="true"/>
+      <param name="log2_states" value="0"/>
+      <section name="prob">
+        <param name="protein" value="0.0"/>
+        <param name="peptide" value="0.0"/>
+        <param name="spurious" value="0.0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="keep_zero_group" value="false"/>
+        <param name="accuracy" value=""/>
+        <param name="log2_states_precalc" value="0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FidoAdapter_4_input.idXML"/>
+      <output name="out" file="FidoAdapter_4_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="separate_runs" value="false"/>
+      <param name="greedy_group_resolution" value="false"/>
+      <param name="no_cleanup" value="false"/>
+      <param name="all_PSMs" value="false"/>
+      <param name="group_level" value="false"/>
+      <param name="log2_states" value="0"/>
+      <section name="prob">
+        <param name="protein" value="0.0"/>
+        <param name="peptide" value="0.0"/>
+        <param name="spurious" value="0.0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="keep_zero_group" value="false"/>
+        <param name="accuracy" value=""/>
+        <param name="log2_states_precalc" value="0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FidoAdapter_5_input.idXML"/>
+      <output name="out" file="FidoAdapter_5_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="separate_runs" value="false"/>
+      <param name="greedy_group_resolution" value="true"/>
+      <param name="no_cleanup" value="false"/>
+      <param name="all_PSMs" value="false"/>
+      <param name="group_level" value="false"/>
+      <param name="log2_states" value="0"/>
+      <section name="prob">
+        <param name="protein" value="0.0"/>
+        <param name="peptide" value="0.0"/>
+        <param name="spurious" value="0.0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="keep_zero_group" value="false"/>
+        <param name="accuracy" value=""/>
+        <param name="log2_states_precalc" value="0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FidoAdapter_1_input.idXML"/>
+      <output name="out" file="FidoAdapter_6_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="separate_runs" value="false"/>
+      <param name="greedy_group_resolution" value="false"/>
+      <param name="no_cleanup" value="false"/>
+      <param name="all_PSMs" value="false"/>
+      <param name="group_level" value="false"/>
+      <param name="log2_states" value="0"/>
+      <section name="prob">
+        <param name="protein" value="0.9"/>
+        <param name="peptide" value="0.01"/>
+        <param name="spurious" value="0.0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_FileConverter">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_1_input.mzData"/>
+      <output name="out" file="FileConverter_1_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_2_input.someInputDTA2D"/>
+      <output name="out" file="FileConverter_2_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_3_input.featureXML"/>
+      <output name="out" file="FileConverter_3_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_4_input.mzXML"/>
+      <output name="out" file="FileConverter_4_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_5_input.mzML"/>
+      <output name="out" file="FileConverter_5_output.mzXML" compare="sim_size" delta="5700" ftype="mzxml"/>
+      <param name="out_type" value="mzXML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_6_input.mzML"/>
+      <output name="out" file="FileConverter_6_output.mzXML" compare="sim_size" delta="5700" ftype="mzxml"/>
+      <param name="out_type" value="mzXML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_7_input.consensusXML"/>
+      <output name="out" file="FileConverter_7_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="out_type" value="featureXML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_8_input.mzML"/>
+      <output name="out" file="FileConverter_8_output.mzData" compare="sim_size" delta="5700" ftype="mzdata"/>
+      <param name="out_type" value="mzData"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_9_input.consensusXML"/>
+      <output name="out" file="FileConverter_9_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="out_type" value="featureXML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_10_input.edta" ftype="edta"/>
+      <output name="out" file="FileConverter_10_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="out_type" value="featureXML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_11_input.peplist"/>
+      <output name="out" file="FileConverter_11_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="out_type" value="featureXML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_12_input.peptides.tsv" ftype="tabular"/>
+      <output name="out" file="FileConverter_12_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="out_type" value="featureXML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_13_input.peptides.kroenik"/>
+      <output name="out" file="FileConverter_13_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="out_type" value="featureXML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_9_output.featureXML"/>
+      <output name="out" file="FileConverter_14_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="out_type" value="consensusXML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_10_input.edta" ftype="edta"/>
+      <output name="out" file="FileConverter_15_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="out_type" value="consensusXML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_16_input.edta" ftype="edta"/>
+      <output name="out" file="FileConverter_16_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="out_type" value="consensusXML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_17_input.consensusXML"/>
+      <output name="out" file="FileConverter_17.csv" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="out_type" value="csv"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_17_input.consensusXML"/>
+      <output name="out" file="FileConverter_17_output.ibspectra.csv" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="out_type" value="csv"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="true"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_1_input.mzML"/>
+      <output name="out" file="FileConverter_19_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_20_input.featureXML"/>
+      <output name="out" file="FileConverter_20_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="out_type" value="featureXML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="true"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_4_input.mzXML"/>
+      <output name="out" file="FileConverter_4_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_23_input.mzML"/>
+      <output name="out" file="FileConverter_23_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="true"/>
+        <param name="lossy_mass_accuracy" value="0.0001"/>
+        <param name="process_lowmemory" value="true"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_1_input.mzML"/>
+      <output name="out" file="FileConverter_24_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="true"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="true"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_1_input.mzML"/>
+      <output name="out" file="FileConverter_25_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="true"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_1_input.mzML"/>
+      <output name="out" file="FileConverter_26_output.mzXML" compare="sim_size" delta="5700" ftype="mzxml"/>
+      <param name="out_type" value="mzXML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="true"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_26_output.mzXML"/>
+      <output name="out" file="FileConverter_26-2_output.mzXML" compare="sim_size" delta="5700" ftype="mzxml"/>
+      <param name="out_type" value="mzXML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="true"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_27_input.mzML"/>
+      <output name="out" file="FileConverter_27_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="true"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_28_input.mzML"/>
+      <output name="out" file="FileConverter_28_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="true"/>
+        <param name="lossy_mass_accuracy" value="1e-05"/>
+        <param name="process_lowmemory" value="true"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_17_input.mzML"/>
+      <output name="out" file="FileConverter_29_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_29_output.mzML"/>
+      <output name="out" file="FileConverter_29.back.tmp" compare="sim_size" delta="5700"/>
+      <param name="out_type" value="mzML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="multiple"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_30_input.mzML"/>
+      <output name="out" file="FileConverter_30_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="single"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_30_output.mzML"/>
+      <output name="out" file="FileConverter_31_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileConverter_32_input.mzML"/>
+      <output name="out" file="FileConverter_32_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="UID_postprocessing" value="ensure"/>
+        <param name="TIC_DTA2D" value="false"/>
+        <param name="MGF_compact" value="false"/>
+        <param name="force_MaxQuant_compatibility" value="false"/>
+        <param name="convert_to_chromatograms" value="false"/>
+        <param name="force_TPP_compatibility" value="false"/>
+        <param name="change_im_format" value="none"/>
+        <param name="write_scan_index" value="true"/>
+        <param name="lossy_compression" value="false"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="no_peak_picking" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ginkgotoxin-ms-switching.raw"/>
+      <output name="out" file="ginkgotoxin-ms-switching_out_tmp.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzml"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_FileFilter">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_1_input.mzML"/>
+      <output name="out" file="FileFilter_1_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="rt" value=":30"/>
+      <param name="mz" value=":1000"/>
+      <param name="int" value=":20000"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_1_input.mzML"/>
+      <output name="out" file="FileFilter_2_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="rt" value="30:"/>
+      <param name="mz" value="1000:"/>
+      <param name="int" value="100:"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_1_input.mzML"/>
+      <output name="out" file="FileFilter_3_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="2"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_4_input.mzML"/>
+      <output name="out" file="FileFilter_4_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="true"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_5_input.featureXML"/>
+      <output name="out" file="FileFilter_5_out.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="out_type" value="featureXML"/>
+      <param name="rt" value=":1000"/>
+      <param name="mz" value=":480"/>
+      <param name="int" value=":79000"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":0.6"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":3"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_5_input.featureXML"/>
+      <output name="out" file="FileFilter_6_out.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="out_type" value="featureXML"/>
+      <param name="rt" value="1000:"/>
+      <param name="mz" value="440:"/>
+      <param name="int" value="70000:"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value="0.51:"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value="3:"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_7_input.mzML"/>
+      <output name="out" file="FileFilter_7_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value="7000:"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_8_input.consensusXML"/>
+      <output name="out" file="FileFilter_8_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="out_type" value="consensusXML"/>
+      <param name="rt" value="600:1400"/>
+      <param name="mz" value="700:2300"/>
+      <param name="int" value="1100:6000"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_9_input.mzML"/>
+      <output name="out" file="FileFilter_9_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value="SelectedIonMonitoring"/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_10_input.mzML"/>
+      <output name="out" file="FileFilter_10_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value="Collision-induced dissociation"/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_11_input.mzML"/>
+      <output name="out" file="FileFilter_11_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value="Plasma desorption"/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_12_input.mzML"/>
+      <output name="out" file="FileFilter_12_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="true"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_13_input.consensusXML"/>
+      <output name="out" file="FileFilter_13_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="out_type" value="featureXML"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value="2"/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_14_input.consensusXML"/>
+      <output name="out" file="FileFilter_14_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="out_type" value="consensusXML"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value="0 2"/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_15_input.featureXML"/>
+      <output name="out" file="FileFilter_15_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="out_type" value="featurexml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value="&quot;Oxidation&quot;"/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="true"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_15_input.featureXML"/>
+      <output name="out" file="FileFilter_16_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="out_type" value="featurexml"/>
+      <param name="rt" value="3000:4000"/>
+      <param name="mz" value="400:600"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value="&quot;Oxidation&quot;"/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="true"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_15_input.featureXML"/>
+      <output name="out" file="FileFilter_17_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="out_type" value="featurexml"/>
+      <param name="rt" value="3000:4000"/>
+      <param name="mz" value="400:600"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="true"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_18_input.consensusXML"/>
+      <output name="out" file="FileFilter_18_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="out_type" value="consensusxml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value="&quot;Oxidation&quot;"/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="true"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_18_input.consensusXML"/>
+      <output name="out" file="FileFilter_19_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="out_type" value="consensusxml"/>
+      <param name="rt" value="3000:4000"/>
+      <param name="mz" value="400:600"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="true"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_15_input.featureXML"/>
+      <output name="out" file="FileFilter_20_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="out_type" value="featurexml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value="&quot;YDL217C&quot;"/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="true"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_15_input.featureXML"/>
+      <output name="out" file="FileFilter_21_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="out_type" value="featurexml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="true"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="true"/>
+        <param name="remove_unassigned_ids" value="true"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_22_input.consensusXML"/>
+      <output name="out" file="FileFilter_22_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="out_type" value="consensusxml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value="&quot;distinct_charges&quot; &quot;gt&quot; &quot;1,2&quot;"/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_22_input.consensusXML"/>
+      <output name="out" file="FileFilter_22_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="out_type" value="consensusxml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value="&quot;distinct_charges_size&quot; &quot;gt&quot; &quot;2&quot;"/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_22_input.consensusXML"/>
+      <output name="out" file="FileFilter_24_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="out_type" value="consensusxml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value="&quot;DOESNOTEXIST&quot; &quot;lt&quot; &quot;whatever&quot;"/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_25_input.mzML.gz"/>
+      <output name="out" file="FileFilter_25_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="blacklist" value="FileFilter_25_input.idXML"/>
+        <param name="rt" value="1.0"/>
+        <param name="mz" value="0.05"/>
+        <param name="blacklist_imperfect" value="true"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_25_input.mzML.gz"/>
+      <output name="out" file="FileFilter_25_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="blacklist" value="FileFilter_25_input.idXML"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="true"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_28_input.mzML.gz"/>
+      <output name="out" file="FileFilter_28_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value="832:836"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="2"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_28_input.mzML.gz"/>
+      <output name="out" file="FileFilter_29_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value="832:836"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_28_input.mzML.gz"/>
+      <output name="out" file="FileFilter_30_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value="832:836"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_31_34_input.mzML"/>
+      <output name="out" file="FileFilter_31_remove_collision_energy.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":2"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_31_34_input.mzML"/>
+      <output name="out" file="FileFilter_32_select_collision_energy.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":2"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_31_34_input.mzML"/>
+      <output name="out" file="FileFilter_33_remove_isolation_window.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":35"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_31_34_input.mzML"/>
+      <output name="out" file="FileFilter_34_select_isolation_window.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":35"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_1_input.mzML"/>
+      <output name="out" file="FileFilter_35_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_1_input.mzML"/>
+      <output name="out" file="FileFilter_36_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="false"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_1_input.mzML"/>
+      <output name="out" file="FileFilter_37_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="linear"/>
+          <param name="lossy_mass_accuracy" value="0.0001"/>
+          <param name="intensity" value="slof"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_1_input.mzML"/>
+      <output name="out" file="FileFilter_38_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="linear"/>
+          <param name="lossy_mass_accuracy" value="0.0001"/>
+          <param name="intensity" value="pic"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_40_input.mzML"/>
+      <output name="out" file="FileFilter_40_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value="positive"/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_40_input.mzML"/>
+      <output name="out" file="FileFilter_41_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value="negative"/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_40_input.mzML"/>
+      <output name="out" file="FileFilter_42_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_43_input.mzML"/>
+      <output name="out" file="FileFilter_43.tmp.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_43.tmp.mzML"/>
+      <output name="out" file="FileFilter_43.dummy.tmp" compare="sim_size" delta="5700"/>
+      <param name="out_type" value="mzML"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_44_input.mzML"/>
+      <output name="out" file="FileFilter_44_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzML"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_45_input.featureXML"/>
+      <output name="out" file="FileFilter_45_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="out_type" value="featurexml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value="&quot;YSFS&quot; &quot;STLIPPPSK(Label:13C(6)15N(2))&quot;"/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_46_input.featureXML"/>
+      <output name="out" file="FileFilter_46_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="out_type" value="featurexml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value="&quot;YSFS&quot; &quot;STLIPPPSK(Label:13C(6)15N(2))&quot;"/>
+        <param name="sequence_comparison_method" value="exact"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_47_input.mzML"/>
+      <output name="out" file="FileFilter_47_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="file" value="FileFilter_47_input_select.mzML"/>
+          <param name="similarity_threshold" value="0.9"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_47_input.mzML"/>
+      <output name="out" file="FileFilter_48_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="false"/>
+        <section name="numpress">
+          <param name="masstime" value="none"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="none"/>
+          <param name="float_da" value="none"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="file" value="FileFilter_47_input_select.mzML"/>
+          <param name="similarity_threshold" value="0.9"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="false"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_49_input.mzML"/>
+      <output name="out" file="FileFilter_49_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzml"/>
+      <param name="rt" value=":"/>
+      <param name="mz" value=":"/>
+      <param name="int" value=":"/>
+      <param name="sort" value="false"/>
+      <section name="peak_options">
+        <param name="sn" value="0.0"/>
+        <param name="rm_pc_charge" value=""/>
+        <param name="pc_mz_range" value=":"/>
+        <param name="pc_mz_list" value=""/>
+        <param name="level" value="1 2 3"/>
+        <param name="sort_peaks" value="false"/>
+        <param name="no_chromatograms" value="false"/>
+        <param name="remove_chromatograms" value="false"/>
+        <param name="remove_empty" value="false"/>
+        <param name="mz_precision" value="64"/>
+        <param name="int_precision" value="32"/>
+        <param name="indexed_file" value="true"/>
+        <param name="zlib_compression" value="true"/>
+        <section name="numpress">
+          <param name="masstime" value="linear"/>
+          <param name="lossy_mass_accuracy" value="-1.0"/>
+          <param name="intensity" value="pic"/>
+          <param name="float_da" value="slof"/>
+        </section>
+      </section>
+      <section name="spectra">
+        <param name="remove_zoom" value="false"/>
+        <param name="remove_mode" value=""/>
+        <param name="remove_activation" value=""/>
+        <param name="remove_collision_energy" value=":"/>
+        <param name="remove_isolation_window_width" value=":"/>
+        <param name="select_zoom" value="false"/>
+        <param name="select_mode" value=""/>
+        <param name="select_activation" value=""/>
+        <param name="select_collision_energy" value=":"/>
+        <param name="select_isolation_window_width" value=":"/>
+        <param name="select_polarity" value=""/>
+        <section name="blackorwhitelist">
+          <param name="similarity_threshold" value="-1.0"/>
+          <param name="rt" value="0.01"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+          <param name="blacklist" value="true"/>
+        </section>
+      </section>
+      <section name="feature">
+        <param name="q" value=":"/>
+      </section>
+      <section name="consensus">
+        <param name="map" value=""/>
+        <param name="map_and" value="false"/>
+        <section name="blackorwhitelist">
+          <param name="blacklist" value="true"/>
+          <param name="maps" value=""/>
+          <param name="rt" value="60.0"/>
+          <param name="mz" value="0.01"/>
+          <param name="use_ppm_tolerance" value="false"/>
+        </section>
+      </section>
+      <section name="f_and_c">
+        <param name="charge" value=":"/>
+        <param name="size" value=":"/>
+        <param name="remove_meta" value=""/>
+      </section>
+      <section name="id">
+        <param name="remove_clashes" value="false"/>
+        <param name="keep_best_score_id" value="false"/>
+        <param name="sequences_whitelist" value=""/>
+        <param name="sequence_comparison_method" value="substring"/>
+        <param name="accessions_whitelist" value=""/>
+        <param name="remove_annotated_features" value="false"/>
+        <param name="remove_unannotated_features" value="false"/>
+        <param name="remove_unassigned_ids" value="false"/>
+        <param name="rt" value="0.1"/>
+        <param name="mz" value="0.001"/>
+        <param name="blacklist_imperfect" value="false"/>
+      </section>
+      <section name="algorithm">
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_FileInfo">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileInfo_1_input.dta" ftype="dta"/>
+      <output name="out" file="FileInfo_1_output.txt" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="m" value="false"/>
+      <param name="p" value="false"/>
+      <param name="s" value="false"/>
+      <param name="d" value="false"/>
+      <param name="c" value="false"/>
+      <param name="v" value="false"/>
+      <param name="i" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileInfo_2_input.dta2d" ftype="dta2d"/>
+      <output name="out" file="FileInfo_2_output.txt" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="m" value="false"/>
+      <param name="p" value="false"/>
+      <param name="s" value="false"/>
+      <param name="d" value="false"/>
+      <param name="c" value="false"/>
+      <param name="v" value="false"/>
+      <param name="i" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileInfo_3_input.featureXML"/>
+      <output name="out" file="FileInfo_3_output.txt" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="m" value="true"/>
+      <param name="p" value="true"/>
+      <param name="s" value="true"/>
+      <param name="d" value="false"/>
+      <param name="c" value="false"/>
+      <param name="v" value="false"/>
+      <param name="i" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileInfo_4_input.mzXML"/>
+      <output name="out" file="FileInfo_4_output.txt" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="m" value="true"/>
+      <param name="p" value="false"/>
+      <param name="s" value="false"/>
+      <param name="d" value="false"/>
+      <param name="c" value="false"/>
+      <param name="v" value="false"/>
+      <param name="i" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileInfo_5_input.mzDat"/>
+      <output name="out" file="FileInfo_5_output.txt" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="m" value="true"/>
+      <param name="p" value="false"/>
+      <param name="s" value="true"/>
+      <param name="d" value="false"/>
+      <param name="c" value="false"/>
+      <param name="v" value="false"/>
+      <param name="i" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileInfo_6_input.mzData"/>
+      <output name="out" file="FileInfo_6_output.txt" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="m" value="false"/>
+      <param name="p" value="false"/>
+      <param name="s" value="true"/>
+      <param name="d" value="true"/>
+      <param name="c" value="false"/>
+      <param name="v" value="false"/>
+      <param name="i" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileInfo_7_input.consensusXML"/>
+      <output name="out" file="FileInfo_7_output.txt" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="m" value="true"/>
+      <param name="p" value="true"/>
+      <param name="s" value="true"/>
+      <param name="d" value="false"/>
+      <param name="c" value="false"/>
+      <param name="v" value="false"/>
+      <param name="i" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileInfo_9_input.mzML"/>
+      <output name="out" file="FileInfo_9_output.txt" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="m" value="true"/>
+      <param name="p" value="true"/>
+      <param name="s" value="true"/>
+      <param name="d" value="false"/>
+      <param name="c" value="false"/>
+      <param name="v" value="false"/>
+      <param name="i" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileInfo_10_input.idXML"/>
+      <output name="out" file="FileInfo_10_output.txt" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="m" value="false"/>
+      <param name="p" value="false"/>
+      <param name="s" value="false"/>
+      <param name="d" value="false"/>
+      <param name="c" value="false"/>
+      <param name="v" value="false"/>
+      <param name="i" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileInfo_12_input.mzML"/>
+      <param name="m" value="false"/>
+      <param name="p" value="false"/>
+      <param name="s" value="false"/>
+      <param name="d" value="false"/>
+      <param name="c" value="false"/>
+      <param name="v" value="false"/>
+      <param name="i" value="true"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileInfo_13_input.consensusXML"/>
+      <param name="m" value="false"/>
+      <param name="p" value="false"/>
+      <param name="s" value="false"/>
+      <param name="d" value="false"/>
+      <param name="c" value="false"/>
+      <param name="v" value="false"/>
+      <param name="i" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileInfo_14_input.mzid"/>
+      <output name="out" file="FileInfo_14_output.txt" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="m" value="false"/>
+      <param name="p" value="false"/>
+      <param name="s" value="false"/>
+      <param name="d" value="false"/>
+      <param name="c" value="false"/>
+      <param name="v" value="true"/>
+      <param name="i" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileInfo_15_input.mzid"/>
+      <output name="out" file="FileInfo_15_output.txt" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="m" value="false"/>
+      <param name="p" value="false"/>
+      <param name="s" value="false"/>
+      <param name="d" value="false"/>
+      <param name="c" value="false"/>
+      <param name="v" value="true"/>
+      <param name="i" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileInfo_16_input.trafoXML"/>
+      <output name="out" file="FileInfo_16_output.txt" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="m" value="false"/>
+      <param name="p" value="false"/>
+      <param name="s" value="false"/>
+      <param name="d" value="false"/>
+      <param name="c" value="false"/>
+      <param name="v" value="false"/>
+      <param name="i" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileInfo_17_input.fasta"/>
+      <output name="out" file="FileInfo_17_output.txt" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="m" value="false"/>
+      <param name="p" value="false"/>
+      <param name="s" value="false"/>
+      <param name="d" value="false"/>
+      <param name="c" value="false"/>
+      <param name="v" value="false"/>
+      <param name="i" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileInfo_18_input.fasta"/>
+      <output name="out" file="FileInfo_18_output.txt" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="m" value="false"/>
+      <param name="p" value="false"/>
+      <param name="s" value="false"/>
+      <param name="d" value="false"/>
+      <param name="c" value="false"/>
+      <param name="v" value="false"/>
+      <param name="i" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_FileMerger">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileMerger_2_input1.dta,FileMerger_2_input2.dta" ftype="dta"/>
+      <param name="out_type" value="mzML"/>
+      <output name="out" file="FileMerger_2_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="annotate_file_origin" value="false"/>
+      <param name="append_method" value="append_rows"/>
+      <section name="rt_concat">
+        <param name="gap" value="0.0"/>
+      </section>
+      <section name="raw">
+        <param name="rt_auto" value="false"/>
+        <param name="rt_custom" value="5.0 10.0"/>
+        <param name="rt_filename" value="false"/>
+        <param name="ms_level" value="0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileMerger_3_input1.dta,FileMerger_3_input2.dta" ftype="dta"/>
+      <param name="out_type" value="mzML"/>
+      <output name="out" file="FileMerger_3_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="annotate_file_origin" value="false"/>
+      <param name="append_method" value="append_rows"/>
+      <section name="rt_concat">
+        <param name="gap" value="0.0"/>
+      </section>
+      <section name="raw">
+        <param name="rt_auto" value="true"/>
+        <param name="rt_custom" value=""/>
+        <param name="rt_filename" value="false"/>
+        <param name="ms_level" value="0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileMerger_4_input1.dta2d,FileMerger_4_input2.dta2d" ftype="dta2d"/>
+      <param name="out_type" value="mzML"/>
+      <output name="out" file="FileMerger_4_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="annotate_file_origin" value="false"/>
+      <param name="append_method" value="append_rows"/>
+      <section name="rt_concat">
+        <param name="gap" value="0.0"/>
+      </section>
+      <section name="raw">
+        <param name="rt_auto" value="false"/>
+        <param name="rt_custom" value=""/>
+        <param name="rt_filename" value="false"/>
+        <param name="ms_level" value="0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileMerger_5_input_rt1023.331.dta,FileMerger_5_input_rt2044.334.dta,FileMerger_5_input_rt889.32.dta" ftype="dta"/>
+      <param name="out_type" value="mzML"/>
+      <output name="out" file="FileMerger_5_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="annotate_file_origin" value="false"/>
+      <param name="append_method" value="append_rows"/>
+      <section name="rt_concat">
+        <param name="gap" value="0.0"/>
+      </section>
+      <section name="raw">
+        <param name="rt_auto" value="false"/>
+        <param name="rt_custom" value=""/>
+        <param name="rt_filename" value="true"/>
+        <param name="ms_level" value="2"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileMerger_6_input1.mzML,FileMerger_6_input2.mzML"/>
+      <param name="out_type" value="mzML"/>
+      <output name="out" file="FileMerger_6_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="annotate_file_origin" value="false"/>
+      <param name="append_method" value="append_rows"/>
+      <section name="rt_concat">
+        <param name="gap" value="0.0"/>
+      </section>
+      <section name="raw">
+        <param name="rt_auto" value="false"/>
+        <param name="rt_custom" value=""/>
+        <param name="rt_filename" value="false"/>
+        <param name="ms_level" value="0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileMerger_7_input1.featureXML,FileMerger_7_input2.featureXML"/>
+      <param name="out_type" value="featureXML"/>
+      <output name="out" file="FileMerger_7_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="annotate_file_origin" value="false"/>
+      <param name="append_method" value="append_rows"/>
+      <section name="rt_concat">
+        <param name="gap" value="0.0"/>
+      </section>
+      <section name="raw">
+        <param name="rt_auto" value="false"/>
+        <param name="rt_custom" value=""/>
+        <param name="rt_filename" value="false"/>
+        <param name="ms_level" value="0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileMerger_8_input1.consensusXML,FileMerger_8_input2.consensusXML"/>
+      <param name="out_type" value="consensusXML"/>
+      <output name="out" file="FileMerger_8_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="annotate_file_origin" value="false"/>
+      <param name="append_method" value="append_rows"/>
+      <section name="rt_concat">
+        <param name="gap" value="0.0"/>
+      </section>
+      <section name="raw">
+        <param name="rt_auto" value="false"/>
+        <param name="rt_custom" value=""/>
+        <param name="rt_filename" value="false"/>
+        <param name="ms_level" value="0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileMerger_9_input1.traML,FileMerger_9_input2.traML"/>
+      <param name="out_type" value="traML"/>
+      <output name="out" file="FileMerger_9_output.traML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="annotate_file_origin" value="false"/>
+      <param name="append_method" value="append_rows"/>
+      <section name="rt_concat">
+        <param name="gap" value="0.0"/>
+      </section>
+      <section name="raw">
+        <param name="rt_auto" value="false"/>
+        <param name="rt_custom" value=""/>
+        <param name="rt_filename" value="false"/>
+        <param name="ms_level" value="0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileMerger_6_input2.mzML,FileMerger_6_input2_2.mzML"/>
+      <param name="out_type" value="mzML"/>
+      <output name="out" file="FileMerger_10_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="annotate_file_origin" value="false"/>
+      <param name="append_method" value="append_rows"/>
+      <section name="rt_concat">
+        <param name="gap" value="10.0"/>
+      </section>
+      <output_collection name="rt_concat_trafo_out" count="2"/>
+      <section name="raw">
+        <param name="rt_auto" value="false"/>
+        <param name="rt_custom" value=""/>
+        <param name="rt_filename" value="false"/>
+        <param name="ms_level" value="0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,trafo_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileMerger_8_input1.consensusXML,FileMerger_8_input2.consensusXML"/>
+      <param name="out_type" value="consensusXML"/>
+      <output name="out" file="FileMerger_11_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="annotate_file_origin" value="false"/>
+      <param name="append_method" value="append_cols"/>
+      <section name="rt_concat">
+        <param name="gap" value="0.0"/>
+      </section>
+      <section name="raw">
+        <param name="rt_auto" value="false"/>
+        <param name="rt_custom" value=""/>
+        <param name="rt_filename" value="false"/>
+        <param name="ms_level" value="0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_FuzzyDiff">
+    <test expect_num_outputs="1">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="whitelist" value="&quot;&lt;?xml-stylesheet&quot;"/>
+        <param name="matched_whitelist" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in1" value="FuzzyDiff_3_in1.featureXML"/>
+      <param name="in2" value="FuzzyDiff_3_in2.featureXML"/>
+      <param name="ratio" value="1.01"/>
+      <param name="absdiff" value="0.01"/>
+      <param name="verbose" value="1"/>
+      <param name="tab_width" value="8"/>
+      <param name="first_column" value="1"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_GNPSExport">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in_cm" value="GNPSExport_single.consensusXML"/>
+      <param name="in_mzml" value="GNPSExport_mz1.mzML"/>
+      <output name="out" file="GNPSExport_1_out.mgf" compare="sim_size" delta="5700" ftype="mgf"/>
+      <param name="output_type" value="full_spectra"/>
+      <param name="precursor_mz_tolerance" value="0.0001"/>
+      <param name="precursor_rt_tolerance" value="5.0"/>
+      <section name="merged_spectra">
+        <param name="cos_similarity" value="0.95"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in_cm" value="GNPSExport_single.consensusXML"/>
+      <param name="in_mzml" value="GNPSExport_mz1.mzML"/>
+      <output name="out" file="GNPSExport_2_out.mgf" compare="sim_size" delta="5700" ftype="mgf"/>
+      <param name="output_type" value="merged_spectra"/>
+      <param name="precursor_mz_tolerance" value="0.0001"/>
+      <param name="precursor_rt_tolerance" value="5.0"/>
+      <section name="merged_spectra">
+        <param name="cos_similarity" value="0.95"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in_cm" value="GNPSExport_merged.consensusXML"/>
+      <param name="in_mzml" value="GNPSExport_mz1.mzML,GNPSExport_mz2.mzML"/>
+      <output name="out" file="GNPSExport_3_out.mgf" compare="sim_size" delta="5700" ftype="mgf"/>
+      <param name="output_type" value="full_spectra"/>
+      <param name="precursor_mz_tolerance" value="0.0001"/>
+      <param name="precursor_rt_tolerance" value="5.0"/>
+      <section name="merged_spectra">
+        <param name="cos_similarity" value="0.95"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in_cm" value="GNPSExport_merged.consensusXML"/>
+      <param name="in_mzml" value="GNPSExport_mz1.mzML,GNPSExport_mz2.mzML"/>
+      <output name="out" file="GNPSExport_4_out.mgf" compare="sim_size" delta="5700" ftype="mgf"/>
+      <param name="output_type" value="full_spectra"/>
+      <param name="precursor_mz_tolerance" value="0.0001"/>
+      <param name="precursor_rt_tolerance" value="5.0"/>
+      <section name="merged_spectra">
+        <param name="cos_similarity" value="0.95"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_HighResPrecursorMassCorrector">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="HighResPrecursorMassCorrector_2860_1103_3.mzML"/>
+      <output name="out" file="HighResPrecursorMassCorrector_2860_1103_3_out.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="feature">
+        <param name="in" value="HighResPrecursorMassCorrector_2860_1103_3.featureXML"/>
+        <param name="mz_tolerance" value="5.0"/>
+        <param name="mz_tolerance_unit" value="ppm"/>
+        <param name="rt_tolerance" value="0.0"/>
+        <param name="max_trace" value="2"/>
+        <param name="believe_charge" value="false"/>
+        <param name="keep_original" value="false"/>
+        <param name="assign_all_matching" value="false"/>
+      </section>
+      <section name="nearest_peak">
+        <param name="mz_tolerance" value="0.0"/>
+        <param name="mz_tolerance_unit" value="ppm"/>
+      </section>
+      <section name="highest_intensity_peak">
+        <param name="mz_tolerance" value="0.0"/>
+        <param name="mz_tolerance_unit" value="ppm"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="HighResPrecursorMassCorrector_1035_1178_4.mzML"/>
+      <output name="out" file="HighResPrecursorMassCorrector_1035_1178_4_out.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="feature">
+        <param name="in" value="HighResPrecursorMassCorrector_1035_1178_4.featureXML"/>
+        <param name="mz_tolerance" value="10.0"/>
+        <param name="mz_tolerance_unit" value="ppm"/>
+        <param name="rt_tolerance" value="0.0"/>
+        <param name="max_trace" value="4"/>
+        <param name="believe_charge" value="false"/>
+        <param name="keep_original" value="false"/>
+        <param name="assign_all_matching" value="false"/>
+      </section>
+      <section name="nearest_peak">
+        <param name="mz_tolerance" value="0.0"/>
+        <param name="mz_tolerance_unit" value="ppm"/>
+      </section>
+      <section name="highest_intensity_peak">
+        <param name="mz_tolerance" value="0.0"/>
+        <param name="mz_tolerance_unit" value="ppm"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="HighResPrecursorMassCorrector_2538_1091_2.mzML"/>
+      <output name="out" file="HighResPrecursorMassCorrector_2538_1091_2_out.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="feature">
+        <param name="in" value="HighResPrecursorMassCorrector_2538_1091_2.featureXML"/>
+        <param name="mz_tolerance" value="5.0"/>
+        <param name="mz_tolerance_unit" value="ppm"/>
+        <param name="rt_tolerance" value="0.0"/>
+        <param name="max_trace" value="2"/>
+        <param name="believe_charge" value="false"/>
+        <param name="keep_original" value="false"/>
+        <param name="assign_all_matching" value="false"/>
+      </section>
+      <section name="nearest_peak">
+        <param name="mz_tolerance" value="0.0"/>
+        <param name="mz_tolerance_unit" value="ppm"/>
+      </section>
+      <section name="highest_intensity_peak">
+        <param name="mz_tolerance" value="0.0"/>
+        <param name="mz_tolerance_unit" value="ppm"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="HighResPrecursorMassCorrector_2810_1091_3.mzML"/>
+      <output name="out" file="HighResPrecursorMassCorrector_2810_1091_3_out.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="feature">
+        <param name="in" value="HighResPrecursorMassCorrector_2810_1091_3.featureXML"/>
+        <param name="mz_tolerance" value="5.0"/>
+        <param name="mz_tolerance_unit" value="ppm"/>
+        <param name="rt_tolerance" value="0.0"/>
+        <param name="max_trace" value="2"/>
+        <param name="believe_charge" value="false"/>
+        <param name="keep_original" value="false"/>
+        <param name="assign_all_matching" value="false"/>
+      </section>
+      <section name="nearest_peak">
+        <param name="mz_tolerance" value="0.0"/>
+        <param name="mz_tolerance_unit" value="ppm"/>
+      </section>
+      <section name="highest_intensity_peak">
+        <param name="mz_tolerance" value="0.0"/>
+        <param name="mz_tolerance_unit" value="ppm"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="HighResPrecursorMassCorrector_3070_1191_3.mzML"/>
+      <output name="out" file="HighResPrecursorMassCorrector_3070_1191_3_out.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="feature">
+        <param name="in" value="HighResPrecursorMassCorrector_3070_1191_3.featureXML"/>
+        <param name="mz_tolerance" value="5.0"/>
+        <param name="mz_tolerance_unit" value="ppm"/>
+        <param name="rt_tolerance" value="0.0"/>
+        <param name="max_trace" value="2"/>
+        <param name="believe_charge" value="false"/>
+        <param name="keep_original" value="false"/>
+        <param name="assign_all_matching" value="false"/>
+      </section>
+      <section name="nearest_peak">
+        <param name="mz_tolerance" value="0.0"/>
+        <param name="mz_tolerance_unit" value="ppm"/>
+      </section>
+      <section name="highest_intensity_peak">
+        <param name="mz_tolerance" value="0.0"/>
+        <param name="mz_tolerance_unit" value="ppm"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="HighResPrecursorMassCorrector_6.mzML"/>
+      <output name="out" file="HighResPrecursorMassCorrector_6_out.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="feature">
+        <param name="mz_tolerance" value="5.0"/>
+        <param name="mz_tolerance_unit" value="ppm"/>
+        <param name="rt_tolerance" value="0.0"/>
+        <param name="max_trace" value="2"/>
+        <param name="believe_charge" value="false"/>
+        <param name="keep_original" value="false"/>
+        <param name="assign_all_matching" value="false"/>
+      </section>
+      <section name="nearest_peak">
+        <param name="mz_tolerance" value="0.0"/>
+        <param name="mz_tolerance_unit" value="ppm"/>
+      </section>
+      <section name="highest_intensity_peak">
+        <param name="mz_tolerance" value="0.2"/>
+        <param name="mz_tolerance_unit" value="ppm"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_IDConflictResolver">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDConflictResolver_1_input.featureXML"/>
+      <output name="out" file="IDConflictResolver_1_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="resolve_between_features" value="off"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDConflictResolver_2_input.consensusXML"/>
+      <output name="out" file="IDConflictResolver_2_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="resolve_between_features" value="off"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDConflictResolver_3_input.consensusXML"/>
+      <output name="out" file="IDConflictResolver_3_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="resolve_between_features" value="off"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDConflictResolver_4_input.featureXML"/>
+      <output name="out" file="IDConflictResolver_4_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="resolve_between_features" value="highest_intensity"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_IDExtractor">
+</xml>
+  <xml name="autotest_IDFileConverter">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_1_input1.mascotXML"/>
+      <output name="out" file="IDFileConverter_1_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_file" value="IDFileConverter_1_input2.mzML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PepXMLFile_test.pepxml"/>
+      <output name="out" file="IDFileConverter_2_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_file" value="PepXMLFile_test.mzML"/>
+      <param name="mz_name" value="PepXMLFile_test"/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_3_input.protXML"/>
+      <output name="out" file="IDFileConverter_3_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value="scan=(?&lt;SCAN&gt;\d+)"/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_1_input1.mascotXML"/>
+      <output name="out" file="IDFileConverter_5_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_file" value="IDFileConverter_1_input2.mzML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_6_input1.pepXML"/>
+      <output name="out" file="IDFileConverter_6_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_file" value="IDFileConverter_1_input2.mzML"/>
+      <param name="mz_name" value="F025589.dat.mzML"/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_7_input1.xml"/>
+      <output name="out" file="IDFileConverter_7_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_8_input.mzid"/>
+      <output name="out" file="IDFileConverter_8_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_9_input.idXML"/>
+      <output name="out" file="IDFileConverter_9_output.mzid" compare="sim_size" delta="5700" ftype="mzid"/>
+      <param name="out_type" value="mzid"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_10_input.pepXML"/>
+      <output name="out" file="IDFileConverter_10_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_11_input.tsv" ftype="tabular"/>
+      <output name="out" file="IDFileConverter_11_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_12_input.psms"/>
+      <output name="out" file="IDFileConverter_12_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_12_input.psms"/>
+      <output name="out" file="IDFileConverter_13_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="PEP"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_12_input.psms"/>
+      <output name="out" file="IDFileConverter_14_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="score"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MSGFPlusAdapter_1_out.mzid"/>
+      <output name="out" file="IDFileConverter_15_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_file" value="spectra.mzML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_16_input.pepXML"/>
+      <output name="out" file="IDFileConverter_16_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_17_input.idXML"/>
+      <output name="out" file="IDFileConverter_17_output.pepXML" compare="sim_size" delta="5700" ftype="pepxml"/>
+      <param name="out_type" value="pepXML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_18_input.idXML"/>
+      <output name="out" file="IDFileConverter_18_output.pepXML" compare="sim_size" delta="5700" ftype="pepxml"/>
+      <param name="out_type" value="pepXML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_19_input.idXML"/>
+      <output name="out" file="IDFileConverter_19_output.pepXML" compare="sim_size" delta="5700" ftype="pepxml"/>
+      <param name="out_type" value="pepXML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_20_input.idXML"/>
+      <output name="out" file="IDFileConverter_20_output.pepXML" compare="sim_size" delta="5700" ftype="pepxml"/>
+      <param name="out_type" value="pepXML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_21_input.idXML"/>
+      <output name="out" file="IDFileConverter_21_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_file" value="IDMapper_4_input.mzML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.01"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MSGFPlusAdapter_1_out.mzid"/>
+      <output name="out" file="IDFileConverter_22_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_file" value="spectra.mzML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_23_input.mzid"/>
+      <output name="out" file="IDFileConverter_23_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_24_input.pep.xml"/>
+      <output name="out" file="IDFileConverter_24_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_25_input.idXML"/>
+      <output name="out" file="IDFileConverter_25_output.pep.xml" compare="sim_size" delta="5700" ftype="pepxml"/>
+      <param name="out_type" value="pepXML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_26_input.mzid"/>
+      <output name="out" file="IDFileConverter_26_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_27_input.idXML"/>
+      <output name="out" file="IDFileConverter_27_output.fasta" compare="sim_size" delta="5700" ftype="fasta"/>
+      <param name="out_type" value="FASTA"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="-1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_27_input.idXML"/>
+      <output name="out" file="IDFileConverter_28_output.fasta" compare="sim_size" delta="5700" ftype="fasta"/>
+      <param name="out_type" value="FASTA"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="true"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_27_input.idXML"/>
+      <output name="out" file="IDFileConverter_29_output.fasta" compare="sim_size" delta="5700" ftype="fasta"/>
+      <param name="out_type" value="FASTA"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="true"/>
+        <param name="number_of_hits" value="2"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_27_input.idXML"/>
+      <output name="out" file="IDFileConverter_30_output.fasta" compare="sim_size" delta="5700" ftype="fasta"/>
+      <param name="out_type" value="FASTA"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_proteins_per_peptide" value="false"/>
+        <param name="scan_regex" value=""/>
+        <param name="no_spectra_data_override" value="false"/>
+        <param name="no_spectra_references_override" value="false"/>
+        <param name="add_ionmatch_annotation" value="0.0"/>
+        <param name="concatenate_peptides" value="false"/>
+        <param name="number_of_hits" value="1"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_31_input.mzid"/>
+      <output name="out" file="IDFileConverter_31_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="mz_name" value=""/>
+      <param name="peptideprophet_analyzed" value="false"/>
+      <param name="score_type" value="qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_IDFilter">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_1_input.idXML"/>
+      <output name="out" file="IDFilter_1_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="proteins" value="IDFilter_1_input.fas"/>
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_3_input.idXML"/>
+      <output name="out" file="IDFilter_3_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="peptides" value="IDFilter_3_2_input.idXML"/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_4_input.idXML"/>
+      <output name="out" file="IDFilter_4_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.08"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_5_input.idXML"/>
+      <output name="out" file="IDFilter_5_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="32.0"/>
+        <param name="prot" value="25.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_5_input.idXML"/>
+      <output name="out" file="IDFilter_5_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="32.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_5_input.idXML"/>
+      <output name="out" file="IDFilter_5b_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="25.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_5_input.idXML"/>
+      <output name="out" file="IDFilter_5c_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="true"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="25.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_6_input.idXML"/>
+      <output name="out" file="IDFilter_6_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="2"/>
+        <param name="n_protein_hits" value="10"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="true"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_7_input.idXML"/>
+      <output name="out" file="IDFilter_7_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_8_input.idXML"/>
+      <output name="out" file="IDFilter_8_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value="200:350"/>
+        <param name="mz" value="999:1000"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_9_input.idXML"/>
+      <output name="out" file="IDFilter_9_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.05"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_10_input.idXML"/>
+      <output name="out" file="IDFilter_10_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="true"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.3"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_11_input.idXML"/>
+      <output name="out" file="IDFilter_11_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="true"/>
+      <param name="delete_unreferenced_peptide_hits" value="true"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_12_input.idXML"/>
+      <output name="out" file="IDFilter_12_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="fasta" value="IDFilter_12_input.fasta"/>
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_13_input.idXML"/>
+      <output name="out" file="IDFilter_13_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="fasta" value="IDFilter_13_input.fasta"/>
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_14_input.idXML"/>
+      <output name="out" file="IDFilter_14_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="fasta" value="IDFilter_14_input.fasta"/>
+        <param name="enzyme" value="Trypsin/P"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_15_input.idXML"/>
+      <output name="out" file="IDFilter_15_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="fasta" value="IDFilter_15_input.fasta"/>
+        <param name="enzyme" value="Trypsin/P"/>
+        <param name="specificity" value="semi"/>
+        <param name="missed_cleavages" value="1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_16_input.idXML"/>
+      <output name="out" file="IDFilter_16_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="fasta" value="IDFilter_16_input.fasta"/>
+        <param name="enzyme" value="Trypsin/P"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="1"/>
+        <param name="methionine_cleavage" value="true"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_missed_cleavages_input.idXML"/>
+      <output name="out" file="IDFilter_17_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":2"/>
+        <param name="enzyme" value="Lys-N"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_missed_cleavages_input.idXML"/>
+      <output name="out" file="IDFilter_18_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value="2:"/>
+        <param name="enzyme" value="Lys-N"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_missed_cleavages_input.idXML"/>
+      <output name="out" file="IDFilter_19_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value="1:3"/>
+        <param name="enzyme" value="Lys-N"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_missed_cleavages_input.idXML"/>
+      <output name="out" file="IDFilter_20_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value="1:0"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value="&quot;calcMZ&quot; &quot;gt&quot; &quot;750.0&quot;"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_16_input.idXML"/>
+      <output name="out" file="IDFilter_21_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value="&quot;end&quot; &quot;ne&quot; &quot;23&quot;"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFilter_16_input.idXML"/>
+      <output name="out" file="IDFilter_22_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDMapper_2_output.consensusXML"/>
+      <output name="out" file="IDFilter_23_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.0"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value="&quot;Q9HP81&quot;"/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="remove_duplicate_psm" value="false"/>
+        <param name="remove_peptide_hits_by_metavalue" value=""/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="Epifany_3_out.consensusXML"/>
+      <output name="out" file="IDFilter_24_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="var_mods" value="false"/>
+      <param name="remove_shared_peptides" value="false"/>
+      <param name="keep_unreferenced_protein_hits" value="false"/>
+      <param name="remove_decoys" value="false"/>
+      <param name="delete_unreferenced_peptide_hits" value="false"/>
+      <section name="precursor">
+        <param name="rt" value=":"/>
+        <param name="mz" value=":"/>
+        <param name="length" value=":"/>
+        <param name="charge" value=":"/>
+      </section>
+      <section name="score">
+        <param name="pep" value="0.0"/>
+        <param name="prot" value="0.0"/>
+        <param name="protgroup" value="0.99"/>
+      </section>
+      <section name="whitelist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="blacklist">
+        <param name="protein_accessions" value=""/>
+        <param name="ignore_modifications" value="false"/>
+        <param name="modifications" value=""/>
+      </section>
+      <section name="in_silico_digestion">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="specificity" value="full"/>
+        <param name="missed_cleavages" value="-1"/>
+        <param name="methionine_cleavage" value="false"/>
+      </section>
+      <section name="missed_cleavages">
+        <param name="number_of_missed_cleavages" value=":"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="rt">
+        <param name="p_value" value="0.0"/>
+        <param name="p_value_1st_dim" value="0.0"/>
+      </section>
+      <section name="mz">
+        <param name="error" value="-1.0"/>
+        <param name="unit" value="ppm"/>
+      </section>
+      <section name="best">
+        <param name="n_peptide_hits" value="0"/>
+        <param name="n_protein_hits" value="0"/>
+        <param name="strict" value="false"/>
+        <param name="n_to_m_peptide_hits" value=":"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_IDMapper">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_charge" value="true"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="id" value="IDMapper_1_input.idXML"/>
+      <param name="in" value="IDMapper_1_input.featureXML"/>
+      <output name="out" file="IDMapper_1_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="rt_tolerance" value="5.0"/>
+      <param name="mz_tolerance" value="1.0"/>
+      <param name="mz_measure" value="Da"/>
+      <param name="mz_reference" value="precursor"/>
+      <section name="feature">
+        <param name="use_centroid_rt" value="false"/>
+        <param name="use_centroid_mz" value="false"/>
+      </section>
+      <section name="consensus">
+        <param name="use_subelements" value="false"/>
+        <param name="annotate_ids_with_subelements" value="false"/>
+      </section>
+      <section name="spectra"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_charge" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="id" value="IDMapper_2_input.idXML"/>
+      <param name="in" value="IDMapper_2_input.consensusXML"/>
+      <output name="out" file="IDMapper_2_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="rt_tolerance" value="5.0"/>
+      <param name="mz_tolerance" value="1.0"/>
+      <param name="mz_measure" value="Da"/>
+      <param name="mz_reference" value="precursor"/>
+      <section name="feature">
+        <param name="use_centroid_rt" value="false"/>
+        <param name="use_centroid_mz" value="true"/>
+      </section>
+      <section name="consensus">
+        <param name="use_subelements" value="false"/>
+        <param name="annotate_ids_with_subelements" value="false"/>
+      </section>
+      <section name="spectra"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_charge" value="true"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="id" value="IDMapper_3_input.idXML"/>
+      <param name="in" value="IDMapper_3_input.featureXML"/>
+      <output name="out" file="IDMapper_3_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="rt_tolerance" value="4.0"/>
+      <param name="mz_tolerance" value="3.0"/>
+      <param name="mz_measure" value="ppm"/>
+      <param name="mz_reference" value="precursor"/>
+      <section name="feature">
+        <param name="use_centroid_rt" value="false"/>
+        <param name="use_centroid_mz" value="true"/>
+      </section>
+      <section name="consensus">
+        <param name="use_subelements" value="false"/>
+        <param name="annotate_ids_with_subelements" value="false"/>
+      </section>
+      <section name="spectra"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_charge" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="id" value="IDMapper_4_input.idXML"/>
+      <param name="in" value="IDMapper_4_input.featureXML"/>
+      <output name="out" file="IDMapper_4_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="rt_tolerance" value="10.0"/>
+      <param name="mz_tolerance" value="20.0"/>
+      <param name="mz_measure" value="ppm"/>
+      <param name="mz_reference" value="peptide"/>
+      <section name="feature">
+        <param name="use_centroid_rt" value="false"/>
+        <param name="use_centroid_mz" value="true"/>
+      </section>
+      <section name="consensus">
+        <param name="use_subelements" value="false"/>
+        <param name="annotate_ids_with_subelements" value="false"/>
+      </section>
+      <section name="spectra">
+        <param name="_in" value="IDMapper_4_input.mzML"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="ignore_charge" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="id" value="IDMapper_5_input.idXML"/>
+      <param name="in" value="IDMapper_5_input.featureXML"/>
+      <output name="out" file="IDMapper_5_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="rt_tolerance" value="20.0"/>
+      <param name="mz_tolerance" value="10.0"/>
+      <param name="mz_measure" value="ppm"/>
+      <param name="mz_reference" value="peptide"/>
+      <section name="feature">
+        <param name="use_centroid_rt" value="false"/>
+        <param name="use_centroid_mz" value="false"/>
+      </section>
+      <section name="consensus">
+        <param name="use_subelements" value="false"/>
+        <param name="annotate_ids_with_subelements" value="false"/>
+      </section>
+      <section name="spectra">
+        <param name="_in" value="IDMapper_5_input.mzML"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_IDMassAccuracy">
+    <test expect_num_outputs="5">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="number_of_bins" value="10"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="spectra.mzML"/>
+      <param name="id_in" value="MSGFPlusAdapter_1_out.idXML"/>
+      <output name="out_precursor" file="IDMassAccuracy_1_out_precursor.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="precursor_error_ppm" value="false"/>
+      <output name="out_fragment" file="IDMassAccuracy_1_out_fragment.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="fragment_error_ppm" value="false"/>
+      <param name="fragment_mass_tolerance" value="0.5"/>
+      <output name="out_precursor_fit" file="IDMassAccuracy_1_out_precursor_fit.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <output name="out_fragment_fit" file="IDMassAccuracy_1_out_fragment_fit.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_precursor_FLAG,out_fragment_FLAG,out_precursor_fit_FLAG,out_fragment_fit_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_IDMerger">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDMerger_1_input1.idXML,IDMerger_1_input2.idXML"/>
+      <output name="out" file="IDMerger_1_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="annotate_file_origin" value="true"/>
+      <param name="pepxml_protxml" value="false"/>
+      <param name="merge_proteins_add_PSMs" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDMerger_2_input1.idXML,IDMerger_2_input2.idXML"/>
+      <output name="out" file="IDMerger_2_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="annotate_file_origin" value="false"/>
+      <param name="pepxml_protxml" value="true"/>
+      <param name="merge_proteins_add_PSMs" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDMerger_1_input1.idXML,IDMerger_1_input1_2.idXML"/>
+      <output name="out" file="IDMerger_3_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="annotate_file_origin" value="false"/>
+      <param name="pepxml_protxml" value="false"/>
+      <param name="merge_proteins_add_PSMs" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="degenerated_empty.idXML,degenerated_empty_2.idXML"/>
+      <output name="out" file="IDMerger_4_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="annotate_file_origin" value="false"/>
+      <param name="pepxml_protxml" value="false"/>
+      <param name="merge_proteins_add_PSMs" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDMerger_2_input1.idXML"/>
+      <output name="out" file="IDMerger_5_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="add_to" value="IDMerger_5_input1.idXML"/>
+      <param name="annotate_file_origin" value="false"/>
+      <param name="pepxml_protxml" value="false"/>
+      <param name="merge_proteins_add_PSMs" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDRipper_3_input1.idXML,IDRipper_3_input2.idXML"/>
+      <output name="out" file="IDRipper_3_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="annotate_file_origin" value="true"/>
+      <param name="pepxml_protxml" value="false"/>
+      <param name="merge_proteins_add_PSMs" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_IDPosteriorErrorProbability">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="fdr_for_targets_smaller" value="0.05"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDPosteriorErrorProbability_Mascot_input.idXML"/>
+      <output name="out" file="IDPosteriorErrorProbability_Mascot_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="split_charge" value="false"/>
+      <param name="top_hits_only" value="false"/>
+      <param name="ignore_bad_data" value="false"/>
+      <param name="prob_correct" value="false"/>
+      <section name="fit_algorithm">
+        <param name="number_of_bins" value="100"/>
+        <param name="incorrectly_assigned" value="Gumbel"/>
+        <param name="max_nr_iterations" value="1000"/>
+        <param name="neg_log_delta" value="6"/>
+        <param name="outlier_handling" value="ignore_iqr_outliers"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="fdr_for_targets_smaller" value="0.05"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDPosteriorErrorProbability_XTandem_input.idXML"/>
+      <output name="out" file="IDPosteriorErrorProbability_XTandem_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="split_charge" value="false"/>
+      <param name="top_hits_only" value="false"/>
+      <param name="ignore_bad_data" value="false"/>
+      <param name="prob_correct" value="false"/>
+      <section name="fit_algorithm">
+        <param name="number_of_bins" value="100"/>
+        <param name="incorrectly_assigned" value="Gumbel"/>
+        <param name="max_nr_iterations" value="1000"/>
+        <param name="neg_log_delta" value="6"/>
+        <param name="outlier_handling" value="ignore_iqr_outliers"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="fdr_for_targets_smaller" value="0.05"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDPosteriorErrorProbability_OMSSA_input.idXML"/>
+      <output name="out" file="IDPosteriorErrorProbability_OMSSA_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="split_charge" value="false"/>
+      <param name="top_hits_only" value="false"/>
+      <param name="ignore_bad_data" value="false"/>
+      <param name="prob_correct" value="false"/>
+      <section name="fit_algorithm">
+        <param name="number_of_bins" value="100"/>
+        <param name="incorrectly_assigned" value="Gumbel"/>
+        <param name="max_nr_iterations" value="1000"/>
+        <param name="neg_log_delta" value="6"/>
+        <param name="outlier_handling" value="ignore_iqr_outliers"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="fdr_for_targets_smaller" value="0.05"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDPosteriorErrorProbability_OMSSA_input2.idXML"/>
+      <output name="out" file="IDPosteriorErrorProbability_OMSSA_output2.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="split_charge" value="true"/>
+      <param name="top_hits_only" value="false"/>
+      <param name="ignore_bad_data" value="false"/>
+      <param name="prob_correct" value="false"/>
+      <section name="fit_algorithm">
+        <param name="number_of_bins" value="100"/>
+        <param name="incorrectly_assigned" value="Gumbel"/>
+        <param name="max_nr_iterations" value="1000"/>
+        <param name="neg_log_delta" value="6"/>
+        <param name="outlier_handling" value="ignore_iqr_outliers"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="fdr_for_targets_smaller" value="0.05"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDPosteriorErrorProbability_XTandem_input2.idXML"/>
+      <output name="out" file="IDPosteriorErrorProbability_XTandem_output2.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="split_charge" value="true"/>
+      <param name="top_hits_only" value="false"/>
+      <param name="ignore_bad_data" value="false"/>
+      <param name="prob_correct" value="false"/>
+      <section name="fit_algorithm">
+        <param name="number_of_bins" value="100"/>
+        <param name="incorrectly_assigned" value="Gumbel"/>
+        <param name="max_nr_iterations" value="1000"/>
+        <param name="neg_log_delta" value="6"/>
+        <param name="outlier_handling" value="ignore_iqr_outliers"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="fdr_for_targets_smaller" value="0.05"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDPosteriorErrorProbability_Mascot_input2.idXML"/>
+      <output name="out" file="IDPosteriorErrorProbability_Mascot_output2.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="split_charge" value="true"/>
+      <param name="top_hits_only" value="false"/>
+      <param name="ignore_bad_data" value="false"/>
+      <param name="prob_correct" value="false"/>
+      <section name="fit_algorithm">
+        <param name="number_of_bins" value="100"/>
+        <param name="incorrectly_assigned" value="Gumbel"/>
+        <param name="max_nr_iterations" value="1000"/>
+        <param name="neg_log_delta" value="6"/>
+        <param name="outlier_handling" value="ignore_iqr_outliers"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="fdr_for_targets_smaller" value="0.05"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDPosteriorErrorProbability_bad_data.idXML"/>
+      <output name="out" file="IDPosteriorErrorProbability_bad_data_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="split_charge" value="false"/>
+      <param name="top_hits_only" value="false"/>
+      <param name="ignore_bad_data" value="true"/>
+      <param name="prob_correct" value="false"/>
+      <section name="fit_algorithm">
+        <param name="number_of_bins" value="100"/>
+        <param name="incorrectly_assigned" value="Gumbel"/>
+        <param name="max_nr_iterations" value="1000"/>
+        <param name="neg_log_delta" value="6"/>
+        <param name="outlier_handling" value="ignore_iqr_outliers"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="fdr_for_targets_smaller" value="0.05"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDPosteriorErrorProbability_OMSSA_input.idXML"/>
+      <output name="out" file="IDPosteriorErrorProbability_prob_correct_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="split_charge" value="false"/>
+      <param name="top_hits_only" value="false"/>
+      <param name="ignore_bad_data" value="false"/>
+      <param name="prob_correct" value="true"/>
+      <section name="fit_algorithm">
+        <param name="number_of_bins" value="100"/>
+        <param name="incorrectly_assigned" value="Gumbel"/>
+        <param name="max_nr_iterations" value="1000"/>
+        <param name="neg_log_delta" value="6"/>
+        <param name="outlier_handling" value="ignore_iqr_outliers"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_IDRipper"/>
+  <xml name="autotest_IDRTCalibration">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDRTCalibration_1_input.idXML"/>
+      <output name="out" file="IDRTCalibration_1_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="calibrant_1_reference" value="0.1"/>
+      <param name="calibrant_2_reference" value="0.9"/>
+      <param name="calibrant_1_input" value="10.0"/>
+      <param name="calibrant_2_input" value="90.0"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="degenerated_empty.idXML"/>
+      <output name="out" file="IDRTCalibration_2_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="calibrant_1_reference" value="0.1"/>
+      <param name="calibrant_2_reference" value="0.9"/>
+      <param name="calibrant_1_input" value="10.0"/>
+      <param name="calibrant_2_input" value="90.0"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_IDScoreSwitcher">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDFileConverter_12_output.idXML"/>
+      <output name="out" file="IDFileConverter_13_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="proteins" value="false"/>
+      <param name="new_score" value="Percolator_PEP"/>
+      <param name="new_score_orientation" value="lower_better"/>
+      <param name="new_score_type" value="Posterior Error Probability"/>
+      <param name="old_score" value="Percolator_qvalue"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDScoreSwitcher_2_input.idXML"/>
+      <output name="out" file="IDScoreSwitcher_2_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="proteins" value="true"/>
+      <param name="new_score" value="Posterior Probability_score"/>
+      <param name="new_score_orientation" value="higher_better"/>
+      <param name="new_score_type" value="Posterior Probability"/>
+      <param name="old_score" value=""/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_IDSplitter">
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDMapper_1_output.featureXML"/>
+      <output name="out" file="IDSplitter_1_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="id_out" file="IDSplitter_1_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,id_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_InternalCalibration">
+    <test expect_num_outputs="4">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="InternalCalibration_1_BSA1.mzML"/>
+      <output name="out" file="InternalCalibration_1_BSA1_out.mzML.tmp" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="ppm_match_tolerance" value="25.0"/>
+      <param name="ms_level" value="1"/>
+      <param name="RT_chunking" value="-1.0"/>
+      <section name="cal">
+        <param name="id_in" value="InternalCalibration_1_BSA1_OMSSA.idXML"/>
+        <param name="lock_require_mono" value="false"/>
+        <param name="lock_require_iso" value="false"/>
+        <param name="model_type" value="linear"/>
+      </section>
+      <section name="RANSAC">
+        <param name="enabled" value="true"/>
+        <param name="threshold" value="1.0"/>
+        <param name="pc_inliers" value="30"/>
+        <param name="iter" value="500"/>
+      </section>
+      <section name="goodness">
+        <param name="median" value="4.0"/>
+        <param name="MAD" value="2.0"/>
+      </section>
+      <section name="quality_control"/>
+      <output name="quality_control_models" file="InternalCalibration_1_models.csv" compare="sim_size" delta="5700" ftype="csv"/>
+      <output name="quality_control_residuals" file="InternalCalibration_1_residuals.csv" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,models_FLAG,residuals_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="4">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="InternalCalibration_2_lockmass.mzML.gz"/>
+      <output name="out" file="InternalCalibration_2_lockmass.mzML.tmp" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="ppm_match_tolerance" value="25.0"/>
+      <param name="ms_level" value="1 2 3"/>
+      <param name="RT_chunking" value="60.0"/>
+      <section name="cal">
+        <param name="lock_in" value="InternalCalibration_2_lock.csv" ftype="csv"/>
+        <param name="lock_require_mono" value="true"/>
+        <param name="lock_require_iso" value="false"/>
+        <param name="model_type" value="linear"/>
+      </section>
+      <section name="RANSAC">
+        <param name="enabled" value="false"/>
+        <param name="threshold" value="10.0"/>
+        <param name="pc_inliers" value="30"/>
+        <param name="iter" value="70"/>
+      </section>
+      <section name="goodness">
+        <param name="median" value="4.0"/>
+        <param name="MAD" value="2.0"/>
+      </section>
+      <section name="quality_control"/>
+      <output name="quality_control_models" file="InternalCalibration_2_models.csv" compare="sim_size" delta="5700" ftype="csv"/>
+      <output name="quality_control_residuals" file="InternalCalibration_2_residuals.csv" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,models_FLAG,residuals_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_IsobaricAnalyzer">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="type" value="itraq4plex"/>
+      <param name="in" value="IsobaricAnalyzer_input_1.mzML"/>
+      <output name="out" file="IsobaricAnalyzer_output_1.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="extraction">
+        <param name="select_activation" value=""/>
+        <param name="reporter_mass_shift" value="0.1"/>
+        <param name="min_precursor_intensity" value="1.0"/>
+        <param name="keep_unannotated_precursor" value="true"/>
+        <param name="min_reporter_intensity" value="0.0"/>
+        <param name="discard_low_intensity_quantifications" value="false"/>
+        <param name="min_precursor_purity" value="0.0"/>
+        <param name="precursor_isotope_deviation" value="10.0"/>
+        <param name="purity_interpolation" value="true"/>
+      </section>
+      <section name="itraq4plex">
+        <param name="channel_114_description" value="l1"/>
+        <param name="channel_115_description" value="l2"/>
+        <param name="channel_116_description" value="l3"/>
+        <param name="channel_117_description" value="lung"/>
+        <param name="reference_channel" value="114"/>
+        <param name="correction_matrix" value="&quot;0.0/1.0/5.9/0.2&quot; &quot;0.0/2.0/5.6/0.1&quot; &quot;0.0/3.0/4.5/0.1&quot; &quot;0.1/4.0/3.5/0.1&quot;"/>
+      </section>
+      <section name="itraq8plex">
+        <param name="channel_113_description" value=""/>
+        <param name="channel_114_description" value=""/>
+        <param name="channel_115_description" value=""/>
+        <param name="channel_116_description" value=""/>
+        <param name="channel_117_description" value=""/>
+        <param name="channel_118_description" value=""/>
+        <param name="channel_119_description" value=""/>
+        <param name="channel_121_description" value=""/>
+        <param name="reference_channel" value="113"/>
+        <param name="correction_matrix" value="&quot;0.00/0.00/6.89/0.22&quot; &quot;0.00/0.94/5.90/0.16&quot; &quot;0.00/1.88/4.90/0.10&quot; &quot;0.00/2.82/3.90/0.07&quot; &quot;0.06/3.77/2.99/0.00&quot; &quot;0.09/4.71/1.88/0.00&quot; &quot;0.14/5.66/0.87/0.00&quot; &quot;0.27/7.44/0.18/0.00&quot;"/>
+      </section>
+      <section name="quantification">
+        <param name="isotope_correction" value="true"/>
+        <param name="normalization" value="false"/>
+      </section>
+      <section name="tmt10plex">
+        <param name="channel_126_description" value=""/>
+        <param name="channel_127N_description" value=""/>
+        <param name="channel_127C_description" value=""/>
+        <param name="channel_128N_description" value=""/>
+        <param name="channel_128C_description" value=""/>
+        <param name="channel_129N_description" value=""/>
+        <param name="channel_129C_description" value=""/>
+        <param name="channel_130N_description" value=""/>
+        <param name="channel_130C_description" value=""/>
+        <param name="channel_131_description" value=""/>
+        <param name="reference_channel" value="126"/>
+        <param name="correction_matrix" value="&quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot;"/>
+      </section>
+      <section name="tmt11plex">
+        <param name="channel_126_description" value=""/>
+        <param name="channel_127N_description" value=""/>
+        <param name="channel_127C_description" value=""/>
+        <param name="channel_128N_description" value=""/>
+        <param name="channel_128C_description" value=""/>
+        <param name="channel_129N_description" value=""/>
+        <param name="channel_129C_description" value=""/>
+        <param name="channel_130N_description" value=""/>
+        <param name="channel_130C_description" value=""/>
+        <param name="channel_131N_description" value=""/>
+        <param name="channel_131C_description" value=""/>
+        <param name="reference_channel" value="126"/>
+        <param name="correction_matrix" value="&quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot;"/>
+      </section>
+      <section name="tmt16plex">
+        <param name="channel_126_description" value=""/>
+        <param name="channel_127N_description" value=""/>
+        <param name="channel_127C_description" value=""/>
+        <param name="channel_128N_description" value=""/>
+        <param name="channel_128C_description" value=""/>
+        <param name="channel_129N_description" value=""/>
+        <param name="channel_129C_description" value=""/>
+        <param name="channel_130N_description" value=""/>
+        <param name="channel_130C_description" value=""/>
+        <param name="channel_131N_description" value=""/>
+        <param name="channel_131C_description" value=""/>
+        <param name="channel_132N_description" value=""/>
+        <param name="channel_132C_description" value=""/>
+        <param name="channel_133N_description" value=""/>
+        <param name="channel_133C_description" value=""/>
+        <param name="channel_134N_description" value=""/>
+        <param name="reference_channel" value="126"/>
+        <param name="correction_matrix" value="&quot;0.0/0.0/8.02/0.0&quot; &quot;0.0/0.68/7.46/0.0&quot; &quot;0.0/0.71/6.94/0.0&quot; &quot;0.0/1.88/6.67/0.0&quot; &quot;0.0/1.34/5.59/0.0&quot; &quot;0.0/2.41/5.48/0.0&quot; &quot;0.0/2.34/5.19/0.0&quot; &quot;0.0/3.53/4.57/0.0&quot; &quot;0.0/2.67/4.16/0.0&quot; &quot;0.0/3.92/3.73/0.0&quot; &quot;0.0/3.69/3.14/0.0&quot; &quot;0.0/3.22/2.76/0.0&quot; &quot;0.0/4.11/2.0/0.0&quot; &quot;0.0/3.85/1.58/0.0&quot; &quot;0.0/4.63/1.18/0.0&quot; &quot;0.0/5.22/0.86/0.0&quot;"/>
+      </section>
+      <section name="tmt6plex">
+        <param name="channel_126_description" value=""/>
+        <param name="channel_127_description" value=""/>
+        <param name="channel_128_description" value=""/>
+        <param name="channel_129_description" value=""/>
+        <param name="channel_130_description" value=""/>
+        <param name="channel_131_description" value=""/>
+        <param name="reference_channel" value="126"/>
+        <param name="correction_matrix" value="&quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot;"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="type" value="itraq4plex"/>
+      <param name="in" value="TMTTenPlexMethod_test.mzML"/>
+      <output name="out" file="TMTTenPlexMethod_test.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="extraction">
+        <param name="select_activation" value="High-energy collision-induced dissociation"/>
+        <param name="reporter_mass_shift" value="0.002"/>
+        <param name="min_precursor_intensity" value="1.0"/>
+        <param name="keep_unannotated_precursor" value="true"/>
+        <param name="min_reporter_intensity" value="0.0"/>
+        <param name="discard_low_intensity_quantifications" value="false"/>
+        <param name="min_precursor_purity" value="0.0"/>
+        <param name="precursor_isotope_deviation" value="10.0"/>
+        <param name="purity_interpolation" value="true"/>
+      </section>
+      <section name="itraq4plex">
+        <param name="channel_114_description" value=""/>
+        <param name="channel_115_description" value=""/>
+        <param name="channel_116_description" value=""/>
+        <param name="channel_117_description" value=""/>
+        <param name="reference_channel" value="114"/>
+        <param name="correction_matrix" value="&quot;0.0/1.0/5.9/0.2&quot; &quot;0.0/2.0/5.6/0.1&quot; &quot;0.0/3.0/4.5/0.1&quot; &quot;0.1/4.0/3.5/0.1&quot;"/>
+      </section>
+      <section name="itraq8plex">
+        <param name="channel_113_description" value=""/>
+        <param name="channel_114_description" value=""/>
+        <param name="channel_115_description" value=""/>
+        <param name="channel_116_description" value=""/>
+        <param name="channel_117_description" value=""/>
+        <param name="channel_118_description" value=""/>
+        <param name="channel_119_description" value=""/>
+        <param name="channel_121_description" value=""/>
+        <param name="reference_channel" value="113"/>
+        <param name="correction_matrix" value="&quot;0.00/0.00/6.89/0.22&quot; &quot;0.00/0.94/5.90/0.16&quot; &quot;0.00/1.88/4.90/0.10&quot; &quot;0.00/2.82/3.90/0.07&quot; &quot;0.06/3.77/2.99/0.00&quot; &quot;0.09/4.71/1.88/0.00&quot; &quot;0.14/5.66/0.87/0.00&quot; &quot;0.27/7.44/0.18/0.00&quot;"/>
+      </section>
+      <section name="quantification">
+        <param name="isotope_correction" value="true"/>
+        <param name="normalization" value="false"/>
+      </section>
+      <section name="tmt10plex">
+        <param name="channel_126_description" value=""/>
+        <param name="channel_127N_description" value=""/>
+        <param name="channel_127C_description" value=""/>
+        <param name="channel_128N_description" value=""/>
+        <param name="channel_128C_description" value=""/>
+        <param name="channel_129N_description" value=""/>
+        <param name="channel_129C_description" value=""/>
+        <param name="channel_130N_description" value=""/>
+        <param name="channel_130C_description" value=""/>
+        <param name="channel_131_description" value=""/>
+        <param name="reference_channel" value="126"/>
+        <param name="correction_matrix" value="&quot;0.0/0.0/5.0/0.0&quot; &quot;0.0/0.2/4.6/0.0&quot; &quot;0.0/0.2/4.6/0.3&quot; &quot;0.0/0.9/4.7/0.2&quot; &quot;0.0/0.5/3.2/0.0&quot; &quot;0.0/0.7/3.3/0.0&quot; &quot;0.0/1.3/2.5/0.0&quot; &quot;0.0/1.2/2.8/2.7&quot; &quot;0.0/1.5/2.0/0.0&quot; &quot;0.0/1.5/1.9/0.0&quot;"/>
+      </section>
+      <section name="tmt11plex">
+        <param name="channel_126_description" value=""/>
+        <param name="channel_127N_description" value=""/>
+        <param name="channel_127C_description" value=""/>
+        <param name="channel_128N_description" value=""/>
+        <param name="channel_128C_description" value=""/>
+        <param name="channel_129N_description" value=""/>
+        <param name="channel_129C_description" value=""/>
+        <param name="channel_130N_description" value=""/>
+        <param name="channel_130C_description" value=""/>
+        <param name="channel_131N_description" value=""/>
+        <param name="channel_131C_description" value=""/>
+        <param name="reference_channel" value="126"/>
+        <param name="correction_matrix" value="&quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot;"/>
+      </section>
+      <section name="tmt16plex">
+        <param name="channel_126_description" value=""/>
+        <param name="channel_127N_description" value=""/>
+        <param name="channel_127C_description" value=""/>
+        <param name="channel_128N_description" value=""/>
+        <param name="channel_128C_description" value=""/>
+        <param name="channel_129N_description" value=""/>
+        <param name="channel_129C_description" value=""/>
+        <param name="channel_130N_description" value=""/>
+        <param name="channel_130C_description" value=""/>
+        <param name="channel_131N_description" value=""/>
+        <param name="channel_131C_description" value=""/>
+        <param name="channel_132N_description" value=""/>
+        <param name="channel_132C_description" value=""/>
+        <param name="channel_133N_description" value=""/>
+        <param name="channel_133C_description" value=""/>
+        <param name="channel_134N_description" value=""/>
+        <param name="reference_channel" value="126"/>
+        <param name="correction_matrix" value="&quot;0.0/0.0/8.02/0.0&quot; &quot;0.0/0.68/7.46/0.0&quot; &quot;0.0/0.71/6.94/0.0&quot; &quot;0.0/1.88/6.67/0.0&quot; &quot;0.0/1.34/5.59/0.0&quot; &quot;0.0/2.41/5.48/0.0&quot; &quot;0.0/2.34/5.19/0.0&quot; &quot;0.0/3.53/4.57/0.0&quot; &quot;0.0/2.67/4.16/0.0&quot; &quot;0.0/3.92/3.73/0.0&quot; &quot;0.0/3.69/3.14/0.0&quot; &quot;0.0/3.22/2.76/0.0&quot; &quot;0.0/4.11/2.0/0.0&quot; &quot;0.0/3.85/1.58/0.0&quot; &quot;0.0/4.63/1.18/0.0&quot; &quot;0.0/5.22/0.86/0.0&quot;"/>
+      </section>
+      <section name="tmt6plex">
+        <param name="channel_126_description" value=""/>
+        <param name="channel_127_description" value=""/>
+        <param name="channel_128_description" value=""/>
+        <param name="channel_129_description" value=""/>
+        <param name="channel_130_description" value=""/>
+        <param name="channel_131_description" value=""/>
+        <param name="reference_channel" value="126"/>
+        <param name="correction_matrix" value="&quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot;"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="type" value="itraq4plex"/>
+      <param name="in" value="TMTTenPlexMethod_test.mzML"/>
+      <output name="out" file="TMTElevenPlexMethod_test.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="extraction">
+        <param name="select_activation" value="High-energy collision-induced dissociation"/>
+        <param name="reporter_mass_shift" value="0.002"/>
+        <param name="min_precursor_intensity" value="1.0"/>
+        <param name="keep_unannotated_precursor" value="true"/>
+        <param name="min_reporter_intensity" value="0.0"/>
+        <param name="discard_low_intensity_quantifications" value="false"/>
+        <param name="min_precursor_purity" value="0.0"/>
+        <param name="precursor_isotope_deviation" value="10.0"/>
+        <param name="purity_interpolation" value="true"/>
+      </section>
+      <section name="itraq4plex">
+        <param name="channel_114_description" value=""/>
+        <param name="channel_115_description" value=""/>
+        <param name="channel_116_description" value=""/>
+        <param name="channel_117_description" value=""/>
+        <param name="reference_channel" value="114"/>
+        <param name="correction_matrix" value="&quot;0.0/1.0/5.9/0.2&quot; &quot;0.0/2.0/5.6/0.1&quot; &quot;0.0/3.0/4.5/0.1&quot; &quot;0.1/4.0/3.5/0.1&quot;"/>
+      </section>
+      <section name="itraq8plex">
+        <param name="channel_113_description" value=""/>
+        <param name="channel_114_description" value=""/>
+        <param name="channel_115_description" value=""/>
+        <param name="channel_116_description" value=""/>
+        <param name="channel_117_description" value=""/>
+        <param name="channel_118_description" value=""/>
+        <param name="channel_119_description" value=""/>
+        <param name="channel_121_description" value=""/>
+        <param name="reference_channel" value="113"/>
+        <param name="correction_matrix" value="&quot;0.00/0.00/6.89/0.22&quot; &quot;0.00/0.94/5.90/0.16&quot; &quot;0.00/1.88/4.90/0.10&quot; &quot;0.00/2.82/3.90/0.07&quot; &quot;0.06/3.77/2.99/0.00&quot; &quot;0.09/4.71/1.88/0.00&quot; &quot;0.14/5.66/0.87/0.00&quot; &quot;0.27/7.44/0.18/0.00&quot;"/>
+      </section>
+      <section name="quantification">
+        <param name="isotope_correction" value="true"/>
+        <param name="normalization" value="false"/>
+      </section>
+      <section name="tmt10plex">
+        <param name="channel_126_description" value=""/>
+        <param name="channel_127N_description" value=""/>
+        <param name="channel_127C_description" value=""/>
+        <param name="channel_128N_description" value=""/>
+        <param name="channel_128C_description" value=""/>
+        <param name="channel_129N_description" value=""/>
+        <param name="channel_129C_description" value=""/>
+        <param name="channel_130N_description" value=""/>
+        <param name="channel_130C_description" value=""/>
+        <param name="channel_131_description" value=""/>
+        <param name="reference_channel" value="126"/>
+        <param name="correction_matrix" value="&quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot;"/>
+      </section>
+      <section name="tmt11plex">
+        <param name="channel_126_description" value=""/>
+        <param name="channel_127N_description" value=""/>
+        <param name="channel_127C_description" value=""/>
+        <param name="channel_128N_description" value=""/>
+        <param name="channel_128C_description" value=""/>
+        <param name="channel_129N_description" value=""/>
+        <param name="channel_129C_description" value=""/>
+        <param name="channel_130N_description" value=""/>
+        <param name="channel_130C_description" value=""/>
+        <param name="channel_131N_description" value=""/>
+        <param name="channel_131C_description" value=""/>
+        <param name="reference_channel" value="126"/>
+        <param name="correction_matrix" value="&quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot;"/>
+      </section>
+      <section name="tmt16plex">
+        <param name="channel_126_description" value=""/>
+        <param name="channel_127N_description" value=""/>
+        <param name="channel_127C_description" value=""/>
+        <param name="channel_128N_description" value=""/>
+        <param name="channel_128C_description" value=""/>
+        <param name="channel_129N_description" value=""/>
+        <param name="channel_129C_description" value=""/>
+        <param name="channel_130N_description" value=""/>
+        <param name="channel_130C_description" value=""/>
+        <param name="channel_131N_description" value=""/>
+        <param name="channel_131C_description" value=""/>
+        <param name="channel_132N_description" value=""/>
+        <param name="channel_132C_description" value=""/>
+        <param name="channel_133N_description" value=""/>
+        <param name="channel_133C_description" value=""/>
+        <param name="channel_134N_description" value=""/>
+        <param name="reference_channel" value="126"/>
+        <param name="correction_matrix" value="&quot;0.0/0.0/8.02/0.0&quot; &quot;0.0/0.68/7.46/0.0&quot; &quot;0.0/0.71/6.94/0.0&quot; &quot;0.0/1.88/6.67/0.0&quot; &quot;0.0/1.34/5.59/0.0&quot; &quot;0.0/2.41/5.48/0.0&quot; &quot;0.0/2.34/5.19/0.0&quot; &quot;0.0/3.53/4.57/0.0&quot; &quot;0.0/2.67/4.16/0.0&quot; &quot;0.0/3.92/3.73/0.0&quot; &quot;0.0/3.69/3.14/0.0&quot; &quot;0.0/3.22/2.76/0.0&quot; &quot;0.0/4.11/2.0/0.0&quot; &quot;0.0/3.85/1.58/0.0&quot; &quot;0.0/4.63/1.18/0.0&quot; &quot;0.0/5.22/0.86/0.0&quot;"/>
+      </section>
+      <section name="tmt6plex">
+        <param name="channel_126_description" value=""/>
+        <param name="channel_127_description" value=""/>
+        <param name="channel_128_description" value=""/>
+        <param name="channel_129_description" value=""/>
+        <param name="channel_130_description" value=""/>
+        <param name="channel_131_description" value=""/>
+        <param name="reference_channel" value="126"/>
+        <param name="correction_matrix" value="&quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot;"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="type" value="tmt10plex"/>
+      <param name="in" value="MS3_nonHierarchical.mzML"/>
+      <output name="out" file="MS3TMT10Plex_test.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="extraction">
+        <param name="select_activation" value="Collision-induced dissociation"/>
+        <param name="reporter_mass_shift" value="0.002"/>
+        <param name="min_precursor_intensity" value="1.0"/>
+        <param name="keep_unannotated_precursor" value="true"/>
+        <param name="min_reporter_intensity" value="0.0"/>
+        <param name="discard_low_intensity_quantifications" value="false"/>
+        <param name="min_precursor_purity" value="0.0"/>
+        <param name="precursor_isotope_deviation" value="10.0"/>
+        <param name="purity_interpolation" value="true"/>
+      </section>
+      <section name="itraq4plex">
+        <param name="channel_114_description" value=""/>
+        <param name="channel_115_description" value=""/>
+        <param name="channel_116_description" value=""/>
+        <param name="channel_117_description" value=""/>
+        <param name="reference_channel" value="114"/>
+        <param name="correction_matrix" value="&quot;0.0/1.0/5.9/0.2&quot; &quot;0.0/2.0/5.6/0.1&quot; &quot;0.0/3.0/4.5/0.1&quot; &quot;0.1/4.0/3.5/0.1&quot;"/>
+      </section>
+      <section name="itraq8plex">
+        <param name="channel_113_description" value=""/>
+        <param name="channel_114_description" value=""/>
+        <param name="channel_115_description" value=""/>
+        <param name="channel_116_description" value=""/>
+        <param name="channel_117_description" value=""/>
+        <param name="channel_118_description" value=""/>
+        <param name="channel_119_description" value=""/>
+        <param name="channel_121_description" value=""/>
+        <param name="reference_channel" value="113"/>
+        <param name="correction_matrix" value="&quot;0.00/0.00/6.89/0.22&quot; &quot;0.00/0.94/5.90/0.16&quot; &quot;0.00/1.88/4.90/0.10&quot; &quot;0.00/2.82/3.90/0.07&quot; &quot;0.06/3.77/2.99/0.00&quot; &quot;0.09/4.71/1.88/0.00&quot; &quot;0.14/5.66/0.87/0.00&quot; &quot;0.27/7.44/0.18/0.00&quot;"/>
+      </section>
+      <section name="quantification">
+        <param name="isotope_correction" value="true"/>
+        <param name="normalization" value="false"/>
+      </section>
+      <section name="tmt10plex">
+        <param name="channel_126_description" value=""/>
+        <param name="channel_127N_description" value=""/>
+        <param name="channel_127C_description" value=""/>
+        <param name="channel_128N_description" value=""/>
+        <param name="channel_128C_description" value=""/>
+        <param name="channel_129N_description" value=""/>
+        <param name="channel_129C_description" value=""/>
+        <param name="channel_130N_description" value=""/>
+        <param name="channel_130C_description" value=""/>
+        <param name="channel_131_description" value=""/>
+        <param name="reference_channel" value="126"/>
+        <param name="correction_matrix" value="&quot;0.0/0.0/5.09/0.0&quot; &quot;0.0/0.25/5.27/0.0&quot; &quot;0.0/0.37/5.36/0.15&quot; &quot;0.0/0.65/4.17/0.1&quot; &quot;0.08/0.49/3.06/0.0&quot; &quot;0.01/0.71/3.07/0.0&quot; &quot;0.0/1.32/2.62/0.0&quot; &quot;0.02/1.28/2.75/2.53&quot; &quot;0.03/2.08/2.23/0.0&quot; &quot;0.08/1.99/1.65/0.0&quot;"/>
+      </section>
+      <section name="tmt11plex">
+        <param name="channel_126_description" value=""/>
+        <param name="channel_127N_description" value=""/>
+        <param name="channel_127C_description" value=""/>
+        <param name="channel_128N_description" value=""/>
+        <param name="channel_128C_description" value=""/>
+        <param name="channel_129N_description" value=""/>
+        <param name="channel_129C_description" value=""/>
+        <param name="channel_130N_description" value=""/>
+        <param name="channel_130C_description" value=""/>
+        <param name="channel_131N_description" value=""/>
+        <param name="channel_131C_description" value=""/>
+        <param name="reference_channel" value="126"/>
+        <param name="correction_matrix" value="&quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot;"/>
+      </section>
+      <section name="tmt16plex">
+        <param name="channel_126_description" value=""/>
+        <param name="channel_127N_description" value=""/>
+        <param name="channel_127C_description" value=""/>
+        <param name="channel_128N_description" value=""/>
+        <param name="channel_128C_description" value=""/>
+        <param name="channel_129N_description" value=""/>
+        <param name="channel_129C_description" value=""/>
+        <param name="channel_130N_description" value=""/>
+        <param name="channel_130C_description" value=""/>
+        <param name="channel_131N_description" value=""/>
+        <param name="channel_131C_description" value=""/>
+        <param name="channel_132N_description" value=""/>
+        <param name="channel_132C_description" value=""/>
+        <param name="channel_133N_description" value=""/>
+        <param name="channel_133C_description" value=""/>
+        <param name="channel_134N_description" value=""/>
+        <param name="reference_channel" value="126"/>
+        <param name="correction_matrix" value="&quot;0.0/0.0/8.02/0.0&quot; &quot;0.0/0.68/7.46/0.0&quot; &quot;0.0/0.71/6.94/0.0&quot; &quot;0.0/1.88/6.67/0.0&quot; &quot;0.0/1.34/5.59/0.0&quot; &quot;0.0/2.41/5.48/0.0&quot; &quot;0.0/2.34/5.19/0.0&quot; &quot;0.0/3.53/4.57/0.0&quot; &quot;0.0/2.67/4.16/0.0&quot; &quot;0.0/3.92/3.73/0.0&quot; &quot;0.0/3.69/3.14/0.0&quot; &quot;0.0/3.22/2.76/0.0&quot; &quot;0.0/4.11/2.0/0.0&quot; &quot;0.0/3.85/1.58/0.0&quot; &quot;0.0/4.63/1.18/0.0&quot; &quot;0.0/5.22/0.86/0.0&quot;"/>
+      </section>
+      <section name="tmt6plex">
+        <param name="channel_126_description" value=""/>
+        <param name="channel_127_description" value=""/>
+        <param name="channel_128_description" value=""/>
+        <param name="channel_129_description" value=""/>
+        <param name="channel_130_description" value=""/>
+        <param name="channel_131_description" value=""/>
+        <param name="reference_channel" value="126"/>
+        <param name="correction_matrix" value="&quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot; &quot;0.0/0.0/0.0/0.0&quot;"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_LabeledEval">
+</xml>
+  <xml name="autotest_LuciphorAdapter">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="LuciphorAdapter_1_input.mzML"/>
+      <param name="id" value="LuciphorAdapter_1_input.idXML"/>
+      <output name="out" file="LuciphorAdapter_1_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="fragment_method" value="CID"/>
+      <param name="fragment_mass_tolerance" value="0.5"/>
+      <param name="fragment_error_units" value="Da"/>
+      <param name="min_mz" value="150.0"/>
+      <param name="target_modifications" value="Phospho (S),Phospho (T),Phospho (Y)"/>
+      <param name="neutral_losses" value="&quot;sty -H3PO4 -97.97690&quot;"/>
+      <param name="decoy_mass" value="79.966331"/>
+      <param name="decoy_neutral_losses" value="&quot;X -H3PO4 -97.97690&quot;"/>
+      <param name="max_charge_state" value="5"/>
+      <param name="max_peptide_length" value="40"/>
+      <param name="max_num_perm" value="16384"/>
+      <param name="modeling_score_threshold" value="0.95"/>
+      <param name="scoring_threshold" value="0.0"/>
+      <param name="min_num_psms_model" value="1"/>
+      <param name="run_mode" value="0"/>
+      <param name="rt_tolerance" value="0.01"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_MapAlignerIdentification">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapAlignerIdentification_1_input1.featureXML,MapAlignerIdentification_1_input2.featureXML"/>
+      <output_collection name="out" count="2"/>
+      <section name="reference">
+        <param name="index" value="0"/>
+      </section>
+      <section name="algorithm">
+        <param name="score_cutoff" value="false"/>
+        <param name="min_score" value="0.05"/>
+        <param name="min_run_occur" value="2"/>
+        <param name="max_rt_shift" value="0.0"/>
+        <param name="use_unassigned_peptides" value="true"/>
+        <param name="use_feature_rt" value="false"/>
+      </section>
+      <section name="model">
+        <param name="type" value="b_spline"/>
+        <section name="linear">
+          <param name="symmetric_regression" value="false"/>
+          <param name="x_weight" value=""/>
+          <param name="y_weight" value=""/>
+          <param name="x_datum_min" value="1e-15"/>
+          <param name="x_datum_max" value="1000000000000000.0"/>
+          <param name="y_datum_min" value="1e-15"/>
+          <param name="y_datum_max" value="1000000000000000.0"/>
+        </section>
+        <section name="b_spline">
+          <param name="wavelength" value="0.0"/>
+          <param name="num_nodes" value="5"/>
+          <param name="extrapolate" value="linear"/>
+          <param name="boundary_condition" value="2"/>
+        </section>
+        <section name="lowess">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+        <section name="interpolated">
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="two-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapAlignerIdentification_1_input1.featureXML"/>
+      <output_collection name="out" count="1"/>
+      <section name="reference">
+        <param name="file" value="MapAlignerIdentification_1_input2.featureXML"/>
+        <param name="index" value="0"/>
+      </section>
+      <section name="algorithm">
+        <param name="score_cutoff" value="false"/>
+        <param name="min_score" value="0.05"/>
+        <param name="min_run_occur" value="2"/>
+        <param name="max_rt_shift" value="0.0"/>
+        <param name="use_unassigned_peptides" value="true"/>
+        <param name="use_feature_rt" value="false"/>
+      </section>
+      <section name="model">
+        <param name="type" value="b_spline"/>
+        <section name="linear">
+          <param name="symmetric_regression" value="false"/>
+          <param name="x_weight" value=""/>
+          <param name="y_weight" value=""/>
+          <param name="x_datum_min" value="1e-15"/>
+          <param name="x_datum_max" value="1000000000000000.0"/>
+          <param name="y_datum_min" value="1e-15"/>
+          <param name="y_datum_max" value="1000000000000000.0"/>
+        </section>
+        <section name="b_spline">
+          <param name="wavelength" value="0.0"/>
+          <param name="num_nodes" value="5"/>
+          <param name="extrapolate" value="linear"/>
+          <param name="boundary_condition" value="2"/>
+        </section>
+        <section name="lowess">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+        <section name="interpolated">
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="two-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapAlignerIdentification_1_input2.featureXML,MapAlignerIdentification_1_input1.featureXML"/>
+      <output_collection name="out" count="2"/>
+      <section name="reference">
+        <param name="index" value="1"/>
+      </section>
+      <section name="algorithm">
+        <param name="score_cutoff" value="false"/>
+        <param name="min_score" value="0.05"/>
+        <param name="min_run_occur" value="2"/>
+        <param name="max_rt_shift" value="0.0"/>
+        <param name="use_unassigned_peptides" value="true"/>
+        <param name="use_feature_rt" value="false"/>
+      </section>
+      <section name="model">
+        <param name="type" value="b_spline"/>
+        <section name="linear">
+          <param name="symmetric_regression" value="false"/>
+          <param name="x_weight" value=""/>
+          <param name="y_weight" value=""/>
+          <param name="x_datum_min" value="1e-15"/>
+          <param name="x_datum_max" value="1000000000000000.0"/>
+          <param name="y_datum_min" value="1e-15"/>
+          <param name="y_datum_max" value="1000000000000000.0"/>
+        </section>
+        <section name="b_spline">
+          <param name="wavelength" value="0.0"/>
+          <param name="num_nodes" value="5"/>
+          <param name="extrapolate" value="linear"/>
+          <param name="boundary_condition" value="2"/>
+        </section>
+        <section name="lowess">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+        <section name="interpolated">
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="two-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapAlignerIdentification_1_input1.featureXML,MapAlignerIdentification_1_input2.featureXML"/>
+      <output_collection name="out" count="2"/>
+      <section name="reference">
+        <param name="index" value="2"/>
+      </section>
+      <section name="algorithm">
+        <param name="score_cutoff" value="false"/>
+        <param name="min_score" value="0.05"/>
+        <param name="min_run_occur" value="2"/>
+        <param name="max_rt_shift" value="0.0"/>
+        <param name="use_unassigned_peptides" value="true"/>
+        <param name="use_feature_rt" value="false"/>
+      </section>
+      <section name="model">
+        <param name="type" value="b_spline"/>
+        <section name="linear">
+          <param name="symmetric_regression" value="false"/>
+          <param name="x_weight" value=""/>
+          <param name="y_weight" value=""/>
+          <param name="x_datum_min" value="1e-15"/>
+          <param name="x_datum_max" value="1000000000000000.0"/>
+          <param name="y_datum_min" value="1e-15"/>
+          <param name="y_datum_max" value="1000000000000000.0"/>
+        </section>
+        <section name="b_spline">
+          <param name="wavelength" value="0.0"/>
+          <param name="num_nodes" value="5"/>
+          <param name="extrapolate" value="linear"/>
+          <param name="boundary_condition" value="2"/>
+        </section>
+        <section name="lowess">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+        <section name="interpolated">
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="two-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapAlignerIdentification_5_input1.consensusXML,MapAlignerIdentification_5_input2.consensusXML"/>
+      <output_collection name="out" count="2"/>
+      <section name="reference">
+        <param name="index" value="0"/>
+      </section>
+      <section name="algorithm">
+        <param name="score_cutoff" value="false"/>
+        <param name="min_score" value="0.05"/>
+        <param name="min_run_occur" value="2"/>
+        <param name="max_rt_shift" value="0.0"/>
+        <param name="use_unassigned_peptides" value="true"/>
+        <param name="use_feature_rt" value="false"/>
+      </section>
+      <section name="model">
+        <param name="type" value="b_spline"/>
+        <section name="linear">
+          <param name="symmetric_regression" value="false"/>
+          <param name="x_weight" value=""/>
+          <param name="y_weight" value=""/>
+          <param name="x_datum_min" value="1e-15"/>
+          <param name="x_datum_max" value="1000000000000000.0"/>
+          <param name="y_datum_min" value="1e-15"/>
+          <param name="y_datum_max" value="1000000000000000.0"/>
+        </section>
+        <section name="b_spline">
+          <param name="wavelength" value="0.0"/>
+          <param name="num_nodes" value="5"/>
+          <param name="extrapolate" value="linear"/>
+          <param name="boundary_condition" value="2"/>
+        </section>
+        <section name="lowess">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+        <section name="interpolated">
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="two-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapAlignerIdentification_1_input1.featureXML"/>
+      <output_collection name="trafo_out" count="1"/>
+      <section name="reference">
+        <param name="file" value="MapAlignerIdentification_1_input2.featureXML"/>
+        <param name="index" value="0"/>
+      </section>
+      <section name="algorithm">
+        <param name="score_cutoff" value="false"/>
+        <param name="min_score" value="0.05"/>
+        <param name="min_run_occur" value="2"/>
+        <param name="max_rt_shift" value="0.0"/>
+        <param name="use_unassigned_peptides" value="true"/>
+        <param name="use_feature_rt" value="false"/>
+      </section>
+      <section name="model">
+        <param name="type" value="b_spline"/>
+        <section name="linear">
+          <param name="symmetric_regression" value="false"/>
+          <param name="x_weight" value=""/>
+          <param name="y_weight" value=""/>
+          <param name="x_datum_min" value="1e-15"/>
+          <param name="x_datum_max" value="1000000000000000.0"/>
+          <param name="y_datum_min" value="1e-15"/>
+          <param name="y_datum_max" value="1000000000000000.0"/>
+        </section>
+        <section name="b_spline">
+          <param name="wavelength" value="0.0"/>
+          <param name="num_nodes" value="5"/>
+          <param name="extrapolate" value="linear"/>
+          <param name="boundary_condition" value="2"/>
+        </section>
+        <section name="lowess">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+        <section name="interpolated">
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="two-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,trafo_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="true"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapAlignerIdentification_7_input1.idXML"/>
+      <output_collection name="out" count="1"/>
+      <output_collection name="trafo_out" count="1"/>
+      <section name="reference">
+        <param name="file" value="MapAlignerIdentification_7_input2.idXML"/>
+        <param name="index" value="0"/>
+      </section>
+      <section name="algorithm">
+        <param name="score_cutoff" value="false"/>
+        <param name="min_score" value="0.05"/>
+        <param name="min_run_occur" value="2"/>
+        <param name="max_rt_shift" value="0.5"/>
+        <param name="use_unassigned_peptides" value="true"/>
+        <param name="use_feature_rt" value="false"/>
+      </section>
+      <section name="model">
+        <param name="type" value="b_spline"/>
+        <section name="linear">
+          <param name="symmetric_regression" value="false"/>
+          <param name="x_weight" value=""/>
+          <param name="y_weight" value=""/>
+          <param name="x_datum_min" value="1e-15"/>
+          <param name="x_datum_max" value="1000000000000000.0"/>
+          <param name="y_datum_min" value="1e-15"/>
+          <param name="y_datum_max" value="1000000000000000.0"/>
+        </section>
+        <section name="b_spline">
+          <param name="wavelength" value="0.0"/>
+          <param name="num_nodes" value="5"/>
+          <param name="extrapolate" value="linear"/>
+          <param name="boundary_condition" value="2"/>
+        </section>
+        <section name="lowess">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+        <section name="interpolated">
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="two-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,trafo_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_MapAlignerPoseClustering">
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapAlignerPoseClustering_1_input1.featureXML,MapAlignerPoseClustering_1_input2.featureXML,MapAlignerPoseClustering_1_input3.featureXML"/>
+      <output_collection name="out" count="3"/>
+      <output_collection name="trafo_out" count="3"/>
+      <section name="reference">
+        <param name="index" value="0"/>
+      </section>
+      <section name="algorithm">
+        <param name="max_num_peaks_considered" value="400"/>
+        <section name="superimposer">
+          <param name="mz_pair_max_distance" value="0.5"/>
+          <param name="rt_pair_distance_fraction" value="0.1"/>
+          <param name="num_used_points" value="2000"/>
+          <param name="scaling_bucket_size" value="0.005"/>
+          <param name="shift_bucket_size" value="3.0"/>
+          <param name="max_shift" value="1000.0"/>
+          <param name="max_scaling" value="2.0"/>
+          <param name="dump_buckets" value=""/>
+          <param name="dump_pairs" value=""/>
+        </section>
+        <section name="pairfinder">
+          <param name="second_nearest_gap" value="2.0"/>
+          <param name="use_identifications" value="false"/>
+          <param name="ignore_charge" value="true"/>
+          <param name="ignore_adduct" value="true"/>
+          <section name="distance_RT">
+            <param name="max_difference" value="30.0"/>
+            <param name="exponent" value="1.0"/>
+            <param name="weight" value="1.0"/>
+          </section>
+          <section name="distance_MZ">
+            <param name="max_difference" value="0.3"/>
+            <param name="unit" value="Da"/>
+            <param name="exponent" value="2.0"/>
+            <param name="weight" value="1.0"/>
+          </section>
+          <section name="distance_intensity">
+            <param name="exponent" value="1.0"/>
+            <param name="weight" value="0.0"/>
+            <param name="log_transform" value="disabled"/>
+          </section>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,trafo_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapAlignerPoseClustering_2_input1.mzML,MapAlignerPoseClustering_2_input2.mzML,MapAlignerPoseClustering_2_input3.mzML"/>
+      <output_collection name="out" count="3"/>
+      <section name="reference">
+        <param name="index" value="0"/>
+      </section>
+      <section name="algorithm">
+        <param name="max_num_peaks_considered" value="400"/>
+        <section name="superimposer">
+          <param name="mz_pair_max_distance" value="0.5"/>
+          <param name="rt_pair_distance_fraction" value="0.1"/>
+          <param name="num_used_points" value="2000"/>
+          <param name="scaling_bucket_size" value="0.005"/>
+          <param name="shift_bucket_size" value="3.0"/>
+          <param name="max_shift" value="1000.0"/>
+          <param name="max_scaling" value="2.0"/>
+          <param name="dump_buckets" value=""/>
+          <param name="dump_pairs" value=""/>
+        </section>
+        <section name="pairfinder">
+          <param name="second_nearest_gap" value="2.0"/>
+          <param name="use_identifications" value="false"/>
+          <param name="ignore_charge" value="false"/>
+          <param name="ignore_adduct" value="true"/>
+          <section name="distance_RT">
+            <param name="max_difference" value="100.0"/>
+            <param name="exponent" value="1.0"/>
+            <param name="weight" value="1.0"/>
+          </section>
+          <section name="distance_MZ">
+            <param name="max_difference" value="0.3"/>
+            <param name="unit" value="Da"/>
+            <param name="exponent" value="2.0"/>
+            <param name="weight" value="1.0"/>
+          </section>
+          <section name="distance_intensity">
+            <param name="exponent" value="1.0"/>
+            <param name="weight" value="0.0"/>
+            <param name="log_transform" value="disabled"/>
+          </section>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapAlignerPoseClustering_1_input2.featureXML,MapAlignerPoseClustering_1_input3.featureXML"/>
+      <output_collection name="out" count="2"/>
+      <section name="reference">
+        <param name="file" value="MapAlignerPoseClustering_1_input1.featureXML"/>
+        <param name="index" value="0"/>
+      </section>
+      <section name="algorithm">
+        <param name="max_num_peaks_considered" value="400"/>
+        <section name="superimposer">
+          <param name="mz_pair_max_distance" value="0.5"/>
+          <param name="rt_pair_distance_fraction" value="0.1"/>
+          <param name="num_used_points" value="2000"/>
+          <param name="scaling_bucket_size" value="0.005"/>
+          <param name="shift_bucket_size" value="3.0"/>
+          <param name="max_shift" value="1000.0"/>
+          <param name="max_scaling" value="2.0"/>
+          <param name="dump_buckets" value=""/>
+          <param name="dump_pairs" value=""/>
+        </section>
+        <section name="pairfinder">
+          <param name="second_nearest_gap" value="2.0"/>
+          <param name="use_identifications" value="false"/>
+          <param name="ignore_charge" value="true"/>
+          <param name="ignore_adduct" value="true"/>
+          <section name="distance_RT">
+            <param name="max_difference" value="30.0"/>
+            <param name="exponent" value="1.0"/>
+            <param name="weight" value="1.0"/>
+          </section>
+          <section name="distance_MZ">
+            <param name="max_difference" value="0.3"/>
+            <param name="unit" value="Da"/>
+            <param name="exponent" value="2.0"/>
+            <param name="weight" value="1.0"/>
+          </section>
+          <section name="distance_intensity">
+            <param name="exponent" value="1.0"/>
+            <param name="weight" value="0.0"/>
+            <param name="log_transform" value="disabled"/>
+          </section>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapAlignerPoseClustering_1_input1.featureXML,MapAlignerPoseClustering_1_input2.featureXML"/>
+      <output_collection name="trafo_out" count="2"/>
+      <section name="reference">
+        <param name="index" value="2"/>
+      </section>
+      <section name="algorithm">
+        <param name="max_num_peaks_considered" value="400"/>
+        <section name="superimposer">
+          <param name="mz_pair_max_distance" value="0.5"/>
+          <param name="rt_pair_distance_fraction" value="0.1"/>
+          <param name="num_used_points" value="2000"/>
+          <param name="scaling_bucket_size" value="0.005"/>
+          <param name="shift_bucket_size" value="3.0"/>
+          <param name="max_shift" value="1000.0"/>
+          <param name="max_scaling" value="2.0"/>
+          <param name="dump_buckets" value=""/>
+          <param name="dump_pairs" value=""/>
+        </section>
+        <section name="pairfinder">
+          <param name="second_nearest_gap" value="2.0"/>
+          <param name="use_identifications" value="false"/>
+          <param name="ignore_charge" value="true"/>
+          <param name="ignore_adduct" value="true"/>
+          <section name="distance_RT">
+            <param name="max_difference" value="30.0"/>
+            <param name="exponent" value="1.0"/>
+            <param name="weight" value="1.0"/>
+          </section>
+          <section name="distance_MZ">
+            <param name="max_difference" value="0.3"/>
+            <param name="unit" value="Da"/>
+            <param name="exponent" value="2.0"/>
+            <param name="weight" value="1.0"/>
+          </section>
+          <section name="distance_intensity">
+            <param name="exponent" value="1.0"/>
+            <param name="weight" value="0.0"/>
+            <param name="log_transform" value="disabled"/>
+          </section>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,trafo_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_MapAlignerSpectrum">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapAlignerSpectrum_1_input1.mzML,MapAlignerSpectrum_1_input2.mzML,MapAlignerSpectrum_1_input3.mzML"/>
+      <output_collection name="out" count="3"/>
+      <section name="algorithm">
+        <param name="gapcost" value="1.0"/>
+        <param name="affinegapcost" value="0.5"/>
+        <param name="cutoff_score" value="0.7"/>
+        <param name="bucketsize" value="100"/>
+        <param name="anchorpoints" value="100"/>
+        <param name="mismatchscore" value="-5.0"/>
+        <param name="scorefunction" value="SteinScottImproveScore"/>
+      </section>
+      <section name="model">
+        <param name="type" value="interpolated"/>
+        <section name="linear">
+          <param name="symmetric_regression" value="false"/>
+          <param name="x_weight" value=""/>
+          <param name="y_weight" value=""/>
+          <param name="x_datum_min" value="1e-15"/>
+          <param name="x_datum_max" value="1000000000000000.0"/>
+          <param name="y_datum_min" value="1e-15"/>
+          <param name="y_datum_max" value="1000000000000000.0"/>
+        </section>
+        <section name="b_spline">
+          <param name="wavelength" value="0.0"/>
+          <param name="num_nodes" value="5"/>
+          <param name="extrapolate" value="linear"/>
+          <param name="boundary_condition" value="2"/>
+        </section>
+        <section name="lowess">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+        <section name="interpolated">
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="two-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_MapAlignerTreeGuided">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapAlignerTreeGuided_1_input1.featureXML,MapAlignerTreeGuided_1_input2.featureXML,MapAlignerTreeGuided_1_input3.featureXML"/>
+      <output_collection name="out" count="3"/>
+      <section name="algorithm">
+        <param name="model_type" value="b_spline"/>
+        <section name="model">
+          <param name="type" value="b_spline"/>
+          <section name="linear">
+            <param name="symmetric_regression" value="false"/>
+            <param name="x_weight" value=""/>
+            <param name="y_weight" value=""/>
+            <param name="x_datum_min" value="1e-15"/>
+            <param name="x_datum_max" value="1000000000000000.0"/>
+            <param name="y_datum_min" value="1e-15"/>
+            <param name="y_datum_max" value="1000000000000000.0"/>
+          </section>
+          <section name="b_spline">
+            <param name="wavelength" value="0.0"/>
+            <param name="num_nodes" value="5"/>
+            <param name="extrapolate" value="linear"/>
+            <param name="boundary_condition" value="2"/>
+          </section>
+          <section name="lowess">
+            <param name="span" value="0.666666666666667"/>
+            <param name="num_iterations" value="3"/>
+            <param name="delta" value="-1.0"/>
+            <param name="interpolation_type" value="cspline"/>
+            <param name="extrapolation_type" value="four-point-linear"/>
+          </section>
+          <section name="interpolated">
+            <param name="interpolation_type" value="cspline"/>
+            <param name="extrapolation_type" value="two-point-linear"/>
+          </section>
+        </section>
+        <section name="align_algorithm">
+          <param name="score_cutoff" value="false"/>
+          <param name="min_score" value="0.05"/>
+          <param name="min_run_occur" value="2"/>
+          <param name="max_rt_shift" value="0.5"/>
+          <param name="use_unassigned_peptides" value="true"/>
+          <param name="use_feature_rt" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapAlignerTreeGuided_1_input1.featureXML,MapAlignerTreeGuided_1_input2.featureXML,MapAlignerTreeGuided_1_input3.featureXML"/>
+      <output_collection name="trafo_out" count="3"/>
+      <section name="algorithm">
+        <param name="model_type" value="b_spline"/>
+        <section name="model">
+          <param name="type" value="b_spline"/>
+          <section name="linear">
+            <param name="symmetric_regression" value="false"/>
+            <param name="x_weight" value=""/>
+            <param name="y_weight" value=""/>
+            <param name="x_datum_min" value="1e-15"/>
+            <param name="x_datum_max" value="1000000000000000.0"/>
+            <param name="y_datum_min" value="1e-15"/>
+            <param name="y_datum_max" value="1000000000000000.0"/>
+          </section>
+          <section name="b_spline">
+            <param name="wavelength" value="0.0"/>
+            <param name="num_nodes" value="5"/>
+            <param name="extrapolate" value="linear"/>
+            <param name="boundary_condition" value="2"/>
+          </section>
+          <section name="lowess">
+            <param name="span" value="0.666666666666667"/>
+            <param name="num_iterations" value="3"/>
+            <param name="delta" value="-1.0"/>
+            <param name="interpolation_type" value="cspline"/>
+            <param name="extrapolation_type" value="four-point-linear"/>
+          </section>
+          <section name="interpolated">
+            <param name="interpolation_type" value="cspline"/>
+            <param name="extrapolation_type" value="two-point-linear"/>
+          </section>
+        </section>
+        <section name="align_algorithm">
+          <param name="score_cutoff" value="false"/>
+          <param name="min_score" value="0.05"/>
+          <param name="min_run_occur" value="2"/>
+          <param name="max_rt_shift" value="0.5"/>
+          <param name="use_unassigned_peptides" value="true"/>
+          <param name="use_feature_rt" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,trafo_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapAlignerTreeGuided_1_input1.featureXML,MapAlignerTreeGuided_1_input2.featureXML,MapAlignerTreeGuided_1_input3.featureXML"/>
+      <output_collection name="out" count="3"/>
+      <section name="algorithm">
+        <param name="model_type" value="b_spline"/>
+        <section name="model">
+          <param name="type" value="b_spline"/>
+          <section name="linear">
+            <param name="symmetric_regression" value="false"/>
+            <param name="x_weight" value=""/>
+            <param name="y_weight" value=""/>
+            <param name="x_datum_min" value="1e-15"/>
+            <param name="x_datum_max" value="1000000000000000.0"/>
+            <param name="y_datum_min" value="1e-15"/>
+            <param name="y_datum_max" value="1000000000000000.0"/>
+          </section>
+          <section name="b_spline">
+            <param name="wavelength" value="0.0"/>
+            <param name="num_nodes" value="5"/>
+            <param name="extrapolate" value="linear"/>
+            <param name="boundary_condition" value="2"/>
+          </section>
+          <section name="lowess">
+            <param name="span" value="0.666666666666667"/>
+            <param name="num_iterations" value="3"/>
+            <param name="delta" value="-1.0"/>
+            <param name="interpolation_type" value="cspline"/>
+            <param name="extrapolation_type" value="four-point-linear"/>
+          </section>
+          <section name="interpolated">
+            <param name="interpolation_type" value="cspline"/>
+            <param name="extrapolation_type" value="two-point-linear"/>
+          </section>
+        </section>
+        <section name="align_algorithm">
+          <param name="score_cutoff" value="false"/>
+          <param name="min_score" value="0.05"/>
+          <param name="min_run_occur" value="2"/>
+          <param name="max_rt_shift" value="0.5"/>
+          <param name="use_unassigned_peptides" value="true"/>
+          <param name="use_feature_rt" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_MapNormalizer">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapNormalizer_input.mzML"/>
+      <output name="out" file="MapNormalizer.tmp" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_MapRTTransformer">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapRTTransformer_1_input.featureXML"/>
+      <output name="out" file="MapRTTransformer_1_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="trafo_in" value="MapRTTransformer_trafo_linear.trafoXML"/>
+      <param name="invert" value="false"/>
+      <param name="store_original_rt" value="false"/>
+      <section name="model">
+        <param name="type" value="none"/>
+        <section name="linear">
+          <param name="symmetric_regression" value="false"/>
+          <param name="x_weight" value=""/>
+          <param name="y_weight" value=""/>
+          <param name="x_datum_min" value="1e-15"/>
+          <param name="x_datum_max" value="1000000000000000.0"/>
+          <param name="y_datum_min" value="1e-15"/>
+          <param name="y_datum_max" value="1000000000000000.0"/>
+        </section>
+        <section name="b_spline">
+          <param name="wavelength" value="0.0"/>
+          <param name="num_nodes" value="5"/>
+          <param name="extrapolate" value="linear"/>
+          <param name="boundary_condition" value="2"/>
+        </section>
+        <section name="lowess">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+        <section name="interpolated">
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="two-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapRTTransformer_2_input.mzML"/>
+      <output name="out" file="MapRTTransformer_2_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="trafo_in" value="MapRTTransformer_trafo_linear.trafoXML"/>
+      <param name="invert" value="false"/>
+      <param name="store_original_rt" value="false"/>
+      <section name="model">
+        <param name="type" value="none"/>
+        <section name="linear">
+          <param name="symmetric_regression" value="false"/>
+          <param name="x_weight" value=""/>
+          <param name="y_weight" value=""/>
+          <param name="x_datum_min" value="1e-15"/>
+          <param name="x_datum_max" value="1000000000000000.0"/>
+          <param name="y_datum_min" value="1e-15"/>
+          <param name="y_datum_max" value="1000000000000000.0"/>
+        </section>
+        <section name="b_spline">
+          <param name="wavelength" value="0.0"/>
+          <param name="num_nodes" value="5"/>
+          <param name="extrapolate" value="linear"/>
+          <param name="boundary_condition" value="2"/>
+        </section>
+        <section name="lowess">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+        <section name="interpolated">
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="two-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="trafo_in" value="MapAlignerPoseClustering_1_trafo2.trafoXML"/>
+      <output name="trafo_out" file="MapRTTransformer_3_trafo.trafoXML" compare="sim_size" delta="5700" ftype="trafoxml"/>
+      <param name="invert" value="true"/>
+      <param name="store_original_rt" value="false"/>
+      <section name="model">
+        <param name="type" value="none"/>
+        <section name="linear">
+          <param name="symmetric_regression" value="false"/>
+          <param name="x_weight" value=""/>
+          <param name="y_weight" value=""/>
+          <param name="x_datum_min" value="1e-15"/>
+          <param name="x_datum_max" value="1000000000000000.0"/>
+          <param name="y_datum_min" value="1e-15"/>
+          <param name="y_datum_max" value="1000000000000000.0"/>
+        </section>
+        <section name="b_spline">
+          <param name="wavelength" value="0.0"/>
+          <param name="num_nodes" value="5"/>
+          <param name="extrapolate" value="linear"/>
+          <param name="boundary_condition" value="2"/>
+        </section>
+        <section name="lowess">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+        <section name="interpolated">
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="two-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,trafo_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapRTTransformer_4_input.chrom.mzML"/>
+      <output name="out" file="MapRTTransformer_4_output.chrom.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="trafo_in" value="MapRTTransformer_trafo_linear.trafoXML"/>
+      <param name="invert" value="false"/>
+      <param name="store_original_rt" value="false"/>
+      <section name="model">
+        <param name="type" value="none"/>
+        <section name="linear">
+          <param name="symmetric_regression" value="false"/>
+          <param name="x_weight" value=""/>
+          <param name="y_weight" value=""/>
+          <param name="x_datum_min" value="1e-15"/>
+          <param name="x_datum_max" value="1000000000000000.0"/>
+          <param name="y_datum_min" value="1e-15"/>
+          <param name="y_datum_max" value="1000000000000000.0"/>
+        </section>
+        <section name="b_spline">
+          <param name="wavelength" value="0.0"/>
+          <param name="num_nodes" value="5"/>
+          <param name="extrapolate" value="linear"/>
+          <param name="boundary_condition" value="2"/>
+        </section>
+        <section name="lowess">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+        <section name="interpolated">
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="two-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapRTTransformer_1_input.featureXML"/>
+      <output name="out" file="MapRTTransformer_5_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="trafo_in" value="MapRTTransformer_trafo_none.trafoXML"/>
+      <param name="invert" value="false"/>
+      <param name="store_original_rt" value="false"/>
+      <section name="model">
+        <param name="type" value="none"/>
+        <section name="linear">
+          <param name="symmetric_regression" value="false"/>
+          <param name="x_weight" value=""/>
+          <param name="y_weight" value=""/>
+          <param name="x_datum_min" value="1e-15"/>
+          <param name="x_datum_max" value="1000000000000000.0"/>
+          <param name="y_datum_min" value="1e-15"/>
+          <param name="y_datum_max" value="1000000000000000.0"/>
+        </section>
+        <section name="b_spline">
+          <param name="wavelength" value="0.0"/>
+          <param name="num_nodes" value="5"/>
+          <param name="extrapolate" value="linear"/>
+          <param name="boundary_condition" value="2"/>
+        </section>
+        <section name="lowess">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+        <section name="interpolated">
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="two-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapRTTransformer_1_input.featureXML"/>
+      <output name="out" file="MapRTTransformer_6_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="trafo_in" value="MapRTTransformer_trafo_linear.trafoXML"/>
+      <param name="invert" value="false"/>
+      <param name="store_original_rt" value="true"/>
+      <section name="model">
+        <param name="type" value="none"/>
+        <section name="linear">
+          <param name="symmetric_regression" value="false"/>
+          <param name="x_weight" value=""/>
+          <param name="y_weight" value=""/>
+          <param name="x_datum_min" value="1e-15"/>
+          <param name="x_datum_max" value="1000000000000000.0"/>
+          <param name="y_datum_min" value="1e-15"/>
+          <param name="y_datum_max" value="1000000000000000.0"/>
+        </section>
+        <section name="b_spline">
+          <param name="wavelength" value="0.0"/>
+          <param name="num_nodes" value="5"/>
+          <param name="extrapolate" value="linear"/>
+          <param name="boundary_condition" value="2"/>
+        </section>
+        <section name="lowess">
+          <param name="span" value="0.666666666666667"/>
+          <param name="num_iterations" value="3"/>
+          <param name="delta" value="-1.0"/>
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="four-point-linear"/>
+        </section>
+        <section name="interpolated">
+          <param name="interpolation_type" value="cspline"/>
+          <param name="extrapolation_type" value="two-point-linear"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_MapStatistics">
+</xml>
+  <xml name="autotest_MaRaClusterAdapter"/>
+  <xml name="autotest_MascotAdapterOnline">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="keep_protein_links" value="true"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="spectra_comet.mzML"/>
+      <output name="out" file="MascotAdapterOnline_1_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <section name="Mascot_parameters">
+        <param name="database" value="SwissProt"/>
+        <param name="search_type" value="MIS"/>
+        <param name="enzyme" value="Trypsin"/>
+        <param name="instrument" value="Default"/>
+        <param name="missed_cleavages" value="1"/>
+        <param name="precursor_mass_tolerance" value="3.0"/>
+        <param name="precursor_error_units" value="Da"/>
+        <param name="fragment_mass_tolerance" value="0.3"/>
+        <param name="fragment_error_units" value="Da"/>
+        <param name="charges" value="1,2,3"/>
+        <param name="taxonomy" value="All entries"/>
+        <param name="fixed_modifications" value=""/>
+        <param name="variable_modifications" value=""/>
+        <param name="special_modifications" value="Cation:Na (DE),Deamidated (NQ),Oxidation (HW),Phospho (ST),Sulfo (ST)"/>
+        <param name="mass_type" value="monoisotopic"/>
+        <param name="number_of_hits" value="0"/>
+        <param name="skip_spectrum_charges" value="false"/>
+        <param name="search_title" value="OpenMS_search"/>
+        <param name="username" value="OpenMS"/>
+        <param name="email" value="openmsjenkins@gmail.com"/>
+      </section>
+      <section name="Mascot_server">
+        <param name="hostname" value="www.matrixscience.com"/>
+        <param name="host_port" value="80"/>
+        <param name="server_path" value=""/>
+        <param name="timeout" value="1500"/>
+        <param name="boundary" value="GZWgAaYKjHFeUaLOLEIOMq"/>
+        <param name="use_proxy" value="false"/>
+        <param name="proxy_host" value=""/>
+        <param name="proxy_port" value="0"/>
+        <param name="proxy_username" value=""/>
+        <param name="proxy_password" value=""/>
+        <param name="login" value="false"/>
+        <param name="username" value=""/>
+        <param name="password" value=""/>
+        <param name="use_ssl" value="false"/>
+        <param name="export_params" value="_ignoreionsscorebelow=0&amp;_sigthreshold=0.99&amp;_showsubsets=1&amp;show_same_sets=1&amp;report=0&amp;percolate=0&amp;query_master=0"/>
+        <param name="skip_export" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_MascotAdapter">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MascotAdapter_1_input.mzData"/>
+      <output name="out" file="MascotAdapter_1_output.mascot_in" compare="sim_size" delta="5700"/>
+      <param name="out_type" value="mgf"/>
+      <param name="instrument" value="ESI-TRAP"/>
+      <param name="precursor_mass_tolerance" value="1.3"/>
+      <param name="peak_mass_tolerance" value="0.3"/>
+      <param name="taxonomy" value=". . . . . . Chordata (vertebrates and relatives)"/>
+      <param name="modifications" value="&quot;Carboxymethyl (C)&quot;"/>
+      <param name="variable_modifications" value="&quot;Variable_Modifications_TEST_1&quot;"/>
+      <param name="charges" value="&quot;1+&quot; &quot;2+&quot; &quot;3+&quot;"/>
+      <param name="db" value="MSDB"/>
+      <param name="hits" value="AUTO"/>
+      <param name="cleavage" value="Trypsin"/>
+      <param name="missed_cleavages" value="1"/>
+      <param name="sig_threshold" value="0.05"/>
+      <param name="pep_homol" value="1.0"/>
+      <param name="pep_ident" value="1.0"/>
+      <param name="pep_rank" value="1"/>
+      <param name="prot_score" value="1.0"/>
+      <param name="pep_score" value="1.0"/>
+      <param name="pep_exp_z" value="1"/>
+      <param name="show_unassigned" value="1"/>
+      <param name="first_dim_rt" value="0.0"/>
+      <param name="boundary" value="ABCDEFGHIJKMNOPQRSTUVWXYZ"/>
+      <param name="mass_type" value="Monoisotopic"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MascotAdapter_2_input.mascotXML"/>
+      <output name="out" file="MascotAdapter_2_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="instrument" value="Default"/>
+      <param name="precursor_mass_tolerance" value="2.0"/>
+      <param name="peak_mass_tolerance" value="1.0"/>
+      <param name="taxonomy" value="All entries"/>
+      <param name="modifications" value=""/>
+      <param name="variable_modifications" value=""/>
+      <param name="charges" value="&quot;1+&quot; &quot;2+&quot; &quot;3+&quot;"/>
+      <param name="db" value="MSDB"/>
+      <param name="hits" value="AUTO"/>
+      <param name="cleavage" value="Trypsin"/>
+      <param name="missed_cleavages" value="0"/>
+      <param name="sig_threshold" value="0.05"/>
+      <param name="pep_homol" value="1.0"/>
+      <param name="pep_ident" value="1.0"/>
+      <param name="pep_rank" value="1"/>
+      <param name="prot_score" value="1.0"/>
+      <param name="pep_score" value="1.0"/>
+      <param name="pep_exp_z" value="1"/>
+      <param name="show_unassigned" value="1"/>
+      <param name="first_dim_rt" value="0.0"/>
+      <param name="boundary" value=""/>
+      <param name="mass_type" value="Monoisotopic"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_MassCalculator">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MassCalculator_1_input.tsv" ftype="tabular"/>
+      <param name="in_seq" value=""/>
+      <output name="out" file="MassCalculator_1_output.csv" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="charge" value="0 1"/>
+      <param name="format" value="table"/>
+      <param name="average_mass" value="false"/>
+      <param name="fragment_type" value="full"/>
+      <param name="separator" value=","/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in_seq" value="&quot;LDQWLC(Carbamidomethyl)EKL&quot; &quot;(Glu-&gt;pyro-Glu)EAM(Oxidation)APKHK&quot; &quot;RANVM(Oxidation)DYR&quot; &quot;FGVEQDVDMVFASFIR&quot;"/>
+      <output name="out" file="MassCalculator_2_output.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="charge" value="1 2 3"/>
+      <param name="format" value="list"/>
+      <param name="average_mass" value="false"/>
+      <param name="fragment_type" value="full"/>
+      <param name="separator" value=""/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_MassTraceExtractor">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MassTraceExtractor_1_input.mzML"/>
+      <output name="out" file="MassTraceExtractor_1_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="out_type" value="featurexml"/>
+      <section name="algorithm">
+        <section name="common">
+          <param name="noise_threshold_int" value="10.0"/>
+          <param name="chrom_peak_snr" value="3.0"/>
+          <param name="chrom_fwhm" value="5.0"/>
+        </section>
+        <section name="mtd">
+          <param name="mass_error_ppm" value="20.0"/>
+          <param name="reestimate_mt_sd" value="true"/>
+          <param name="quant_method" value="area"/>
+          <param name="trace_termination_criterion" value="outlier"/>
+          <param name="trace_termination_outliers" value="5"/>
+          <param name="min_sample_rate" value="0.5"/>
+          <param name="min_trace_length" value="5.0"/>
+          <param name="max_trace_length" value="-1.0"/>
+        </section>
+        <section name="epd">
+          <param name="width_filtering" value="off"/>
+          <param name="min_fwhm" value="3.0"/>
+          <param name="max_fwhm" value="60.0"/>
+          <param name="masstrace_snr_filtering" value="false"/>
+          <param name="enabled" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MassTraceExtractor_1_input.mzML"/>
+      <output name="out" file="MassTraceExtractor_2_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="out_type" value="featurexml"/>
+      <section name="algorithm">
+        <section name="common">
+          <param name="noise_threshold_int" value="10.0"/>
+          <param name="chrom_peak_snr" value="3.0"/>
+          <param name="chrom_fwhm" value="5.0"/>
+        </section>
+        <section name="mtd">
+          <param name="mass_error_ppm" value="20.0"/>
+          <param name="reestimate_mt_sd" value="true"/>
+          <param name="quant_method" value="area"/>
+          <param name="trace_termination_criterion" value="outlier"/>
+          <param name="trace_termination_outliers" value="5"/>
+          <param name="min_sample_rate" value="0.5"/>
+          <param name="min_trace_length" value="6.0"/>
+          <param name="max_trace_length" value="12.0"/>
+        </section>
+        <section name="epd">
+          <param name="width_filtering" value="off"/>
+          <param name="min_fwhm" value="3.0"/>
+          <param name="max_fwhm" value="60.0"/>
+          <param name="masstrace_snr_filtering" value="false"/>
+          <param name="enabled" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_MetaboliteAdductDecharger">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MetaboliteAdductDecharger_input.featureXML"/>
+      <output name="out_fm" file="MetaboliteAdductDecharger_1_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <section name="algorithm">
+        <section name="MetaboliteFeatureDeconvolution">
+          <param name="charge_min" value="1"/>
+          <param name="charge_max" value="3"/>
+          <param name="charge_span_max" value="3"/>
+          <param name="q_try" value="feature"/>
+          <param name="retention_max_diff" value="1.0"/>
+          <param name="retention_max_diff_local" value="1.0"/>
+          <param name="mass_max_diff" value="0.05"/>
+          <param name="unit" value="Da"/>
+          <param name="potential_adducts" value="&quot;H:+:0.4&quot; &quot;Na:+:0.25&quot; &quot;NH4:+:0.25&quot; &quot;K:+:0.1&quot; &quot;H-2O-1:0:0.05&quot;"/>
+          <param name="max_neutrals" value="1"/>
+          <param name="use_minority_bound" value="true"/>
+          <param name="max_minority_bound" value="3"/>
+          <param name="min_rt_overlap" value="0.66"/>
+          <param name="intensity_filter" value="false"/>
+          <param name="negative_mode" value="false"/>
+          <param name="default_map_label" value="decharged features"/>
+          <param name="verbose_level" value="0"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_fm_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MetaboliteAdductDecharger_input.featureXML"/>
+      <output name="out_cm" file="MetaboliteAdductDecharger_2_output_1.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <output name="outpairs" file="MetaboliteAdductDecharger_2_output_2.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="algorithm">
+        <section name="MetaboliteFeatureDeconvolution">
+          <param name="charge_min" value="1"/>
+          <param name="charge_max" value="3"/>
+          <param name="charge_span_max" value="3"/>
+          <param name="q_try" value="feature"/>
+          <param name="retention_max_diff" value="1.0"/>
+          <param name="retention_max_diff_local" value="1.0"/>
+          <param name="mass_max_diff" value="0.05"/>
+          <param name="unit" value="Da"/>
+          <param name="potential_adducts" value="&quot;H:+:0.4&quot; &quot;Na:+:0.25&quot; &quot;NH4:+:0.25&quot; &quot;K:+:0.1&quot; &quot;H-2O-1:0:0.05&quot;"/>
+          <param name="max_neutrals" value="1"/>
+          <param name="use_minority_bound" value="true"/>
+          <param name="max_minority_bound" value="3"/>
+          <param name="min_rt_overlap" value="0.66"/>
+          <param name="intensity_filter" value="false"/>
+          <param name="negative_mode" value="false"/>
+          <param name="default_map_label" value="decharged features"/>
+          <param name="verbose_level" value="0"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_cm_FLAG,outpairs_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_MetaboliteSpectralMatcher">
+</xml>
+  <xml name="autotest_MetaProSIP">
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="min_correlation_distance_to_averagine" value="-1.0"/>
+        <param name="pattern_15N_TIC_threshold" value="0.95"/>
+        <param name="pattern_13C_TIC_threshold" value="0.95"/>
+        <param name="pattern_2H_TIC_threshold" value="0.95"/>
+        <param name="pattern_18O_TIC_threshold" value="0.95"/>
+        <param name="heatmap_bins" value="20"/>
+        <param name="observed_peak_fraction" value="0.5"/>
+        <param name="min_consecutive_isotopes" value="2"/>
+        <param name="score_plot_yaxis_min" value="0.0"/>
+        <param name="collect_method" value="correlation_maximum"/>
+        <param name="lowRIA_correlation_threshold" value="-1.0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in_mzML" value="MetaProSIP_1_input.mzML"/>
+      <param name="in_fasta" value="MetaProSIP_1_input.fasta"/>
+      <output name="out_csv" file="MetaProSIP_1_output_1.csv" compare="sim_size" delta="5700" ftype="csv"/>
+      <output name="out_peptide_centric_csv" file="MetaProSIP_1_output_2.csv" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="in_featureXML" value="MetaProSIP_1_input.featureXML"/>
+      <param name="mz_tolerance_ppm" value="10.0"/>
+      <param name="rt_tolerance_s" value="30.0"/>
+      <param name="intensity_threshold" value="10.0"/>
+      <param name="correlation_threshold" value="0.7"/>
+      <param name="xic_threshold" value="0.7"/>
+      <param name="decomposition_threshold" value="0.7"/>
+      <param name="weight_merge_window" value="5.0"/>
+      <param name="plot_extension" value="png"/>
+      <param name="qc_output_directory" value=""/>
+      <param name="labeling_element" value="C"/>
+      <param name="use_unassigned_ids" value="false"/>
+      <param name="use_averagine_ids" value="false"/>
+      <param name="report_natural_peptides" value="false"/>
+      <param name="filter_monoisotopic" value="false"/>
+      <param name="cluster" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_MRMMapper">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MRMMapping_input.chrom.mzML"/>
+      <param name="tr" value="MRMMapping_input.TraML"/>
+      <output name="out" file="MRMMapping_output.chrom.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="precursor_tolerance" value="0.3"/>
+        <param name="product_tolerance" value="0.3"/>
+        <param name="map_multiple_assays" value="false"/>
+        <param name="error_on_unmapped" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MRMMapping_input.chrom.mzML"/>
+      <param name="tr" value="MRMMapping_input_2.TraML"/>
+      <output name="out" file="MRMMapping_output_2.chrom.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="precursor_tolerance" value="0.01"/>
+        <param name="product_tolerance" value="0.01"/>
+        <param name="map_multiple_assays" value="false"/>
+        <param name="error_on_unmapped" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_MRMPairFinder">
+</xml>
+  <xml name="autotest_MRMTransitionGroupPicker">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MRMTransitionGroupPicker_1_input.mzML"/>
+      <param name="tr" value="MRMTransitionGroupPicker_1_input.TraML"/>
+      <output name="out" file="MRMTransitionGroupPicker_1_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <section name="algorithm">
+        <param name="stop_after_feature" value="-1"/>
+        <param name="stop_after_intensity_ratio" value="0.0001"/>
+        <param name="min_peak_width" value="-1.0"/>
+        <param name="peak_integration" value="original"/>
+        <param name="background_subtraction" value="none"/>
+        <param name="recalculate_peaks" value="false"/>
+        <param name="use_precursors" value="false"/>
+        <param name="use_consensus" value="true"/>
+        <param name="recalculate_peaks_max_z" value="1.0"/>
+        <param name="minimal_quality" value="-10000.0"/>
+        <param name="resample_boundary" value="15.0"/>
+        <param name="compute_peak_quality" value="false"/>
+        <param name="compute_peak_shape_metrics" value="false"/>
+        <param name="compute_total_mi" value="false"/>
+        <param name="boundary_selection_method" value="largest"/>
+        <section name="PeakPickerMRM">
+          <param name="sgolay_frame_length" value="15"/>
+          <param name="sgolay_polynomial_order" value="3"/>
+          <param name="gauss_width" value="50.0"/>
+          <param name="use_gauss" value="true"/>
+          <param name="peak_width" value="40.0"/>
+          <param name="signal_to_noise" value="1.0"/>
+          <param name="sn_win_len" value="1000.0"/>
+          <param name="sn_bin_count" value="30"/>
+          <param name="write_sn_log_messages" value="false"/>
+          <param name="remove_overlapping_peaks" value="true"/>
+          <param name="method" value="legacy"/>
+        </section>
+        <section name="PeakIntegrator">
+          <param name="integration_type" value="intensity_sum"/>
+          <param name="baseline_type" value="base_to_base"/>
+          <param name="fit_EMG" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MRMTransitionGroupPicker_1_input.mzML"/>
+      <param name="tr" value="MRMTransitionGroupPicker_1_input.TraML"/>
+      <output name="out" file="MRMTransitionGroupPicker_2_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <section name="algorithm">
+        <param name="stop_after_feature" value="-1"/>
+        <param name="stop_after_intensity_ratio" value="0.0001"/>
+        <param name="min_peak_width" value="-1.0"/>
+        <param name="peak_integration" value="original"/>
+        <param name="background_subtraction" value="none"/>
+        <param name="recalculate_peaks" value="false"/>
+        <param name="use_precursors" value="false"/>
+        <param name="use_consensus" value="true"/>
+        <param name="recalculate_peaks_max_z" value="1.0"/>
+        <param name="minimal_quality" value="-10000.0"/>
+        <param name="resample_boundary" value="15.0"/>
+        <param name="compute_peak_quality" value="false"/>
+        <param name="compute_peak_shape_metrics" value="false"/>
+        <param name="compute_total_mi" value="true"/>
+        <param name="boundary_selection_method" value="largest"/>
+        <section name="PeakPickerMRM">
+          <param name="sgolay_frame_length" value="15"/>
+          <param name="sgolay_polynomial_order" value="3"/>
+          <param name="gauss_width" value="50.0"/>
+          <param name="use_gauss" value="true"/>
+          <param name="peak_width" value="40.0"/>
+          <param name="signal_to_noise" value="1.0"/>
+          <param name="sn_win_len" value="1000.0"/>
+          <param name="sn_bin_count" value="30"/>
+          <param name="write_sn_log_messages" value="false"/>
+          <param name="remove_overlapping_peaks" value="true"/>
+          <param name="method" value="legacy"/>
+        </section>
+        <section name="PeakIntegrator">
+          <param name="integration_type" value="intensity_sum"/>
+          <param name="baseline_type" value="base_to_base"/>
+          <param name="fit_EMG" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_MSFraggerAdapter"/>
+  <xml name="autotest_MSGFPlusAdapter">
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="add_decoys" value="false"/>
+        <param name="legacy_conversion" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="spectra.mzML"/>
+      <output name="out" file="MSGFPlusAdapter_1_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <output name="mzid_out" file="MSGFPlusAdapter_1_out2.tmp.mzid" compare="sim_size" delta="5700" ftype="mzid"/>
+      <param name="database" value="proteins.fasta"/>
+      <param name="precursor_mass_tolerance" value="10.0"/>
+      <param name="precursor_error_units" value="ppm"/>
+      <param name="isotope_error_range" value="0,1"/>
+      <param name="fragment_method" value="from_spectrum"/>
+      <param name="instrument" value="high_res"/>
+      <param name="enzyme" value="Trypsin/P"/>
+      <param name="protocol" value="none"/>
+      <param name="tryptic" value="fully"/>
+      <param name="min_precursor_charge" value="1"/>
+      <param name="max_precursor_charge" value="3"/>
+      <param name="min_peptide_length" value="6"/>
+      <param name="max_peptide_length" value="40"/>
+      <param name="matches_per_spec" value="1"/>
+      <param name="add_features" value="false"/>
+      <param name="max_mods" value="2"/>
+      <param name="max_missed_cleavages" value="-1"/>
+      <param name="tasks" value="0"/>
+      <param name="fixed_modifications" value=""/>
+      <param name="variable_modifications" value="Oxidation (M)"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,mzid_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_MSSimulator">
+</xml>
+  <xml name="autotest_MSstatsConverter">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="retention_time_summarization_method" value="max"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MSstatsConverter_1_in.consensusXML"/>
+      <param name="in_design" value="MSstatsConverter_1_design.tsv" ftype="tabular"/>
+      <param name="method" value="LFQ"/>
+      <param name="msstats_bioreplicate" value="MSstats_BioReplicate"/>
+      <param name="msstats_condition" value="MSstats_Condition"/>
+      <param name="msstats_mixture" value="MSstats_Mixture"/>
+      <param name="labeled_reference_peptides" value="false"/>
+      <output name="out" file="MSstatsConverter_1_out.csv" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="retention_time_summarization_method" value="manual"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MSstatsConverter_2_in.consensusXML"/>
+      <param name="in_design" value="MSstatsConverter_2_design.tsv" ftype="tabular"/>
+      <param name="method" value="ISO"/>
+      <param name="msstats_bioreplicate" value="MSstats_BioReplicate"/>
+      <param name="msstats_condition" value="MSstats_Condition"/>
+      <param name="msstats_mixture" value="MSstats_Mixture"/>
+      <param name="labeled_reference_peptides" value="false"/>
+      <output name="out" file="MSstatsConverter_2_out.csv" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="retention_time_summarization_method" value="manual"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MSstatsConverter_3_in.consensusXML"/>
+      <param name="in_design" value="MSstatsConverter_3_design.tsv" ftype="tabular"/>
+      <param name="method" value="ISO"/>
+      <param name="msstats_bioreplicate" value="MSstats_BioReplicate"/>
+      <param name="msstats_condition" value="MSstats_Condition"/>
+      <param name="msstats_mixture" value="MSstats_Mixture"/>
+      <param name="labeled_reference_peptides" value="false"/>
+      <output name="out" file="MSstatsConverter_3_out.csv" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_MultiplexResolver">
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MultiplexResolver_1_input.consensusXML"/>
+      <output name="out" file="MultiplexResolver_1_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <output name="out_conflicts" file="MultiplexResolver_1_output_conflicts.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="algorithm">
+        <param name="labels" value="[][Lys4,Arg6][Lys8,Arg10]"/>
+        <param name="missed_cleavages" value="1"/>
+        <param name="mass_tolerance" value="0.1"/>
+        <param name="mz_tolerance" value="10"/>
+        <param name="rt_tolerance" value="5"/>
+      </section>
+      <section name="labels">
+        <param name="Arg6" value="6.0201290268"/>
+        <param name="Arg10" value="10.0082686"/>
+        <param name="Lys4" value="4.0251069836"/>
+        <param name="Lys6" value="6.0201290268"/>
+        <param name="Lys8" value="8.0141988132"/>
+        <param name="Leu3" value="3.01883"/>
+        <param name="Dimethyl0" value="28.0313"/>
+        <param name="Dimethyl4" value="32.056407"/>
+        <param name="Dimethyl6" value="34.063117"/>
+        <param name="Dimethyl8" value="36.07567"/>
+        <param name="ICPL0" value="105.021464"/>
+        <param name="ICPL4" value="109.046571"/>
+        <param name="ICPL6" value="111.041593"/>
+        <param name="ICPL10" value="115.0667"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_conflicts_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MultiplexResolver_2_input.consensusXML"/>
+      <output name="out" file="MultiplexResolver_2_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <output name="out_conflicts" file="MultiplexResolver_2_output_conflicts.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="algorithm">
+        <param name="labels" value="[Dimethyl0][Dimethyl4][Dimethyl8]"/>
+        <param name="missed_cleavages" value="4"/>
+        <param name="mass_tolerance" value="0.1"/>
+        <param name="mz_tolerance" value="10"/>
+        <param name="rt_tolerance" value="5"/>
+      </section>
+      <section name="labels">
+        <param name="Arg6" value="6.0201290268"/>
+        <param name="Arg10" value="10.0082686"/>
+        <param name="Lys4" value="4.0251069836"/>
+        <param name="Lys6" value="6.0201290268"/>
+        <param name="Lys8" value="8.0141988132"/>
+        <param name="Leu3" value="3.01883"/>
+        <param name="Dimethyl0" value="28.0313"/>
+        <param name="Dimethyl4" value="32.056407"/>
+        <param name="Dimethyl6" value="34.063117"/>
+        <param name="Dimethyl8" value="36.07567"/>
+        <param name="ICPL0" value="105.021464"/>
+        <param name="ICPL4" value="109.046571"/>
+        <param name="ICPL6" value="111.041593"/>
+        <param name="ICPL10" value="115.0667"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_conflicts_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MultiplexResolver_3_input.consensusXML"/>
+      <output name="out" file="MultiplexResolver_3_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <output name="out_conflicts" file="MultiplexResolver_3_output_conflicts.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="algorithm">
+        <param name="labels" value="[][Leu3]"/>
+        <param name="missed_cleavages" value="2"/>
+        <param name="mass_tolerance" value="0.1"/>
+        <param name="mz_tolerance" value="10"/>
+        <param name="rt_tolerance" value="5"/>
+      </section>
+      <section name="labels">
+        <param name="Arg6" value="6.0201290268"/>
+        <param name="Arg10" value="10.0082686"/>
+        <param name="Lys4" value="4.0251069836"/>
+        <param name="Lys6" value="6.0201290268"/>
+        <param name="Lys8" value="8.0141988132"/>
+        <param name="Leu3" value="3.01883"/>
+        <param name="Dimethyl0" value="28.0313"/>
+        <param name="Dimethyl4" value="32.056407"/>
+        <param name="Dimethyl6" value="34.063117"/>
+        <param name="Dimethyl8" value="36.07567"/>
+        <param name="ICPL0" value="105.021464"/>
+        <param name="ICPL4" value="109.046571"/>
+        <param name="ICPL6" value="111.041593"/>
+        <param name="ICPL10" value="115.0667"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_conflicts_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MultiplexResolver_4_input.consensusXML"/>
+      <param name="in_blacklist" value="MultiplexResolver_4_input.mzML"/>
+      <output name="out" file="MultiplexResolver_4_output.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <output name="out_conflicts" file="MultiplexResolver_4_output_conflicts.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <section name="algorithm">
+        <param name="labels" value="[Dimethyl0][Dimethyl6]"/>
+        <param name="missed_cleavages" value="3"/>
+        <param name="mass_tolerance" value="0.1"/>
+        <param name="mz_tolerance" value="10"/>
+        <param name="rt_tolerance" value="10"/>
+      </section>
+      <section name="labels">
+        <param name="Arg6" value="6.0201290268"/>
+        <param name="Arg10" value="10.0082686"/>
+        <param name="Lys4" value="4.0251069836"/>
+        <param name="Lys6" value="6.0201290268"/>
+        <param name="Lys8" value="8.0141988132"/>
+        <param name="Leu3" value="3.01883"/>
+        <param name="Dimethyl0" value="28.0313"/>
+        <param name="Dimethyl4" value="32.056407"/>
+        <param name="Dimethyl6" value="34.063117"/>
+        <param name="Dimethyl8" value="36.07567"/>
+        <param name="ICPL0" value="105.021464"/>
+        <param name="ICPL4" value="109.046571"/>
+        <param name="ICPL6" value="111.041593"/>
+        <param name="ICPL10" value="115.0667"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_conflicts_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_MyriMatchAdapter">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="MinPeptideMass" value="0.0"/>
+        <param name="MaxPeptideMass" value="10000.0"/>
+        <param name="MinPeptideLength" value="5"/>
+        <param name="MaxPeptideLength" value="75"/>
+        <param name="UseSmartPlusThreeModel" value="false"/>
+        <param name="NumIntensityClasses" value="3"/>
+        <param name="ClassSizeMultiplier" value="2.0"/>
+        <param name="MonoisotopeAdjustmentSet" value="[-1,2]"/>
+        <param name="SpectrumListFilters" value=""/>
+        <param name="ignoreConfigErrors" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="spectra.mzML"/>
+      <output name="out" file="MyriMatchAdapter_1_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="precursor_mass_tolerance" value="5.0"/>
+      <param name="precursor_mass_tolerance_unit" value="ppm"/>
+      <param name="precursor_mass_tolerance_avg" value="false"/>
+      <param name="fragment_mass_tolerance" value="0.3"/>
+      <param name="fragment_mass_tolerance_unit" value="Da"/>
+      <param name="database" value="proteins.fasta"/>
+      <param name="fixed_modifications" value=""/>
+      <param name="variable_modifications" value="Oxidation (M)"/>
+      <param name="NumChargeStates" value="3"/>
+      <param name="TicCutoffPercentage" value="0.98"/>
+      <param name="MaxDynamicMods" value="2"/>
+      <param name="MaxResultRank" value="5"/>
+      <param name="CleavageRules" value=""/>
+      <param name="MinTerminiCleavages" value="2"/>
+      <param name="MaxMissedCleavages" value="-1"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_MzMLSplitter"/>
+  <xml name="autotest_MzTabExporter">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="first_run_inference_only" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MzTabExporter_1_input.consensusXML"/>
+      <output name="out" file="MzTabExporter_1_output.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>
+      <param name="opt_columns" value="subfeatures"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="first_run_inference_only" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MzTabExporter_2_input.idXML"/>
+      <output name="out" file="MzTabExporter_2_output.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>
+      <param name="opt_columns" value="subfeatures"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="first_run_inference_only" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MzTabExporter_3_input.featureXML"/>
+      <output name="out" file="MzTabExporter_3_output.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>
+      <param name="opt_columns" value="subfeatures"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="first_run_inference_only" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="Epifany_2_out.consensusXML"/>
+      <output name="out" file="MzTabExporter_4_output.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>
+      <param name="opt_columns" value="subfeatures"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="first_run_inference_only" value="true"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MzTabExporter_5_in.consensusXML"/>
+      <output name="out" file="MzTabExporter_5_output.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>
+      <param name="opt_columns" value="subfeatures"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="first_run_inference_only" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MzTabExporter_6_input.idXML"/>
+      <output name="out" file="MzTabExporter_6_output.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>
+      <param name="opt_columns" value="subfeatures"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="first_run_inference_only" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MzTabExporter_7_input.consensusXML"/>
+      <output name="out" file="MzTabExporter_7_output.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>
+      <param name="opt_columns" value="subfeatures"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_NoiseFilterGaussian">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="processOption" value="inmemory"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="NoiseFilterGaussian_1_input.mzML"/>
+      <output name="out" file="NoiseFilterGaussian_1_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="gaussian_width" value="1.0"/>
+        <param name="ppm_tolerance" value="10.0"/>
+        <param name="use_ppm_tolerance" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="processOption" value="inmemory"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="NoiseFilterGaussian_2_input.chrom.mzML"/>
+      <output name="out" file="NoiseFilterGaussian_2_output.chrom.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="gaussian_width" value="50.0"/>
+        <param name="ppm_tolerance" value="10.0"/>
+        <param name="use_ppm_tolerance" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="processOption" value="lowmemory"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="NoiseFilterGaussian_1_input.mzML"/>
+      <output name="out" file="NoiseFilterGaussian_1_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="gaussian_width" value="1.0"/>
+        <param name="ppm_tolerance" value="10.0"/>
+        <param name="use_ppm_tolerance" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="processOption" value="lowmemory"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="NoiseFilterGaussian_2_input.chrom.mzML"/>
+      <output name="out" file="NoiseFilterGaussian_2_output.chrom.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="gaussian_width" value="50.0"/>
+        <param name="ppm_tolerance" value="10.0"/>
+        <param name="use_ppm_tolerance" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_NoiseFilterSGolay">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="processOption" value="inmemory"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="NoiseFilterSGolay_1_input.mzML"/>
+      <output name="out" file="NoiseFilterSGolay_1_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="frame_length" value="9"/>
+        <param name="polynomial_order" value="4"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="processOption" value="inmemory"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="NoiseFilterSGolay_2_input.chrom.mzML"/>
+      <output name="out" file="NoiseFilterSGolay_2_output.chrom.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="frame_length" value="11"/>
+        <param name="polynomial_order" value="4"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="processOption" value="lowmemory"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="NoiseFilterSGolay_1_input.mzML"/>
+      <output name="out" file="NoiseFilterSGolay_1_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="frame_length" value="9"/>
+        <param name="polynomial_order" value="4"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="processOption" value="lowmemory"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="NoiseFilterSGolay_2_input.chrom.mzML"/>
+      <output name="out" file="NoiseFilterSGolay_2_output.chrom.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="frame_length" value="11"/>
+        <param name="polynomial_order" value="4"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_NovorAdapter"/>
+  <xml name="autotest_NucleicAcidSearchEngine">
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="decharge_ms2" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="NucleicAcidSearchEngine_1.mzML"/>
+      <param name="database" value="NucleicAcidSearchEngine_1.fasta"/>
+      <output name="out" file="NucleicAcidSearchEngine_12_out.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>
+      <output name="id_out" file="NucleicAcidSearchEngine_11_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <section name="precursor">
+        <param name="mass_tolerance" value="5.0"/>
+        <param name="mass_tolerance_unit" value="ppm"/>
+        <param name="min_charge" value="-2"/>
+        <param name="max_charge" value="-14"/>
+        <param name="include_unknown_charge" value="true"/>
+        <param name="use_avg_mass" value="false"/>
+        <param name="use_adducts" value="false"/>
+        <param name="potential_adducts" value="&quot;K:+&quot; &quot;Na:+&quot; &quot;Na2:++&quot; &quot;K2:++&quot; &quot;NaK:++&quot; &quot;K3:+++&quot; &quot;Na3:+++&quot; &quot;NaK2:+++&quot; &quot;Na2K:+++&quot;"/>
+        <param name="isotopes" value="0 1 2"/>
+      </section>
+      <section name="fragment">
+        <param name="mass_tolerance" value="5.0"/>
+        <param name="mass_tolerance_unit" value="ppm"/>
+        <param name="ions" value="a-B,c,w,y"/>
+      </section>
+      <section name="modifications">
+        <param name="variable" value=""/>
+        <param name="variable_max_per_oligo" value="2"/>
+        <param name="resolve_ambiguities" value="false"/>
+      </section>
+      <section name="oligo">
+        <param name="min_size" value="5"/>
+        <param name="max_size" value="0"/>
+        <param name="missed_cleavages" value="22"/>
+        <param name="enzyme" value="no cleavage"/>
+      </section>
+      <section name="report">
+        <param name="top_hits" value="1"/>
+      </section>
+      <section name="fdr">
+        <param name="decoy_pattern" value="DECOY_"/>
+        <param name="cutoff" value="0.05"/>
+        <param name="remove_decoys" value="true"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,id_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_OMSSAAdapter">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="pc" value="1"/>
+        <param name="hs" value="4"/>
+        <param name="tez" value="1"/>
+        <param name="tom" value="0"/>
+        <param name="tem" value="0"/>
+        <param name="tex" value="1446.94"/>
+        <param name="zt" value="3"/>
+        <param name="z1" value="0.95"/>
+        <param name="zc" value="1"/>
+        <param name="zcc" value="2"/>
+        <param name="zoh" value="2"/>
+        <param name="no" value="4"/>
+        <param name="nox" value="40"/>
+        <param name="i" value="1,4"/>
+        <param name="sp" value="100"/>
+        <param name="sb1" value="1"/>
+        <param name="sct" value="0"/>
+        <param name="x" value="0"/>
+        <param name="hm" value="2"/>
+        <param name="ht" value="6"/>
+        <param name="mm" value="128"/>
+        <param name="mnm" value="false"/>
+        <param name="is" value="0.0"/>
+        <param name="ir" value="0.0"/>
+        <param name="ii" value="0.0"/>
+        <param name="chunk_size" value="0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="spectra.mzML"/>
+      <output name="out" file="OMSSAAdapter_1_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="precursor_mass_tolerance" value="5.0"/>
+      <param name="precursor_error_units" value="ppm"/>
+      <param name="fragment_mass_tolerance" value="0.3"/>
+      <param name="database" value="proteins.fasta"/>
+      <param name="min_precursor_charge" value="1"/>
+      <param name="max_precursor_charge" value="3"/>
+      <param name="fixed_modifications" value=""/>
+      <param name="variable_modifications" value="Oxidation (M)"/>
+      <param name="v" value="1"/>
+      <param name="enzyme" value="Trypsin"/>
+      <param name="hl" value="30"/>
+      <param name="he" value="1.0"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_OpenPepXLLF">
+    <test expect_num_outputs="5">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenPepXLLF_input.mzML"/>
+      <param name="database" value="OpenPepXLLF_input.fasta"/>
+      <param name="decoy_string" value="decoy"/>
+      <param name="decoy_prefix" value="true"/>
+      <output name="out_idXML" file="OpenPepXLLF_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <output name="out_mzIdentML" file="OpenPepXLLF_output.mzid" compare="sim_size" delta="5700" ftype="mzid"/>
+      <output name="out_xquestxml" file="OpenPepXLLF_output.xquest.xml" compare="sim_size" delta="5700" ftype="xquest.xml"/>
+      <output name="out_xquest_specxml" file="OpenPepXLLF_output.spec.xml" compare="sim_size" delta="5700" ftype="spec.xml"/>
+      <section name="precursor">
+        <param name="mass_tolerance" value="10.0"/>
+        <param name="mass_tolerance_unit" value="ppm"/>
+        <param name="min_charge" value="3"/>
+        <param name="max_charge" value="7"/>
+        <param name="corrections" value="2 1 0"/>
+      </section>
+      <section name="fragment">
+        <param name="mass_tolerance" value="20.0"/>
+        <param name="mass_tolerance_xlinks" value="20.0"/>
+        <param name="mass_tolerance_unit" value="ppm"/>
+      </section>
+      <section name="modifications">
+        <param name="fixed" value=""/>
+        <param name="variable" value=""/>
+        <param name="variable_max_per_peptide" value="2"/>
+      </section>
+      <section name="peptide">
+        <param name="min_size" value="5"/>
+        <param name="missed_cleavages" value="2"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="cross_linker">
+        <param name="residue1" value="&quot;K&quot; &quot;N-term&quot;"/>
+        <param name="residue2" value="&quot;K&quot; &quot;N-term&quot;"/>
+        <param name="mass" value="138.0680796"/>
+        <param name="mass_mono_link" value="156.07864431 155.094628715"/>
+        <param name="name" value="DSS"/>
+      </section>
+      <section name="algorithm">
+        <param name="number_top_hits" value="5"/>
+        <param name="deisotope" value="auto"/>
+        <param name="use_sequence_tags" value="false"/>
+        <param name="sequence_tag_min_length" value="2"/>
+      </section>
+      <section name="ions">
+        <param name="b_ions" value="true"/>
+        <param name="y_ions" value="true"/>
+        <param name="a_ions" value="false"/>
+        <param name="x_ions" value="false"/>
+        <param name="c_ions" value="false"/>
+        <param name="z_ions" value="false"/>
+        <param name="neutral_losses" value="true"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_idXML_FLAG,out_mzIdentML_FLAG,out_xquestxml_FLAG,out_xquest_specxml_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenPepXLLF_input2.mzML"/>
+      <param name="database" value="OpenPepXLLF_input2.fasta"/>
+      <param name="decoy_string" value="decoy_"/>
+      <param name="decoy_prefix" value="true"/>
+      <output name="out_idXML" file="OpenPepXLLF_output2.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <section name="precursor">
+        <param name="mass_tolerance" value="10.0"/>
+        <param name="mass_tolerance_unit" value="ppm"/>
+        <param name="min_charge" value="3"/>
+        <param name="max_charge" value="7"/>
+        <param name="corrections" value="1 0"/>
+      </section>
+      <section name="fragment">
+        <param name="mass_tolerance" value="0.2"/>
+        <param name="mass_tolerance_xlinks" value="0.3"/>
+        <param name="mass_tolerance_unit" value="Da"/>
+      </section>
+      <section name="modifications">
+        <param name="fixed" value="Carbamidomethyl (C)"/>
+        <param name="variable" value="Oxidation (M)"/>
+        <param name="variable_max_per_peptide" value="1"/>
+      </section>
+      <section name="peptide">
+        <param name="min_size" value="5"/>
+        <param name="missed_cleavages" value="1"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="cross_linker">
+        <param name="residue1" value="&quot;D&quot; &quot;E&quot; &quot;C-term&quot;"/>
+        <param name="residue2" value="&quot;K&quot; &quot;S&quot; &quot;T&quot; &quot;Y&quot; &quot;N-term&quot;"/>
+        <param name="mass" value="-18.010595"/>
+        <param name="mass_mono_link" value=""/>
+        <param name="name" value="DMTMM"/>
+      </section>
+      <section name="algorithm">
+        <param name="number_top_hits" value="1"/>
+        <param name="deisotope" value="auto"/>
+        <param name="use_sequence_tags" value="false"/>
+        <param name="sequence_tag_min_length" value="2"/>
+      </section>
+      <section name="ions">
+        <param name="b_ions" value="true"/>
+        <param name="y_ions" value="true"/>
+        <param name="a_ions" value="false"/>
+        <param name="x_ions" value="false"/>
+        <param name="c_ions" value="false"/>
+        <param name="z_ions" value="false"/>
+        <param name="neutral_losses" value="true"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_idXML_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_OpenPepXL">
+    <test expect_num_outputs="5">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenPepXL_input.mzML"/>
+      <param name="consensus" value="OpenPepXL_input.consensusXML"/>
+      <param name="database" value="OpenPepXL_input.fasta"/>
+      <param name="decoy_string" value="decoy"/>
+      <param name="decoy_prefix" value="true"/>
+      <output name="out_idXML" file="OpenPepXL_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <output name="out_mzIdentML" file="OpenPepXL_output.mzid" compare="sim_size" delta="5700" ftype="mzid"/>
+      <output name="out_xquestxml" file="OpenPepXL_output.xquest.xml" compare="sim_size" delta="5700" ftype="xquest.xml"/>
+      <output name="out_xquest_specxml" file="OpenPepXL_output.spec.xml" compare="sim_size" delta="5700" ftype="spec.xml"/>
+      <section name="precursor">
+        <param name="mass_tolerance" value="10.0"/>
+        <param name="mass_tolerance_unit" value="ppm"/>
+        <param name="min_charge" value="3"/>
+        <param name="max_charge" value="7"/>
+        <param name="corrections" value="2 1 0"/>
+      </section>
+      <section name="fragment">
+        <param name="mass_tolerance" value="0.2"/>
+        <param name="mass_tolerance_xlinks" value="0.3"/>
+        <param name="mass_tolerance_unit" value="Da"/>
+      </section>
+      <section name="modifications">
+        <param name="fixed" value=""/>
+        <param name="variable" value=""/>
+        <param name="variable_max_per_peptide" value="2"/>
+      </section>
+      <section name="peptide">
+        <param name="min_size" value="5"/>
+        <param name="missed_cleavages" value="2"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="cross_linker">
+        <param name="residue1" value="&quot;K&quot; &quot;N-term&quot;"/>
+        <param name="residue2" value="&quot;K&quot; &quot;N-term&quot;"/>
+        <param name="mass_light" value="138.0680796"/>
+        <param name="mass_iso_shift" value="12.075321"/>
+        <param name="mass_mono_link" value="156.07864431 155.094628715"/>
+        <param name="name" value="DSS"/>
+      </section>
+      <section name="algorithm">
+        <param name="number_top_hits" value="5"/>
+        <param name="deisotope" value="auto"/>
+      </section>
+      <section name="ions">
+        <param name="b_ions" value="true"/>
+        <param name="y_ions" value="true"/>
+        <param name="a_ions" value="false"/>
+        <param name="x_ions" value="false"/>
+        <param name="c_ions" value="false"/>
+        <param name="z_ions" value="false"/>
+        <param name="neutral_losses" value="true"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_idXML_FLAG,out_mzIdentML_FLAG,out_xquestxml_FLAG,out_xquest_specxml_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_OpenSwathAnalyzer">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathAnalyzer_1_input_chrom.mzML"/>
+      <param name="tr" value="OpenSwathAnalyzer_1_input.TraML"/>
+      <param name="rt_norm" value="OpenSwathAnalyzer_input.trafoXML"/>
+      <output name="out" file="OpenSwathAnalyzer_1_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="no_strict" value="false"/>
+      <param name="min_upper_edge_dist" value="0.0"/>
+      <section name="model">
+        <param name="type" value="linear"/>
+        <param name="symmetric_regression" value="false"/>
+      </section>
+      <section name="algorithm">
+        <param name="stop_report_after_feature" value="-1"/>
+        <param name="rt_extraction_window" value="-1.0"/>
+        <param name="rt_normalization_factor" value="1.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="stop_after_intensity_ratio" value="0.0001"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="false"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="1.0"/>
+          <param name="minimal_quality" value="-10000.0"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="15"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="50.0"/>
+            <param name="use_gauss" value="true"/>
+            <param name="peak_width" value="40.0"/>
+            <param name="signal_to_noise" value="1.0"/>
+            <param name="sn_win_len" value="1000.0"/>
+            <param name="sn_bin_count" value="30"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="false"/>
+            <param name="method" value="legacy"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="interpolation_step" value="0.2"/>
+          <param name="tolerance_stdev_bounding_box" value="3.0"/>
+          <param name="max_iteration" value="500"/>
+          <section name="statistics">
+            <param name="mean" value="1.0"/>
+            <param name="variance" value="1.0"/>
+          </section>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_elution_model_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="false"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="false"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathAnalyzer_1_input_chrom.mzML"/>
+      <param name="tr" value="OpenSwathAnalyzer_1_input.TraML"/>
+      <output name="out" file="OpenSwathAnalyzer_2_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="no_strict" value="false"/>
+      <param name="swath_files" value="OpenSwathAnalyzer_2_swathfile.mzML"/>
+      <param name="min_upper_edge_dist" value="0.0"/>
+      <section name="model">
+        <param name="type" value="linear"/>
+        <param name="symmetric_regression" value="false"/>
+      </section>
+      <section name="algorithm">
+        <param name="stop_report_after_feature" value="-1"/>
+        <param name="rt_extraction_window" value="-1.0"/>
+        <param name="rt_normalization_factor" value="1.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="stop_after_intensity_ratio" value="0.0001"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="false"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="1.0"/>
+          <param name="minimal_quality" value="-10000.0"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="15"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="50.0"/>
+            <param name="use_gauss" value="true"/>
+            <param name="peak_width" value="40.0"/>
+            <param name="signal_to_noise" value="1.0"/>
+            <param name="sn_win_len" value="1000.0"/>
+            <param name="sn_bin_count" value="30"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="false"/>
+            <param name="method" value="legacy"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="interpolation_step" value="0.2"/>
+          <param name="tolerance_stdev_bounding_box" value="3.0"/>
+          <param name="max_iteration" value="500"/>
+          <section name="statistics">
+            <param name="mean" value="1.0"/>
+            <param name="variance" value="1.0"/>
+          </section>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_elution_model_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="false"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="false"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathAnalyzer_1_input_chrom.mzML"/>
+      <param name="tr" value="OpenSwathAnalyzer_mod_input.TraML"/>
+      <output name="out" file="OpenSwathAnalyzer_5_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="no_strict" value="false"/>
+      <param name="swath_files" value="OpenSwathAnalyzer_2_swathfile.mzML"/>
+      <param name="min_upper_edge_dist" value="0.0"/>
+      <section name="model">
+        <param name="type" value="linear"/>
+        <param name="symmetric_regression" value="false"/>
+      </section>
+      <section name="algorithm">
+        <param name="stop_report_after_feature" value="-1"/>
+        <param name="rt_extraction_window" value="-1.0"/>
+        <param name="rt_normalization_factor" value="1.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="stop_after_intensity_ratio" value="0.0001"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="false"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="1.0"/>
+          <param name="minimal_quality" value="-10000.0"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="15"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="50.0"/>
+            <param name="use_gauss" value="true"/>
+            <param name="peak_width" value="40.0"/>
+            <param name="signal_to_noise" value="1.0"/>
+            <param name="sn_win_len" value="1000.0"/>
+            <param name="sn_bin_count" value="30"/>
+            <param name="write_sn_log_messages" value="true"/>
+            <param name="remove_overlapping_peaks" value="false"/>
+            <param name="method" value="legacy"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="8.0"/>
+          <param name="dia_byseries_ppm_diff" value="15.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="interpolation_step" value="0.2"/>
+          <param name="tolerance_stdev_bounding_box" value="3.0"/>
+          <param name="max_iteration" value="500"/>
+          <section name="statistics">
+            <param name="mean" value="1.0"/>
+            <param name="variance" value="1.0"/>
+          </section>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_elution_model_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="false"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="false"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathAnalyzer_1_input_chrom.mzML"/>
+      <param name="tr" value="OpenSwathAnalyzer_1_input.TraML"/>
+      <output name="out" file="OpenSwathAnalyzer_6_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="no_strict" value="false"/>
+      <param name="swath_files" value="OpenSwathAnalyzer_2_swathfile.mzML"/>
+      <param name="min_upper_edge_dist" value="0.0"/>
+      <section name="model">
+        <param name="type" value="linear"/>
+        <param name="symmetric_regression" value="false"/>
+      </section>
+      <section name="algorithm">
+        <param name="stop_report_after_feature" value="-1"/>
+        <param name="rt_extraction_window" value="-1.0"/>
+        <param name="rt_normalization_factor" value="1.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="stop_after_intensity_ratio" value="0.0001"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="false"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="1.0"/>
+          <param name="minimal_quality" value="-10000.0"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="15"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="50.0"/>
+            <param name="use_gauss" value="true"/>
+            <param name="peak_width" value="40.0"/>
+            <param name="signal_to_noise" value="1.0"/>
+            <param name="sn_win_len" value="1000.0"/>
+            <param name="sn_bin_count" value="30"/>
+            <param name="write_sn_log_messages" value="true"/>
+            <param name="remove_overlapping_peaks" value="false"/>
+            <param name="method" value="legacy"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="8.0"/>
+          <param name="dia_byseries_ppm_diff" value="15.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="interpolation_step" value="0.2"/>
+          <param name="tolerance_stdev_bounding_box" value="3.0"/>
+          <param name="max_iteration" value="500"/>
+          <section name="statistics">
+            <param name="mean" value="1.0"/>
+            <param name="variance" value="1.0"/>
+          </section>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_elution_model_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="false"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="false"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathAnalyzer_1_input_chrom.mzML"/>
+      <param name="tr" value="OpenSwathAnalyzer_1_input.TraML"/>
+      <output name="out" file="OpenSwathAnalyzer_7_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="no_strict" value="false"/>
+      <param name="min_upper_edge_dist" value="0.0"/>
+      <section name="model">
+        <param name="type" value="linear"/>
+        <param name="symmetric_regression" value="false"/>
+      </section>
+      <section name="algorithm">
+        <param name="stop_report_after_feature" value="-1"/>
+        <param name="rt_extraction_window" value="-1.0"/>
+        <param name="rt_normalization_factor" value="1.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="stop_after_intensity_ratio" value="0.0001"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="original"/>
+          <param name="recalculate_peaks" value="false"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="1.0"/>
+          <param name="minimal_quality" value="-10000.0"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="15"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="50.0"/>
+            <param name="use_gauss" value="true"/>
+            <param name="peak_width" value="40.0"/>
+            <param name="signal_to_noise" value="1.0"/>
+            <param name="sn_win_len" value="1000.0"/>
+            <param name="sn_bin_count" value="30"/>
+            <param name="write_sn_log_messages" value="true"/>
+            <param name="remove_overlapping_peaks" value="false"/>
+            <param name="method" value="legacy"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="interpolation_step" value="0.2"/>
+          <param name="tolerance_stdev_bounding_box" value="3.0"/>
+          <param name="max_iteration" value="500"/>
+          <section name="statistics">
+            <param name="mean" value="1.0"/>
+            <param name="variance" value="1.0"/>
+          </section>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_elution_model_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="false"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="false"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathAnalyzer_1_input_chrom.mzML"/>
+      <param name="tr" value="OpenSwathAnalyzer_1_input.TraML"/>
+      <param name="rt_norm" value="OpenSwathAnalyzer_input.trafoXML"/>
+      <output name="out" file="OpenSwathAnalyzer_8_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="no_strict" value="false"/>
+      <param name="min_upper_edge_dist" value="0.0"/>
+      <section name="model">
+        <param name="type" value="linear"/>
+        <param name="symmetric_regression" value="false"/>
+      </section>
+      <section name="algorithm">
+        <param name="stop_report_after_feature" value="-1"/>
+        <param name="rt_extraction_window" value="-1.0"/>
+        <param name="rt_normalization_factor" value="1.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="stop_after_intensity_ratio" value="0.0001"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="false"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="1.0"/>
+          <param name="minimal_quality" value="-10000.0"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="15"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="50.0"/>
+            <param name="use_gauss" value="true"/>
+            <param name="peak_width" value="40.0"/>
+            <param name="signal_to_noise" value="1.0"/>
+            <param name="sn_win_len" value="1000.0"/>
+            <param name="sn_bin_count" value="30"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="false"/>
+            <param name="method" value="legacy"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="interpolation_step" value="0.2"/>
+          <param name="tolerance_stdev_bounding_box" value="3.0"/>
+          <param name="max_iteration" value="500"/>
+          <section name="statistics">
+            <param name="mean" value="1.0"/>
+            <param name="variance" value="1.0"/>
+          </section>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_elution_model_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="true"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="true"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathAnalyzer_1_input_chrom.mzML"/>
+      <param name="tr" value="OpenSwathAnalyzer_1_input.TraML"/>
+      <param name="rt_norm" value="OpenSwathAnalyzer_input.trafoXML"/>
+      <output name="out" file="OpenSwathAnalyzer_9_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="no_strict" value="false"/>
+      <param name="min_upper_edge_dist" value="0.0"/>
+      <section name="model">
+        <param name="type" value="linear"/>
+        <param name="symmetric_regression" value="false"/>
+      </section>
+      <section name="algorithm">
+        <param name="stop_report_after_feature" value="-1"/>
+        <param name="rt_extraction_window" value="-1.0"/>
+        <param name="rt_normalization_factor" value="1.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="stop_after_intensity_ratio" value="0.0001"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="false"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="1.0"/>
+          <param name="minimal_quality" value="-10000.0"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="15"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="50.0"/>
+            <param name="use_gauss" value="true"/>
+            <param name="peak_width" value="40.0"/>
+            <param name="signal_to_noise" value="1.0"/>
+            <param name="sn_win_len" value="1000.0"/>
+            <param name="sn_bin_count" value="30"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="false"/>
+            <param name="method" value="legacy"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="interpolation_step" value="0.2"/>
+          <param name="tolerance_stdev_bounding_box" value="3.0"/>
+          <param name="max_iteration" value="500"/>
+          <section name="statistics">
+            <param name="mean" value="1.0"/>
+            <param name="variance" value="1.0"/>
+          </section>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_elution_model_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="false"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathAnalyzer_1_input_chrom.mzML"/>
+      <param name="tr" value="OpenSwathAnalyzer_1_input.TraML"/>
+      <param name="rt_norm" value="OpenSwathAnalyzer_input.trafoXML"/>
+      <output name="out" file="OpenSwathAnalyzer_10_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="no_strict" value="false"/>
+      <param name="min_upper_edge_dist" value="0.0"/>
+      <section name="model">
+        <param name="type" value="linear"/>
+        <param name="symmetric_regression" value="false"/>
+      </section>
+      <section name="algorithm">
+        <param name="stop_report_after_feature" value="-1"/>
+        <param name="rt_extraction_window" value="-1.0"/>
+        <param name="rt_normalization_factor" value="1.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="stop_after_intensity_ratio" value="0.0001"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="false"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="1.0"/>
+          <param name="minimal_quality" value="-10000.0"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="15"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="50.0"/>
+            <param name="use_gauss" value="true"/>
+            <param name="peak_width" value="40.0"/>
+            <param name="signal_to_noise" value="1.0"/>
+            <param name="sn_win_len" value="1000.0"/>
+            <param name="sn_bin_count" value="30"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="false"/>
+            <param name="method" value="legacy"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="interpolation_step" value="0.2"/>
+          <param name="tolerance_stdev_bounding_box" value="3.0"/>
+          <param name="max_iteration" value="500"/>
+          <section name="statistics">
+            <param name="mean" value="1.0"/>
+            <param name="variance" value="1.0"/>
+          </section>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_elution_model_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="true"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="false"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathAnalyzer_1_input_chrom.mzML"/>
+      <param name="tr" value="OpenSwathAnalyzer_1_input.TraML"/>
+      <param name="rt_norm" value="OpenSwathAnalyzer_input.trafoXML"/>
+      <output name="out" file="OpenSwathAnalyzer_11_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="no_strict" value="false"/>
+      <param name="min_upper_edge_dist" value="0.0"/>
+      <section name="model">
+        <param name="type" value="linear"/>
+        <param name="symmetric_regression" value="false"/>
+      </section>
+      <section name="algorithm">
+        <param name="stop_report_after_feature" value="-1"/>
+        <param name="rt_extraction_window" value="-1.0"/>
+        <param name="rt_normalization_factor" value="1.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="stop_after_intensity_ratio" value="0.0001"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="false"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="1.0"/>
+          <param name="minimal_quality" value="-10000.0"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="15"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="50.0"/>
+            <param name="use_gauss" value="true"/>
+            <param name="peak_width" value="40.0"/>
+            <param name="signal_to_noise" value="1.0"/>
+            <param name="sn_win_len" value="1000.0"/>
+            <param name="sn_bin_count" value="30"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="false"/>
+            <param name="method" value="legacy"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="interpolation_step" value="0.2"/>
+          <param name="tolerance_stdev_bounding_box" value="3.0"/>
+          <param name="max_iteration" value="500"/>
+          <section name="statistics">
+            <param name="mean" value="1.0"/>
+            <param name="variance" value="1.0"/>
+          </section>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_elution_model_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="true"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="false"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="false"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_OpenSwathAssayGenerator">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="max_num_alternative_localizations" value="10000"/>
+        <param name="disable_identification_ms2_precursors" value="false"/>
+        <param name="disable_identification_specific_losses" value="false"/>
+        <param name="enable_identification_unspecific_losses" value="false"/>
+        <param name="enable_swath_specifity" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathAssayGenerator_input.TraML"/>
+      <output name="out" file="OpenSwathAssayGenerator_output.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <param name="min_transitions" value="6"/>
+      <param name="max_transitions" value="6"/>
+      <param name="allowed_fragment_types" value="b,y"/>
+      <param name="allowed_fragment_charges" value="2,3"/>
+      <param name="enable_detection_specific_losses" value="true"/>
+      <param name="enable_detection_unspecific_losses" value="false"/>
+      <param name="precursor_mz_threshold" value="0.025"/>
+      <param name="precursor_lower_mz_limit" value="400.0"/>
+      <param name="precursor_upper_mz_limit" value="1200.0"/>
+      <param name="product_mz_threshold" value="0.025"/>
+      <param name="product_lower_mz_limit" value="350.0"/>
+      <param name="product_upper_mz_limit" value="2000.0"/>
+      <param name="enable_ipf" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="max_num_alternative_localizations" value="10000"/>
+        <param name="disable_identification_ms2_precursors" value="false"/>
+        <param name="disable_identification_specific_losses" value="false"/>
+        <param name="enable_identification_unspecific_losses" value="false"/>
+        <param name="enable_swath_specifity" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathAssayGenerator_input_2.TraML"/>
+      <output name="out" file="OpenSwathAssayGenerator_output_2.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <param name="min_transitions" value="6"/>
+      <param name="max_transitions" value="6"/>
+      <param name="allowed_fragment_types" value="b,y"/>
+      <param name="allowed_fragment_charges" value="1,2,3,4"/>
+      <param name="enable_detection_specific_losses" value="false"/>
+      <param name="enable_detection_unspecific_losses" value="false"/>
+      <param name="precursor_mz_threshold" value="0.025"/>
+      <param name="precursor_lower_mz_limit" value="400.0"/>
+      <param name="precursor_upper_mz_limit" value="1200.0"/>
+      <param name="product_mz_threshold" value="0.025"/>
+      <param name="product_lower_mz_limit" value="350.0"/>
+      <param name="product_upper_mz_limit" value="2000.0"/>
+      <param name="unimod_file" value="OpenSwathAssayGenerator_input_2_unimod.xml"/>
+      <param name="enable_ipf" value="true"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="max_num_alternative_localizations" value="10000"/>
+        <param name="disable_identification_ms2_precursors" value="false"/>
+        <param name="disable_identification_specific_losses" value="false"/>
+        <param name="enable_identification_unspecific_losses" value="false"/>
+        <param name="enable_swath_specifity" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathAssayGenerator_input_2.TraML"/>
+      <output name="out" file="OpenSwathAssayGenerator_output_3.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <param name="min_transitions" value="6"/>
+      <param name="max_transitions" value="6"/>
+      <param name="allowed_fragment_types" value="b,y"/>
+      <param name="allowed_fragment_charges" value="1,2,3,4"/>
+      <param name="enable_detection_specific_losses" value="false"/>
+      <param name="enable_detection_unspecific_losses" value="false"/>
+      <param name="precursor_mz_threshold" value="0.025"/>
+      <param name="precursor_lower_mz_limit" value="400.0"/>
+      <param name="precursor_upper_mz_limit" value="1200.0"/>
+      <param name="product_mz_threshold" value="0.025"/>
+      <param name="product_lower_mz_limit" value="350.0"/>
+      <param name="product_upper_mz_limit" value="2000.0"/>
+      <param name="unimod_file" value="OpenSwathAssayGenerator_input_3_unimod.xml"/>
+      <param name="enable_ipf" value="true"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_OpenSwathChromatogramExtractor">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathChromatogramExtractor_input.mzML"/>
+      <param name="tr" value="OpenSwathChromatogramExtractor_input.TraML"/>
+      <output name="out" file="OpenSwathChromatogramExtractor_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="min_upper_edge_dist" value="0.0"/>
+      <param name="rt_window" value="-1.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_window" value="0.05"/>
+      <param name="ppm" value="false"/>
+      <param name="is_swath" value="false"/>
+      <param name="extract_MS1" value="false"/>
+      <section name="model">
+        <param name="type" value="linear"/>
+        <param name="symmetric_regression" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathChromatogramExtractor_input.mzML"/>
+      <param name="tr" value="OpenSwathChromatogramExtractor_input.TraML"/>
+      <param name="rt_norm" value="OpenSwathChromatogramExtractor_input.trafoXML"/>
+      <output name="out" file="OpenSwathChromatogramExtractor_output_2.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="min_upper_edge_dist" value="0.0"/>
+      <param name="rt_window" value="50.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_window" value="0.05"/>
+      <param name="ppm" value="false"/>
+      <param name="is_swath" value="false"/>
+      <param name="extract_MS1" value="false"/>
+      <section name="model">
+        <param name="type" value="linear"/>
+        <param name="symmetric_regression" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathChromatogramExtractor_input.mzML"/>
+      <param name="tr" value="OpenSwathChromatogramExtractor_input.TraML"/>
+      <output name="out" file="OpenSwathChromatogramExtractor_output_3.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="min_upper_edge_dist" value="0.0"/>
+      <param name="rt_window" value="-1.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_window" value="0.05"/>
+      <param name="ppm" value="false"/>
+      <param name="is_swath" value="false"/>
+      <param name="extract_MS1" value="true"/>
+      <section name="model">
+        <param name="type" value="linear"/>
+        <param name="symmetric_regression" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathChromatogramExtractor_4_input.mzML"/>
+      <param name="tr" value="OpenSwathChromatogramExtractor_4_input.TraML"/>
+      <output name="out" file="OpenSwathChromatogramExtractor_4_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="min_upper_edge_dist" value="0.0"/>
+      <param name="rt_window" value="-1.0"/>
+      <param name="ion_mobility_window" value="0.05"/>
+      <param name="mz_window" value="0.05"/>
+      <param name="ppm" value="false"/>
+      <param name="is_swath" value="true"/>
+      <param name="extract_MS1" value="false"/>
+      <section name="model">
+        <param name="type" value="linear"/>
+        <param name="symmetric_regression" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathChromatogramExtractor_input.mzML"/>
+      <param name="tr" value="OpenSwathChromatogramExtractor_5_input.TraML"/>
+      <output name="out" file="OpenSwathChromatogramExtractor_5_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="min_upper_edge_dist" value="0.0"/>
+      <param name="rt_window" value="-1.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_window" value="0.05"/>
+      <param name="ppm" value="false"/>
+      <param name="is_swath" value="false"/>
+      <param name="extract_MS1" value="true"/>
+      <section name="model">
+        <param name="type" value="linear"/>
+        <param name="symmetric_regression" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_OpenSwathConfidenceScoring">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathFeatureXMLToTSV_input.featureXML"/>
+      <param name="lib" value="OpenSwathFeatureXMLToTSV_input.TraML"/>
+      <output name="out" file="OpenSwathConfidenceScoring_1_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="trafo" value="OpenSwathConfidenceScoring_1_input.trafoXML"/>
+      <param name="decoys" value="1"/>
+      <param name="transitions" value="2"/>
+      <section name="GLM">
+        <param name="intercept" value="3.87333466"/>
+        <param name="delta_rt" value="-0.02898629"/>
+        <param name="dist_int" value="-7.75880768"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_OpenSwathDecoyGenerator">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="min_decoy_fraction" value="0.8"/>
+        <param name="aim_decoy_fraction" value="1.0"/>
+        <param name="shuffle_max_attempts" value="30"/>
+        <param name="shuffle_sequence_identity_threshold" value="0.5"/>
+        <param name="shift_precursor_mz_shift" value="0.0"/>
+        <param name="shift_product_mz_shift" value="20.0"/>
+        <param name="product_mz_threshold" value="0.025"/>
+        <param name="allowed_fragment_types" value="b,y"/>
+        <param name="allowed_fragment_charges" value="1,2,3,4"/>
+        <param name="enable_detection_specific_losses" value="false"/>
+        <param name="enable_detection_unspecific_losses" value="false"/>
+        <param name="separate" value="true"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathDecoyGenerator_input.TraML"/>
+      <output name="out" file="OpenSwathDecoyGenerator_output.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <param name="method" value="pseudo-reverse"/>
+      <param name="decoy_tag" value="DECOY_"/>
+      <param name="switchKR" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="min_decoy_fraction" value="0.8"/>
+        <param name="aim_decoy_fraction" value="1.0"/>
+        <param name="shuffle_max_attempts" value="30"/>
+        <param name="shuffle_sequence_identity_threshold" value="0.5"/>
+        <param name="shift_precursor_mz_shift" value="0.0"/>
+        <param name="shift_product_mz_shift" value="20.0"/>
+        <param name="product_mz_threshold" value="0.8"/>
+        <param name="allowed_fragment_types" value="b,y"/>
+        <param name="allowed_fragment_charges" value="1,2,3,4"/>
+        <param name="enable_detection_specific_losses" value="false"/>
+        <param name="enable_detection_unspecific_losses" value="false"/>
+        <param name="separate" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathDecoyGenerator_input_2.TraML"/>
+      <output name="out" file="OpenSwathDecoyGenerator_output_2.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <param name="method" value="pseudo-reverse"/>
+      <param name="decoy_tag" value="DECOY_"/>
+      <param name="switchKR" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="min_decoy_fraction" value="0.8"/>
+        <param name="aim_decoy_fraction" value="1.0"/>
+        <param name="shuffle_max_attempts" value="30"/>
+        <param name="shuffle_sequence_identity_threshold" value="0.5"/>
+        <param name="shift_precursor_mz_shift" value="0.0"/>
+        <param name="shift_product_mz_shift" value="20.0"/>
+        <param name="product_mz_threshold" value="0.025"/>
+        <param name="allowed_fragment_types" value="b,y"/>
+        <param name="allowed_fragment_charges" value="1,2,3,4"/>
+        <param name="enable_detection_specific_losses" value="false"/>
+        <param name="enable_detection_unspecific_losses" value="false"/>
+        <param name="separate" value="true"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathDecoyGenerator_input_3.TraML"/>
+      <output name="out" file="OpenSwathDecoyGenerator_output_3.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <param name="method" value="pseudo-reverse"/>
+      <param name="decoy_tag" value="DECOY_"/>
+      <param name="switchKR" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="min_decoy_fraction" value="0.4"/>
+        <param name="aim_decoy_fraction" value="1.0"/>
+        <param name="shuffle_max_attempts" value="30"/>
+        <param name="shuffle_sequence_identity_threshold" value="0.5"/>
+        <param name="shift_precursor_mz_shift" value="0.0"/>
+        <param name="shift_product_mz_shift" value="20.0"/>
+        <param name="product_mz_threshold" value="0.025"/>
+        <param name="allowed_fragment_types" value="b,y"/>
+        <param name="allowed_fragment_charges" value="1,2,3,4"/>
+        <param name="enable_detection_specific_losses" value="true"/>
+        <param name="enable_detection_unspecific_losses" value="true"/>
+        <param name="separate" value="true"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathDecoyGenerator_input_4.tsv" ftype="tabular"/>
+      <output name="out" file="OpenSwathDecoyGenerator_output_4.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <param name="method" value="pseudo-reverse"/>
+      <param name="decoy_tag" value="DECOY_"/>
+      <param name="switchKR" value="true"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_OpenSwathDIAPreScoring">
+</xml>
+  <xml name="autotest_OpenSwathFeatureXMLToTSV">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathFeatureXMLToTSV_input.featureXML"/>
+      <param name="tr" value="OpenSwathFeatureXMLToTSV_input.TraML"/>
+      <output name="out" file="OpenSwathFeatureXMLToTSV_output.short.csv" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="short_format" value="true"/>
+      <param name="best_scoring_peptide" value=""/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathFeatureXMLToTSV_input.featureXML"/>
+      <param name="tr" value="OpenSwathFeatureXMLToTSV_input.TraML"/>
+      <output name="out" file="OpenSwathFeatureXMLToTSV_output.long.csv" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="short_format" value="false"/>
+      <param name="best_scoring_peptide" value=""/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathFeatureXMLToTSV_input.featureXML"/>
+      <param name="tr" value="OpenSwathFeatureXMLToTSV_input.TraML"/>
+      <output name="out" file="OpenSwathFeatureXMLToTSV_3_output.short.csv" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="short_format" value="true"/>
+      <param name="best_scoring_peptide" value="main_var_xx_lda_prelim_score"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_OpenSwathFileSplitter"/>
+  <xml name="autotest_OpenSwathMzMLFileCacher">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="lowmem_batchsize" value="500"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathMzMLFileCacher_1_input.mzML"/>
+      <output name="out" file="OpenSwathMzMLFileCacher_1_input.cached.tmp.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzml"/>
+      <param name="lossy_compression" value="true"/>
+      <param name="full_meta" value="true"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="lowmem_batchsize" value="500"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathMzMLFileCacher_2_input.chrom.mzML"/>
+      <output name="out" file="OpenSwathMzMLFileCacher_2_input.chrom.cached.tmp.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzml"/>
+      <param name="lossy_compression" value="true"/>
+      <param name="full_meta" value="true"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="lossy_mass_accuracy" value="0.0001"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="lowmem_batchsize" value="500"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathMzMLFileCacher_1_input.mzML"/>
+      <output name="out" file="OpenSwathMzMLFileCacher_3_input.tmp.sqMass" compare="sim_size" delta="5700" ftype="sqmass"/>
+      <param name="out_type" value="sqmass"/>
+      <param name="lossy_compression" value="true"/>
+      <param name="full_meta" value="true"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="lowmem_batchsize" value="500"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathMzMLFileCacher_3_input.tmp.sqMass"/>
+      <output name="out" file="OpenSwathMzMLFileCacher_3_output.tmp.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzml"/>
+      <param name="lossy_compression" value="true"/>
+      <param name="full_meta" value="true"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="lowmem_batchsize" value="500"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathMzMLFileCacher_2_input.chrom.mzML"/>
+      <output name="out" file="OpenSwathMzMLFileCacher_4_input.tmp.sqMass" compare="sim_size" delta="5700" ftype="sqmass"/>
+      <param name="out_type" value="sqmass"/>
+      <param name="lossy_compression" value="true"/>
+      <param name="full_meta" value="true"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="lowmem_batchsize" value="500"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathMzMLFileCacher_4_input.tmp.sqMass"/>
+      <output name="out" file="OpenSwathMzMLFileCacher_4_output.tmp.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzml"/>
+      <param name="lossy_compression" value="true"/>
+      <param name="full_meta" value="true"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="true"/>
+        <param name="lowmem_batchsize" value="500"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathMzMLFileCacher_1_input.mzML"/>
+      <output name="out" file="OpenSwathMzMLFileCacher_1_input.cached.tmp.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzml"/>
+      <param name="lossy_compression" value="true"/>
+      <param name="full_meta" value="true"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="lowmem_batchsize" value="500"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathAnalyzer_2_swathfile.mzML"/>
+      <output name="out" file="OpenSwathAnalyzer_4_swathfile.mzML.cached.tmp" compare="sim_size" delta="5700"/>
+      <param name="out_type" value="mzML"/>
+      <param name="lossy_compression" value="true"/>
+      <param name="full_meta" value="true"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="lossy_mass_accuracy" value="-1.0"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="lowmem_batchsize" value="500"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathAnalyzer_1_input_chrom.mzML"/>
+      <output name="out" file="OpenSwathAnalyzer_4_input_chrom.mzML.cached.tmp" compare="sim_size" delta="5700"/>
+      <param name="out_type" value="mzML"/>
+      <param name="lossy_compression" value="true"/>
+      <param name="full_meta" value="true"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="lossy_mass_accuracy" value="0.0001"/>
+        <param name="process_lowmemory" value="false"/>
+        <param name="lowmem_batchsize" value="500"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_14.chrom.tmp.sqMass"/>
+      <output name="out" file="OpenSwathWorkflow_14.chrom.tmp.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="out_type" value="mzml"/>
+      <param name="lossy_compression" value="false"/>
+      <param name="full_meta" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_OpenSwathRewriteToFeatureXML">
+</xml>
+  <xml name="autotest_OpenSwathRTNormalizer">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathRTNormalizer_1_input.mzML"/>
+      <param name="tr" value="OpenSwathRTNormalizer_1_input.TraML"/>
+      <output name="out" file="OpenSwathRTNormalizer_1_output.trafoXML" compare="sim_size" delta="5700" ftype="trafoxml"/>
+      <param name="min_rsq" value="0.95"/>
+      <param name="min_coverage" value="0.6"/>
+      <param name="estimateBestPeptides" value="false"/>
+      <section name="RTNormalization">
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+      </section>
+      <section name="algorithm">
+        <param name="stop_report_after_feature" value="-1"/>
+        <param name="rt_extraction_window" value="-1.0"/>
+        <param name="rt_normalization_factor" value="1.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="stop_after_intensity_ratio" value="0.0001"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="false"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="1.0"/>
+          <param name="minimal_quality" value="-10000.0"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="15"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="50.0"/>
+            <param name="use_gauss" value="true"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="1.0"/>
+            <param name="sn_win_len" value="1000.0"/>
+            <param name="sn_bin_count" value="30"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="false"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="interpolation_step" value="0.2"/>
+          <param name="tolerance_stdev_bounding_box" value="3.0"/>
+          <param name="max_iteration" value="500"/>
+          <section name="statistics">
+            <param name="mean" value="1.0"/>
+            <param name="variance" value="1.0"/>
+          </section>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_elution_model_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="false"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="false"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <section name="peptideEstimation">
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathRTNormalizer_1_input.mzML"/>
+      <param name="tr" value="OpenSwathRTNormalizer_1_input.TraML"/>
+      <output name="out" file="OpenSwathRTNormalizer_3_output.trafoXML" compare="sim_size" delta="5700" ftype="trafoxml"/>
+      <param name="min_rsq" value="0.95"/>
+      <param name="min_coverage" value="0.6"/>
+      <param name="estimateBestPeptides" value="true"/>
+      <section name="RTNormalization">
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+      </section>
+      <section name="algorithm">
+        <param name="stop_report_after_feature" value="-1"/>
+        <param name="rt_extraction_window" value="-1.0"/>
+        <param name="rt_normalization_factor" value="1.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="stop_after_intensity_ratio" value="0.0001"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="false"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="1.0"/>
+          <param name="minimal_quality" value="-10000.0"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="15"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="50.0"/>
+            <param name="use_gauss" value="true"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="1.0"/>
+            <param name="sn_win_len" value="1000.0"/>
+            <param name="sn_bin_count" value="30"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="false"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="interpolation_step" value="0.2"/>
+          <param name="tolerance_stdev_bounding_box" value="3.0"/>
+          <param name="max_iteration" value="500"/>
+          <section name="statistics">
+            <param name="mean" value="1.0"/>
+            <param name="variance" value="1.0"/>
+          </section>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_elution_model_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="false"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="false"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <section name="peptideEstimation">
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="3"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="3"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathRTNormalizer_1_input.mzML"/>
+      <param name="tr" value="OpenSwathRTNormalizer_1_input.TraML"/>
+      <output name="out" file="OpenSwathRTNormalizer_4_output.trafoXML" compare="sim_size" delta="5700" ftype="trafoxml"/>
+      <param name="min_rsq" value="0.95"/>
+      <param name="min_coverage" value="0.6"/>
+      <param name="estimateBestPeptides" value="false"/>
+      <section name="RTNormalization">
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+      </section>
+      <section name="algorithm">
+        <param name="stop_report_after_feature" value="-1"/>
+        <param name="rt_extraction_window" value="-1.0"/>
+        <param name="rt_normalization_factor" value="1.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="stop_after_intensity_ratio" value="0.0001"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="false"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="1.0"/>
+          <param name="minimal_quality" value="-10000.0"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="15"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="50.0"/>
+            <param name="use_gauss" value="true"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="1.0"/>
+            <param name="sn_win_len" value="1000.0"/>
+            <param name="sn_bin_count" value="30"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="false"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="interpolation_step" value="0.2"/>
+          <param name="tolerance_stdev_bounding_box" value="3.0"/>
+          <param name="max_iteration" value="500"/>
+          <section name="statistics">
+            <param name="mean" value="1.0"/>
+            <param name="variance" value="1.0"/>
+          </section>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_elution_model_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="false"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="false"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <section name="peptideEstimation">
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_OpenSwathWorkflow">
+    <test expect_num_outputs="4">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="rt_norm" value="OpenSwathWorkflow_1_input.trafoXML"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="false"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="out_chrom_type" value="mzML"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="ppm"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="true"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="normal"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="3"/>
+        <param name="force" value="false"/>
+        <param name="test" value="false"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_1_input.mzML"/>
+      <param name="tr" value="OpenSwathWorkflow_1_input.TraML"/>
+      <param name="tr_type" value=""/>
+      <output name="out_features" file="OpenSwathWorkflow_1_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_chrom" file="OpenSwathWorkflow_1_output.chrom.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <output name="out_qc" file="OpenSwathWorkflow_1_output.json" compare="sim_size" delta="5700" ftype="json"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_extraction_window" value="50.0"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="true"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_features_FLAG,out_chrom_FLAG,out_qc_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="rt_norm" value="OpenSwathWorkflow_2_input.trafoXML"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="false"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="out_chrom_type" value="mzML"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="ppm"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="true"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="normal"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="3"/>
+        <param name="force" value="false"/>
+        <param name="test" value="false"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_2_input.mzXML"/>
+      <param name="tr" value="OpenSwathWorkflow_2_input.TraML"/>
+      <param name="tr_type" value=""/>
+      <output name="out_features" file="OpenSwathWorkflow_2_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_chrom" file="OpenSwathWorkflow_2_output.chrom.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_extraction_window" value="50.0"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="true"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_features_FLAG,out_chrom_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="rt_norm" value="OpenSwathWorkflow_1_input.trafoXML"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="true"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="out_chrom_type" value="mzML"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="ppm"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="true"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="normal"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="3"/>
+        <param name="force" value="false"/>
+        <param name="test" value="false"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_1_input.mzML"/>
+      <param name="tr" value="OpenSwathWorkflow_1_input.TraML"/>
+      <param name="tr_type" value=""/>
+      <output name="out_features" file="OpenSwathWorkflow_3_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_chrom" file="OpenSwathWorkflow_3_output.chrom.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_extraction_window" value="50.0"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="true"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_features_FLAG,out_chrom_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="rt_norm" value="OpenSwathWorkflow_1_input.trafoXML"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="true"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="out_chrom_type" value="mzML"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="ppm"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="true"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="normal"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="3"/>
+        <param name="force" value="false"/>
+        <param name="test" value="false"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_1_input.mzML"/>
+      <param name="tr" value="OpenSwathWorkflow_1_input.TraML"/>
+      <param name="tr_type" value=""/>
+      <output name="out_tsv" file="OpenSwathWorkflow_4.tsv.tmp" compare="sim_size" delta="5700" ftype="tabular"/>
+      <output name="out_chrom" file="OpenSwathWorkflow_4.chrom.mzML.tmp" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_extraction_window" value="50.0"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="true"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_tsv_FLAG,out_chrom_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="rt_norm" value="OpenSwathWorkflow_1_input.trafoXML"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="true"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="out_chrom_type" value="mzML"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="ppm"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="true"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="cache"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="3"/>
+        <param name="force" value="false"/>
+        <param name="test" value="false"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_1_input.mzML"/>
+      <param name="tr" value="OpenSwathWorkflow_1_input.TraML"/>
+      <param name="tr_type" value=""/>
+      <output name="out_features" file="OpenSwathWorkflow_3_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_chrom" file="OpenSwathWorkflow_3_output.chrom.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_extraction_window" value="50.0"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="true"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_features_FLAG,out_chrom_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="rt_norm" value="OpenSwathWorkflow_1_input.trafoXML"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="true"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="out_chrom_type" value="mzML"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="ppm"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="true"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="cacheWorkingInMemory"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="3"/>
+        <param name="force" value="false"/>
+        <param name="test" value="false"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_1_input.mzML"/>
+      <param name="tr" value="OpenSwathWorkflow_1_input.TraML"/>
+      <param name="tr_type" value=""/>
+      <output name="out_features" file="OpenSwathWorkflow_3_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_chrom" file="OpenSwathWorkflow_3_output.chrom.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_extraction_window" value="50.0"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="true"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_features_FLAG,out_chrom_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="rt_norm" value="OpenSwathWorkflow_1_input.trafoXML"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="true"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="out_chrom_type" value="mzML"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="ppm"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="true"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="normal"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="3"/>
+        <param name="force" value="false"/>
+        <param name="test" value="false"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_1_input.mzML"/>
+      <param name="tr" value="OpenSwathWorkflow_1_input.TraML"/>
+      <param name="tr_type" value=""/>
+      <param name="swath_windows_file" value="swath_windows.txt" ftype="txt"/>
+      <output name="out_features" file="OpenSwathWorkflow_3_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_chrom" file="OpenSwathWorkflow_3_output.chrom.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_extraction_window" value="50.0"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="true"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_features_FLAG,out_chrom_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="rt_norm" value="OpenSwathWorkflow_1_input.trafoXML"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="true"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="out_chrom_type" value="mzML"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="ppm"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="true"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="normal"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="3"/>
+        <param name="force" value="true"/>
+        <param name="test" value="false"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_1_input.mzML"/>
+      <param name="tr" value="OpenSwathWorkflow_1_input.TraML"/>
+      <param name="tr_type" value=""/>
+      <param name="swath_windows_file" value="swath_windows_overlap.txt" ftype="txt"/>
+      <output name="out_features" file="OpenSwathWorkflow_10.featureXML.tmp" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_chrom" file="OpenSwathWorkflow_10.chrom.mzML.tmp" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_extraction_window" value="50.0"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="true"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_features_FLAG,out_chrom_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="false"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="out_chrom_type" value="mzML"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="ppm"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="true"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="550.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="normal"/>
+        <param name="mz_correction_function" value="quadratic_regression_delta_ppm"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="3"/>
+        <param name="force" value="false"/>
+        <param name="test" value="false"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_11_input.mzML"/>
+      <param name="tr" value="OpenSwathWorkflow_11_input_2.TraML"/>
+      <param name="tr_type" value=""/>
+      <param name="tr_irt" value="OpenSwathWorkflow_11_input.TraML"/>
+      <output name="out_features" file="OpenSwathWorkflow_11_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_chrom" file="OpenSwathWorkflow_11_output.chrom.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="sonar" value="true"/>
+      <param name="rt_extraction_window" value="-1.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_extraction_window" value="0.2"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="none"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="true"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="true"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_features_FLAG,out_chrom_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="rt_norm" value="OpenSwathWorkflow_1_input.trafoXML"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="true"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="out_chrom_type" value="mzML"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="ppm"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="true"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="normal"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="3"/>
+        <param name="force" value="false"/>
+        <param name="test" value="false"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_1_input.mzML"/>
+      <param name="tr" value="OpenSwathWorkflow_13_input.pqp.tmp"/>
+      <param name="tr_type" value="pqp"/>
+      <output name="out_osw" file="OpenSwathWorkflow_13.osw" compare="sim_size" delta="5700" ftype="osw"/>
+      <output name="out_chrom" file="OpenSwathWorkflow_13_output.chrom.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_extraction_window" value="50.0"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="true"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_osw_FLAG,out_chrom_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="rt_norm" value="OpenSwathWorkflow_1_input.trafoXML"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="true"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="out_chrom_type" value="sqMass"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="ppm"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="true"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="normal"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="3"/>
+        <param name="force" value="false"/>
+        <param name="test" value="false"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_1_input.mzML"/>
+      <param name="tr" value="OpenSwathWorkflow_14_input.pqp.tmp"/>
+      <param name="tr_type" value="pqp"/>
+      <output name="out_osw" file="OpenSwathWorkflow_14.osw" compare="sim_size" delta="5700" ftype="osw"/>
+      <output name="out_chrom" file="OpenSwathWorkflow_14.chrom.tmp.sqMass" compare="sim_size" delta="5700" ftype="sqmass"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_extraction_window" value="50.0"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="true"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_osw_FLAG,out_chrom_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="rt_norm" value="OpenSwathWorkflow_1_input.trafoXML"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="true"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="out_chrom_type" value="mzML"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="Th"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="true"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="normal"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="2"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_15_input.mzML"/>
+      <param name="tr" value="OpenSwathWorkflow_1_input.TraML"/>
+      <param name="tr_type" value=""/>
+      <output name="out_features" file="OpenSwathWorkflow_15_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_chrom" file="OpenSwathWorkflow_15_output.chrom.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_extraction_window" value="0.05"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="true"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="false"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="false"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_features_FLAG,out_chrom_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="rt_norm" value="OpenSwathWorkflow_1_input.trafoXML"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="true"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="out_chrom_type" value="mzML"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="ppm"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="true"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="workingInMemory"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="2"/>
+        <param name="force" value="false"/>
+        <param name="test" value="false"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_16_input.sqMass"/>
+      <param name="tr" value="OpenSwathWorkflow_1_input.TraML"/>
+      <param name="tr_type" value=""/>
+      <output name="out_features" file="OpenSwathWorkflow_16_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_chrom" file="OpenSwathWorkflow_16_output.chrom.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_extraction_window" value="50.0"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="true"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_features_FLAG,out_chrom_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="true"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="out_chrom_type" value="mzML"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="ppm"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="false"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="workingInMemory"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="3"/>
+        <param name="force" value="false"/>
+        <param name="test" value="false"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_17_input.mzML"/>
+      <param name="tr" value="OpenSwathWorkflow_17_input.tsv" ftype="tabular"/>
+      <param name="tr_type" value=""/>
+      <output name="out_features" file="OpenSwathWorkflow_17.featureXML.tmp" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_chrom" file="OpenSwathWorkflow_17.chrom.mzML.tmp" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="0.05"/>
+      <param name="mz_extraction_window" value="50.0"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="true"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="true"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_features_FLAG,out_chrom_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="true"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="out_chrom_type" value="mzML"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="ppm"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="false"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="cache"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="3"/>
+        <param name="force" value="false"/>
+        <param name="test" value="false"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_17_input.mzML"/>
+      <param name="tr" value="OpenSwathWorkflow_17_input.tsv" ftype="tabular"/>
+      <param name="tr_type" value=""/>
+      <output name="out_features" file="OpenSwathWorkflow_17.featureXML.tmp" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_chrom" file="OpenSwathWorkflow_17.chrom.mzML.tmp" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="0.05"/>
+      <param name="mz_extraction_window" value="50.0"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="true"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="true"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_features_FLAG,out_chrom_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="true"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="out_chrom_type" value="mzML"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="ppm"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="false"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="workingInMemory"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="3"/>
+        <param name="force" value="false"/>
+        <param name="test" value="false"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_17_input.mzML"/>
+      <param name="tr" value="OpenSwathWorkflow_17_input.pqp.tmp"/>
+      <param name="tr_type" value="pqp"/>
+      <output name="out_features" file="OpenSwathWorkflow_17_b_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_chrom" file="OpenSwathWorkflow_17_b_output.chrom.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="0.05"/>
+      <param name="mz_extraction_window" value="50.0"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="true"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_features_FLAG,out_chrom_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="rt_norm" value="OpenSwathWorkflow_1_input.trafoXML"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="true"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="Th"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="true"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="normal"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_1_input.mzML"/>
+      <param name="tr" value="OpenSwathWorkflow_1_input.TraML"/>
+      <param name="tr_type" value=""/>
+      <output name="out_features" file="OpenSwathWorkflow_18_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_extraction_window" value="0.05"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="true"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="false"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="true"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_features_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="rt_norm" value="OpenSwathWorkflow_1_input.trafoXML"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="true"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="Th"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="true"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="normal"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_1_input.mzML"/>
+      <param name="tr" value="OpenSwathWorkflow_1_input.TraML"/>
+      <param name="tr_type" value=""/>
+      <output name="out_features" file="OpenSwathWorkflow_19_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_extraction_window" value="0.05"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="true"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="false"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_features_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="rt_norm" value="OpenSwathWorkflow_1_input.trafoXML"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="true"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="Th"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="true"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="normal"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_1_input.mzML"/>
+      <param name="tr" value="OpenSwathWorkflow_1_input.TraML"/>
+      <param name="tr_type" value=""/>
+      <output name="out_features" file="OpenSwathWorkflow_20_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_extraction_window" value="0.05"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="true"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="true"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="false"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_features_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="4">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="true"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="out_chrom_type" value="mzML"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="Th"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="true"/>
+        <param name="matching_window_only" value="false"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="normal"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_21_input.mzML"/>
+      <param name="tr" value="OpenSwathWorkflow_21_input.tsv" ftype="tabular"/>
+      <param name="tr_type" value=""/>
+      <param name="tr_irt" value="OpenSwathWorkflow_21_input.irt.TraML"/>
+      <output name="out_features" file="OpenSwathWorkflow_21_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_chrom" file="OpenSwathWorkflow_21_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_extraction_window" value="0.05"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <output name="Debugging_irt_trafo" file="OpenSwathWorkflow_21_output.trafoXML" compare="sim_size" delta="5700" ftype="trafoxml"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.6666666666666666"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="true"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="true"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="false"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_features_FLAG,out_chrom_FLAG,irt_trafo_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="sort_swath_maps" value="false"/>
+        <param name="enable_ms1" value="true"/>
+        <param name="enable_ipf" value="true"/>
+        <param name="out_chrom_type" value="mzML"/>
+        <param name="min_upper_edge_dist" value="0.0"/>
+        <param name="extra_rt_extraction_window" value="0.0"/>
+        <param name="mz_extraction_window_unit" value="ppm"/>
+        <param name="mz_extraction_window_ms1_unit" value="ppm"/>
+        <param name="use_ms1_ion_mobility" value="true"/>
+        <param name="matching_window_only" value="true"/>
+        <param name="irt_mz_extraction_window" value="50.0"/>
+        <param name="irt_mz_extraction_window_unit" value="ppm"/>
+        <param name="irt_im_extraction_window" value="-1.0"/>
+        <param name="min_rsq" value="0.95"/>
+        <param name="min_coverage" value="0.6"/>
+        <param name="split_file_input" value="false"/>
+        <param name="use_elution_model_score" value="false"/>
+        <param name="readOptions" value="workingInMemory"/>
+        <param name="mz_correction_function" value="none"/>
+        <param name="extraction_function" value="tophat"/>
+        <param name="batchSize" value="1000"/>
+        <param name="ms1_isotopes" value="3"/>
+        <param name="force" value="false"/>
+        <param name="test" value="false"/>
+      </conditional>
+      <param name="in" value="OpenSwathWorkflow_22_input.mzML"/>
+      <param name="tr" value="OpenSwathWorkflow_22_input.tsv" ftype="tabular"/>
+      <param name="tr_type" value=""/>
+      <output name="out_features" file="OpenSwathWorkflow_22_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <output name="out_chrom" file="OpenSwathWorkflow_22_output.chrom.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="sonar" value="false"/>
+      <param name="rt_extraction_window" value="600.0"/>
+      <param name="ion_mobility_window" value="-1.0"/>
+      <param name="mz_extraction_window" value="50.0"/>
+      <param name="mz_extraction_window_ms1" value="50.0"/>
+      <param name="im_extraction_window_ms1" value="-1.0"/>
+      <section name="Debugging"/>
+      <section name="Calibration">
+        <param name="ms1_im_calibration" value="false"/>
+        <param name="im_correction_function" value="linear"/>
+        <param name="debug_im_file" value=""/>
+        <param name="debug_mz_file" value=""/>
+      </section>
+      <section name="Library">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <section name="RTNormalization">
+        <param name="alignmentMethod" value="linear"/>
+        <param name="outlierMethod" value="iter_residual"/>
+        <param name="useIterativeChauvenet" value="false"/>
+        <param name="RANSACMaxIterations" value="1000"/>
+        <param name="RANSACMaxPercentRTThreshold" value="3"/>
+        <param name="RANSACSamplingSize" value="10"/>
+        <param name="estimateBestPeptides" value="false"/>
+        <param name="InitialQualityCutoff" value="0.5"/>
+        <param name="OverallQualityCutoff" value="5.5"/>
+        <param name="NrRTBins" value="10"/>
+        <param name="MinPeptidesPerBin" value="1"/>
+        <param name="MinBinsFilled" value="8"/>
+        <section name="lowess">
+          <param name="span" value="0.05"/>
+        </section>
+        <section name="b_spline">
+          <param name="num_nodes" value="5"/>
+        </section>
+      </section>
+      <section name="Scoring">
+        <param name="stop_report_after_feature" value="5"/>
+        <param name="rt_normalization_factor" value="100.0"/>
+        <param name="quantification_cutoff" value="0.0"/>
+        <param name="write_convex_hull" value="false"/>
+        <param name="spectrum_addition_method" value="simple"/>
+        <param name="add_up_spectra" value="1"/>
+        <param name="spacing_for_spectra_resampling" value="0.005"/>
+        <param name="uis_threshold_sn" value="-1"/>
+        <param name="uis_threshold_peak_area" value="0"/>
+        <param name="scoring_model" value="default"/>
+        <param name="im_extra_drift" value="0.0"/>
+        <param name="strict" value="true"/>
+        <section name="TransitionGroupPicker">
+          <param name="stop_after_feature" value="-1"/>
+          <param name="min_peak_width" value="-1.0"/>
+          <param name="peak_integration" value="original"/>
+          <param name="background_subtraction" value="none"/>
+          <param name="recalculate_peaks" value="true"/>
+          <param name="use_precursors" value="false"/>
+          <param name="use_consensus" value="true"/>
+          <param name="recalculate_peaks_max_z" value="0.75"/>
+          <param name="minimal_quality" value="-1.5"/>
+          <param name="resample_boundary" value="15.0"/>
+          <param name="compute_peak_quality" value="false"/>
+          <param name="compute_peak_shape_metrics" value="false"/>
+          <param name="compute_total_mi" value="false"/>
+          <param name="boundary_selection_method" value="largest"/>
+          <section name="PeakPickerMRM">
+            <param name="sgolay_frame_length" value="11"/>
+            <param name="sgolay_polynomial_order" value="3"/>
+            <param name="gauss_width" value="30.0"/>
+            <param name="use_gauss" value="false"/>
+            <param name="peak_width" value="-1.0"/>
+            <param name="signal_to_noise" value="0.1"/>
+            <param name="write_sn_log_messages" value="false"/>
+            <param name="remove_overlapping_peaks" value="true"/>
+            <param name="method" value="corrected"/>
+          </section>
+          <section name="PeakIntegrator">
+            <param name="integration_type" value="intensity_sum"/>
+            <param name="baseline_type" value="base_to_base"/>
+            <param name="fit_EMG" value="false"/>
+          </section>
+        </section>
+        <section name="DIAScoring">
+          <param name="dia_extraction_window" value="0.05"/>
+          <param name="dia_extraction_unit" value="Th"/>
+          <param name="dia_centroided" value="false"/>
+          <param name="dia_byseries_intensity_min" value="300.0"/>
+          <param name="dia_byseries_ppm_diff" value="10.0"/>
+          <param name="dia_nr_isotopes" value="4"/>
+          <param name="dia_nr_charges" value="4"/>
+          <param name="peak_before_mono_max_ppm_diff" value="20.0"/>
+        </section>
+        <section name="EMGScoring">
+          <param name="max_iteration" value="10"/>
+        </section>
+        <section name="Scores">
+          <param name="use_shape_score" value="true"/>
+          <param name="use_coelution_score" value="true"/>
+          <param name="use_rt_score" value="true"/>
+          <param name="use_library_score" value="true"/>
+          <param name="use_intensity_score" value="true"/>
+          <param name="use_nr_peaks_score" value="true"/>
+          <param name="use_total_xic_score" value="true"/>
+          <param name="use_total_mi_score" value="false"/>
+          <param name="use_sn_score" value="true"/>
+          <param name="use_mi_score" value="true"/>
+          <param name="use_dia_scores" value="true"/>
+          <param name="use_ms1_correlation" value="false"/>
+          <param name="use_sonar_scores" value="false"/>
+          <param name="use_ion_mobility_scores" value="false"/>
+          <param name="use_ms1_fullscan" value="false"/>
+          <param name="use_ms1_mi" value="true"/>
+          <param name="use_uis_scores" value="false"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_features_FLAG,out_chrom_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_PeakPickerHiRes">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="processOption" value="inmemory"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeakPickerHiRes_input.mzML"/>
+      <output name="out" file="PeakPickerHiRes_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="signal_to_noise" value="1.0"/>
+        <param name="spacing_difference_gap" value="4.0"/>
+        <param name="spacing_difference" value="1.5"/>
+        <param name="missing" value="1"/>
+        <param name="ms_levels" value="1"/>
+        <param name="report_FWHM" value="true"/>
+        <param name="report_FWHM_unit" value="relative"/>
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="processOption" value="inmemory"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeakPickerHiRes_2_input.mzML"/>
+      <output name="out" file="PeakPickerHiRes_2_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="signal_to_noise" value="1.0"/>
+        <param name="spacing_difference_gap" value="4.0"/>
+        <param name="spacing_difference" value="1.5"/>
+        <param name="missing" value="1"/>
+        <param name="ms_levels" value="1"/>
+        <param name="report_FWHM" value="true"/>
+        <param name="report_FWHM_unit" value="relative"/>
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="processOption" value="lowmemory"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeakPickerHiRes_input.mzML"/>
+      <output name="out" file="PeakPickerHiRes_output_lowMem.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="signal_to_noise" value="1.0"/>
+        <param name="spacing_difference_gap" value="4.0"/>
+        <param name="spacing_difference" value="1.5"/>
+        <param name="missing" value="1"/>
+        <param name="ms_levels" value="1"/>
+        <param name="report_FWHM" value="true"/>
+        <param name="report_FWHM_unit" value="relative"/>
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="processOption" value="lowmemory"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeakPickerHiRes_2_input.mzML"/>
+      <output name="out" file="PeakPickerHiRes_2_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="signal_to_noise" value="1.0"/>
+        <param name="spacing_difference_gap" value="4.0"/>
+        <param name="spacing_difference" value="1.5"/>
+        <param name="missing" value="1"/>
+        <param name="ms_levels" value="1"/>
+        <param name="report_FWHM" value="true"/>
+        <param name="report_FWHM_unit" value="relative"/>
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="processOption" value="inmemory"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeakPickerHiRes_5_input.mzML"/>
+      <output name="out" file="PeakPickerHiRes_5_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="signal_to_noise" value="0.0"/>
+        <param name="spacing_difference_gap" value="4.0"/>
+        <param name="spacing_difference" value="1.5"/>
+        <param name="missing" value="1"/>
+        <param name="ms_levels" value=""/>
+        <param name="report_FWHM" value="false"/>
+        <param name="report_FWHM_unit" value="relative"/>
+        <section name="SignalToNoise">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+          <param name="write_log_messages" value="true"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_PeakPickerIterative">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeakPickerIterative_1_input.mzML"/>
+      <output name="out" file="PeakPickerIterative_1_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="signal_to_noise_" value="1.0"/>
+        <param name="peak_width" value="0.04"/>
+        <param name="spacing_difference" value="1.5"/>
+        <param name="sn_bin_count_" value="30"/>
+        <param name="nr_iterations_" value="5"/>
+        <param name="sn_win_len_" value="20.0"/>
+        <param name="check_width_internally" value="false"/>
+        <param name="ms1_only" value="false"/>
+        <param name="clear_meta_data" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeakPickerIterative_2_input.mzML"/>
+      <output name="out" file="PeakPickerIterative_2_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="signal_to_noise_" value="0.0"/>
+        <param name="peak_width" value="0.04"/>
+        <param name="spacing_difference" value="2.5"/>
+        <param name="sn_bin_count_" value="30"/>
+        <param name="nr_iterations_" value="5"/>
+        <param name="sn_win_len_" value="20.0"/>
+        <param name="check_width_internally" value="true"/>
+        <param name="ms1_only" value="false"/>
+        <param name="clear_meta_data" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_PeakPickerWavelet">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="write_peak_meta_data" value="true"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeakPickerWavelet_input.mzML"/>
+      <output name="out" file="PeakPickerWavelet_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="signal_to_noise" value="3.0"/>
+        <param name="centroid_percentage" value="0.6"/>
+        <param name="peak_width" value="0.2"/>
+        <param name="estimate_peak_width" value="false"/>
+        <param name="fwhm_lower_bound_factor" value="0.5"/>
+        <param name="fwhm_upper_bound_factor" value="20.0"/>
+        <section name="optimization">
+          <param name="iterations" value="400"/>
+          <section name="penalties">
+            <param name="position" value="0.0"/>
+            <param name="left_width" value="1.0"/>
+            <param name="right_width" value="1.0"/>
+            <param name="height" value="1.0"/>
+          </section>
+          <section name="2d">
+            <param name="tolerance_mz" value="2.2"/>
+            <param name="max_peak_distance" value="1.2"/>
+          </section>
+        </section>
+        <section name="thresholds">
+          <param name="peak_bound" value="100.0"/>
+          <param name="peak_bound_ms2_level" value="10.0"/>
+          <param name="correlation" value="0.5"/>
+          <param name="noise_level" value="0.1"/>
+          <param name="search_radius" value="3"/>
+        </section>
+        <section name="wavelet_transform">
+          <param name="spacing" value="0.001"/>
+        </section>
+        <section name="deconvolution">
+          <param name="deconvolution" value="false"/>
+          <param name="asym_threshold" value="0.3"/>
+          <param name="left_width" value="2.0"/>
+          <param name="right_width" value="2.0"/>
+          <param name="scaling" value="0.12"/>
+          <section name="fitting">
+            <param name="fwhm_threshold" value="0.7"/>
+            <param name="eps_abs" value="9.999999747378752e-06"/>
+            <param name="eps_rel" value="9.999999747378752e-06"/>
+            <param name="max_iteration" value="10"/>
+            <section name="penalties">
+              <param name="position" value="0.0"/>
+              <param name="height" value="1.0"/>
+              <param name="left_width" value="0.0"/>
+              <param name="right_width" value="0.0"/>
+            </section>
+          </section>
+        </section>
+        <section name="SignalToNoiseEstimationParameter">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="stdev_mp" value="3.0"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="write_peak_meta_data" value="true"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeakPickerWavelet_deconv_input.mzML"/>
+      <output name="out" file="PeakPickerWavelet_deconv_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="signal_to_noise" value="2.0"/>
+        <param name="centroid_percentage" value="0.8"/>
+        <param name="peak_width" value="0.15"/>
+        <param name="estimate_peak_width" value="false"/>
+        <param name="fwhm_lower_bound_factor" value="1.0"/>
+        <param name="fwhm_upper_bound_factor" value="20.0"/>
+        <section name="optimization">
+          <param name="iterations" value="400"/>
+          <section name="penalties">
+            <param name="position" value="0.0"/>
+            <param name="left_width" value="1.0"/>
+            <param name="right_width" value="1.0"/>
+            <param name="height" value="1.0"/>
+          </section>
+          <section name="2d">
+            <param name="tolerance_mz" value="2.2"/>
+            <param name="max_peak_distance" value="1.2"/>
+          </section>
+        </section>
+        <section name="thresholds">
+          <param name="peak_bound" value="200.0"/>
+          <param name="peak_bound_ms2_level" value="50.0"/>
+          <param name="correlation" value="0.5"/>
+          <param name="noise_level" value="0.1"/>
+          <param name="search_radius" value="3"/>
+        </section>
+        <section name="wavelet_transform">
+          <param name="spacing" value="0.001"/>
+        </section>
+        <section name="deconvolution">
+          <param name="deconvolution" value="true"/>
+          <param name="asym_threshold" value="0.3"/>
+          <param name="left_width" value="2.0"/>
+          <param name="right_width" value="2.0"/>
+          <param name="scaling" value="0.1"/>
+          <section name="fitting">
+            <param name="fwhm_threshold" value="0.7"/>
+            <param name="eps_abs" value="9.999999747378752e-06"/>
+            <param name="eps_rel" value="9.999999747378752e-06"/>
+            <param name="max_iteration" value="100"/>
+            <section name="penalties">
+              <param name="position" value="1.0"/>
+              <param name="height" value="1.0"/>
+              <param name="left_width" value="0.0"/>
+              <param name="right_width" value="0.0"/>
+            </section>
+          </section>
+        </section>
+        <section name="SignalToNoiseEstimationParameter">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="stdev_mp" value="3.0"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="write_peak_meta_data" value="true"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeakPickerWavelet_input.mzML"/>
+      <output name="out" file="PeakPickerWavelet_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="signal_to_noise" value="3.0"/>
+        <param name="centroid_percentage" value="0.6"/>
+        <param name="peak_width" value="0.2"/>
+        <param name="estimate_peak_width" value="false"/>
+        <param name="fwhm_lower_bound_factor" value="0.5"/>
+        <param name="fwhm_upper_bound_factor" value="20.0"/>
+        <section name="optimization">
+          <param name="iterations" value="400"/>
+          <section name="penalties">
+            <param name="position" value="0.0"/>
+            <param name="left_width" value="1.0"/>
+            <param name="right_width" value="1.0"/>
+            <param name="height" value="1.0"/>
+          </section>
+          <section name="2d">
+            <param name="tolerance_mz" value="2.2"/>
+            <param name="max_peak_distance" value="1.2"/>
+          </section>
+        </section>
+        <section name="thresholds">
+          <param name="peak_bound" value="100.0"/>
+          <param name="peak_bound_ms2_level" value="10.0"/>
+          <param name="correlation" value="0.5"/>
+          <param name="noise_level" value="0.1"/>
+          <param name="search_radius" value="3"/>
+        </section>
+        <section name="wavelet_transform">
+          <param name="spacing" value="0.001"/>
+        </section>
+        <section name="deconvolution">
+          <param name="deconvolution" value="false"/>
+          <param name="asym_threshold" value="0.3"/>
+          <param name="left_width" value="2.0"/>
+          <param name="right_width" value="2.0"/>
+          <param name="scaling" value="0.12"/>
+          <section name="fitting">
+            <param name="fwhm_threshold" value="0.7"/>
+            <param name="eps_abs" value="9.999999747378752e-06"/>
+            <param name="eps_rel" value="9.999999747378752e-06"/>
+            <param name="max_iteration" value="10"/>
+            <section name="penalties">
+              <param name="position" value="0.0"/>
+              <param name="height" value="1.0"/>
+              <param name="left_width" value="0.0"/>
+              <param name="right_width" value="0.0"/>
+            </section>
+          </section>
+        </section>
+        <section name="SignalToNoiseEstimationParameter">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="stdev_mp" value="3.0"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="write_peak_meta_data" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeakPickerWavelet_input.mzML"/>
+      <output name="out" file="PeakPickerWavelet_output_noMetaData.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="signal_to_noise" value="3.0"/>
+        <param name="centroid_percentage" value="0.6"/>
+        <param name="peak_width" value="0.2"/>
+        <param name="estimate_peak_width" value="false"/>
+        <param name="fwhm_lower_bound_factor" value="0.5"/>
+        <param name="fwhm_upper_bound_factor" value="20.0"/>
+        <section name="optimization">
+          <param name="iterations" value="400"/>
+          <section name="penalties">
+            <param name="position" value="0.0"/>
+            <param name="left_width" value="1.0"/>
+            <param name="right_width" value="1.0"/>
+            <param name="height" value="1.0"/>
+          </section>
+          <section name="2d">
+            <param name="tolerance_mz" value="2.2"/>
+            <param name="max_peak_distance" value="1.2"/>
+          </section>
+        </section>
+        <section name="thresholds">
+          <param name="peak_bound" value="100.0"/>
+          <param name="peak_bound_ms2_level" value="10.0"/>
+          <param name="correlation" value="0.5"/>
+          <param name="noise_level" value="0.1"/>
+          <param name="search_radius" value="3"/>
+        </section>
+        <section name="wavelet_transform">
+          <param name="spacing" value="0.001"/>
+        </section>
+        <section name="deconvolution">
+          <param name="deconvolution" value="false"/>
+          <param name="asym_threshold" value="0.3"/>
+          <param name="left_width" value="2.0"/>
+          <param name="right_width" value="2.0"/>
+          <param name="scaling" value="0.12"/>
+          <section name="fitting">
+            <param name="fwhm_threshold" value="0.7"/>
+            <param name="eps_abs" value="9.999999747378752e-06"/>
+            <param name="eps_rel" value="9.999999747378752e-06"/>
+            <param name="max_iteration" value="10"/>
+            <section name="penalties">
+              <param name="position" value="0.0"/>
+              <param name="height" value="1.0"/>
+              <param name="left_width" value="0.0"/>
+              <param name="right_width" value="0.0"/>
+            </section>
+          </section>
+        </section>
+        <section name="SignalToNoiseEstimationParameter">
+          <param name="max_intensity" value="-1"/>
+          <param name="auto_max_stdev_factor" value="3.0"/>
+          <param name="auto_max_percentile" value="95"/>
+          <param name="auto_mode" value="0"/>
+          <param name="win_len" value="200.0"/>
+          <param name="bin_count" value="30"/>
+          <param name="stdev_mp" value="3.0"/>
+          <param name="min_required_elements" value="10"/>
+          <param name="noise_for_empty_window" value="1e+20"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_PepNovoAdapter">
+</xml>
+  <xml name="autotest_PeptideIndexer">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeptideIndexer_1.idXML"/>
+      <param name="fasta" value="PeptideIndexer_1.fasta"/>
+      <output name="out" file="PeptideIndexer_1_out.tmp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="decoy_string" value=""/>
+      <param name="decoy_string_position" value="prefix"/>
+      <param name="missing_decoy_action" value="error"/>
+      <param name="write_protein_sequence" value="false"/>
+      <param name="write_protein_description" value="false"/>
+      <param name="keep_unreferenced_proteins" value="false"/>
+      <param name="unmatched_action" value="warn"/>
+      <param name="aaa_max" value="4"/>
+      <param name="mismatches_max" value="0"/>
+      <param name="IL_equivalent" value="false"/>
+      <section name="enzyme">
+        <param name="name" value="auto"/>
+        <param name="specificity" value="none"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeptideIndexer_1.idXML"/>
+      <param name="fasta" value="PeptideIndexer_1.fasta"/>
+      <output name="out" file="PeptideIndexer_2_out.tmp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="decoy_string" value=""/>
+      <param name="decoy_string_position" value="prefix"/>
+      <param name="missing_decoy_action" value="error"/>
+      <param name="write_protein_sequence" value="true"/>
+      <param name="write_protein_description" value="false"/>
+      <param name="keep_unreferenced_proteins" value="false"/>
+      <param name="unmatched_action" value="warn"/>
+      <param name="aaa_max" value="4"/>
+      <param name="mismatches_max" value="0"/>
+      <param name="IL_equivalent" value="false"/>
+      <section name="enzyme">
+        <param name="name" value="auto"/>
+        <param name="specificity" value="none"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeptideIndexer_1.idXML"/>
+      <param name="fasta" value="PeptideIndexer_1.fasta"/>
+      <output name="out" file="PeptideIndexer_3_out.tmp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="decoy_string" value=""/>
+      <param name="decoy_string_position" value="prefix"/>
+      <param name="missing_decoy_action" value="error"/>
+      <param name="write_protein_sequence" value="false"/>
+      <param name="write_protein_description" value="false"/>
+      <param name="keep_unreferenced_proteins" value="true"/>
+      <param name="unmatched_action" value="warn"/>
+      <param name="aaa_max" value="4"/>
+      <param name="mismatches_max" value="0"/>
+      <param name="IL_equivalent" value="false"/>
+      <section name="enzyme">
+        <param name="name" value="auto"/>
+        <param name="specificity" value="none"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeptideIndexer_1.idXML"/>
+      <param name="fasta" value="PeptideIndexer_1.fasta"/>
+      <output name="out" file="PeptideIndexer_4_out.tmp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="decoy_string" value=""/>
+      <param name="decoy_string_position" value="prefix"/>
+      <param name="missing_decoy_action" value="error"/>
+      <param name="write_protein_sequence" value="true"/>
+      <param name="write_protein_description" value="false"/>
+      <param name="keep_unreferenced_proteins" value="false"/>
+      <param name="unmatched_action" value="warn"/>
+      <param name="aaa_max" value="0"/>
+      <param name="mismatches_max" value="0"/>
+      <param name="IL_equivalent" value="false"/>
+      <section name="enzyme">
+        <param name="name" value="auto"/>
+        <param name="specificity" value="none"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeptideIndexer_1.idXML"/>
+      <param name="fasta" value="PeptideIndexer_1.fasta"/>
+      <output name="out" file="PeptideIndexer_5_out.tmp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="decoy_string" value=""/>
+      <param name="decoy_string_position" value="prefix"/>
+      <param name="missing_decoy_action" value="error"/>
+      <param name="write_protein_sequence" value="false"/>
+      <param name="write_protein_description" value="false"/>
+      <param name="keep_unreferenced_proteins" value="false"/>
+      <param name="unmatched_action" value="warn"/>
+      <param name="aaa_max" value="4"/>
+      <param name="mismatches_max" value="0"/>
+      <param name="IL_equivalent" value="false"/>
+      <section name="enzyme">
+        <param name="name" value="auto"/>
+        <param name="specificity" value="none"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeptideIndexer_2.idXML"/>
+      <param name="fasta" value="PeptideIndexer_1.fasta"/>
+      <output name="out" file="PeptideIndexer_6_out.tmp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="decoy_string" value=""/>
+      <param name="decoy_string_position" value="prefix"/>
+      <param name="missing_decoy_action" value="error"/>
+      <param name="write_protein_sequence" value="false"/>
+      <param name="write_protein_description" value="false"/>
+      <param name="keep_unreferenced_proteins" value="false"/>
+      <param name="unmatched_action" value="warn"/>
+      <param name="aaa_max" value="3"/>
+      <param name="mismatches_max" value="0"/>
+      <param name="IL_equivalent" value="false"/>
+      <section name="enzyme">
+        <param name="name" value="auto"/>
+        <param name="specificity" value="none"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeptideIndexer_3.idXML"/>
+      <param name="fasta" value="PeptideIndexer_1.fasta"/>
+      <output name="out" file="PeptideIndexer_7_out.tmp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="decoy_string" value="DECOY_"/>
+      <param name="decoy_string_position" value="prefix"/>
+      <param name="missing_decoy_action" value="error"/>
+      <param name="write_protein_sequence" value="false"/>
+      <param name="write_protein_description" value="false"/>
+      <param name="keep_unreferenced_proteins" value="false"/>
+      <param name="unmatched_action" value="warn"/>
+      <param name="aaa_max" value="4"/>
+      <param name="mismatches_max" value="0"/>
+      <param name="IL_equivalent" value="false"/>
+      <section name="enzyme">
+        <param name="name" value="auto"/>
+        <param name="specificity" value="full"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeptideIndexer_3.idXML"/>
+      <param name="fasta" value="PeptideIndexer_1.fasta"/>
+      <output name="out" file="PeptideIndexer_8_out.tmp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="decoy_string" value=""/>
+      <param name="decoy_string_position" value="prefix"/>
+      <param name="missing_decoy_action" value="error"/>
+      <param name="write_protein_sequence" value="false"/>
+      <param name="write_protein_description" value="false"/>
+      <param name="keep_unreferenced_proteins" value="false"/>
+      <param name="unmatched_action" value="warn"/>
+      <param name="aaa_max" value="4"/>
+      <param name="mismatches_max" value="0"/>
+      <param name="IL_equivalent" value="false"/>
+      <section name="enzyme">
+        <param name="name" value="auto"/>
+        <param name="specificity" value="semi"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeptideIndexer_3.idXML"/>
+      <param name="fasta" value="PeptideIndexer_1.fasta"/>
+      <output name="out" file="PeptideIndexer_9_out.tmp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="decoy_string" value=""/>
+      <param name="decoy_string_position" value="prefix"/>
+      <param name="missing_decoy_action" value="error"/>
+      <param name="write_protein_sequence" value="false"/>
+      <param name="write_protein_description" value="false"/>
+      <param name="keep_unreferenced_proteins" value="false"/>
+      <param name="unmatched_action" value="remove"/>
+      <param name="aaa_max" value="4"/>
+      <param name="mismatches_max" value="0"/>
+      <param name="IL_equivalent" value="false"/>
+      <section name="enzyme">
+        <param name="name" value="auto"/>
+        <param name="specificity" value="none"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeptideIndexer_10_input.idXML"/>
+      <param name="fasta" value="PeptideIndexer_10_input.fasta"/>
+      <output name="out" file="PeptideIndexer_10_output.tmp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="decoy_string" value=""/>
+      <param name="decoy_string_position" value="prefix"/>
+      <param name="missing_decoy_action" value="error"/>
+      <param name="write_protein_sequence" value="true"/>
+      <param name="write_protein_description" value="false"/>
+      <param name="keep_unreferenced_proteins" value="false"/>
+      <param name="unmatched_action" value="error"/>
+      <param name="aaa_max" value="3"/>
+      <param name="mismatches_max" value="0"/>
+      <param name="IL_equivalent" value="true"/>
+      <section name="enzyme">
+        <param name="name" value="auto"/>
+        <param name="specificity" value="auto"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeptideIndexer_1.idXML"/>
+      <param name="fasta" value="PeptideIndexer_1.fasta"/>
+      <output name="out" file="PeptideIndexer_12_out.tmp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="decoy_string" value=""/>
+      <param name="decoy_string_position" value="prefix"/>
+      <param name="missing_decoy_action" value="error"/>
+      <param name="write_protein_sequence" value="false"/>
+      <param name="write_protein_description" value="false"/>
+      <param name="keep_unreferenced_proteins" value="false"/>
+      <param name="unmatched_action" value="warn"/>
+      <param name="aaa_max" value="4"/>
+      <param name="mismatches_max" value="0"/>
+      <param name="IL_equivalent" value="false"/>
+      <section name="enzyme">
+        <param name="name" value="auto"/>
+        <param name="specificity" value="none"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="empty.idXML"/>
+      <param name="fasta" value="PeptideIndexer_1.fasta"/>
+      <output name="out" file="PeptideIndexer_13_out.tmp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="decoy_string" value=""/>
+      <param name="decoy_string_position" value="prefix"/>
+      <param name="missing_decoy_action" value="error"/>
+      <param name="write_protein_sequence" value="false"/>
+      <param name="write_protein_description" value="false"/>
+      <param name="keep_unreferenced_proteins" value="false"/>
+      <param name="unmatched_action" value="error"/>
+      <param name="aaa_max" value="4"/>
+      <param name="mismatches_max" value="0"/>
+      <param name="IL_equivalent" value="false"/>
+      <section name="enzyme">
+        <param name="name" value="auto"/>
+        <param name="specificity" value="auto"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PeptideIndexer_14.idXML"/>
+      <param name="fasta" value="PeptideIndexer_2.fasta"/>
+      <output name="out" file="PeptideIndexer_14_out.tmp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="decoy_string" value=""/>
+      <param name="decoy_string_position" value="prefix"/>
+      <param name="missing_decoy_action" value="error"/>
+      <param name="write_protein_sequence" value="true"/>
+      <param name="write_protein_description" value="false"/>
+      <param name="keep_unreferenced_proteins" value="false"/>
+      <param name="unmatched_action" value="error"/>
+      <param name="aaa_max" value="4"/>
+      <param name="mismatches_max" value="0"/>
+      <param name="IL_equivalent" value="false"/>
+      <section name="enzyme">
+        <param name="name" value="auto"/>
+        <param name="specificity" value="none"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_PercolatorAdapter">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="generic_feature_set" value="false"/>
+        <param name="subset_max_train" value="0"/>
+        <param name="cpos" value="0.0"/>
+        <param name="cneg" value="0.0"/>
+        <param name="testFDR" value="0.5"/>
+        <param name="trainFDR" value="0.5"/>
+        <param name="maxiter" value="10"/>
+        <param name="nested_xval_bins" value="1"/>
+        <param name="quick_validation" value="false"/>
+        <param name="static" value="false"/>
+        <param name="default_direction" value=""/>
+        <param name="verbose" value="2"/>
+        <param name="unitnorm" value="false"/>
+        <param name="test_each_iteration" value="false"/>
+        <param name="override" value="false"/>
+        <param name="seed" value="1"/>
+        <param name="doc" value="0"/>
+        <param name="klammer" value="false"/>
+        <param name="decoy_pattern" value="random"/>
+        <param name="post_processing_tdc" value="false"/>
+        <param name="train_best_positive" value="false"/>
+        <param name="ipf_max_peakgroup_pep" value="0.7"/>
+        <param name="ipf_max_transition_isotope_overlap" value="0.5"/>
+        <param name="ipf_min_transition_sn" value="0.0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PercolatorAdapter_1.idXML"/>
+      <output name="out" file="PercolatorAdapter_1_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="out_type" value="idXML"/>
+      <param name="enzyme" value="trypsin"/>
+      <param name="peptide_level_fdrs" value="false"/>
+      <param name="protein_level_fdrs" value="false"/>
+      <param name="osw_level" value="ms2"/>
+      <param name="score_type" value="q-value"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="generic_feature_set" value="false"/>
+        <param name="subset_max_train" value="0"/>
+        <param name="cpos" value="0.0"/>
+        <param name="cneg" value="0.0"/>
+        <param name="testFDR" value="0.01"/>
+        <param name="trainFDR" value="0.01"/>
+        <param name="maxiter" value="10"/>
+        <param name="nested_xval_bins" value="1"/>
+        <param name="quick_validation" value="false"/>
+        <param name="static" value="false"/>
+        <param name="default_direction" value=""/>
+        <param name="verbose" value="2"/>
+        <param name="unitnorm" value="false"/>
+        <param name="test_each_iteration" value="false"/>
+        <param name="override" value="false"/>
+        <param name="seed" value="1"/>
+        <param name="doc" value="0"/>
+        <param name="klammer" value="false"/>
+        <param name="decoy_pattern" value="random"/>
+        <param name="post_processing_tdc" value="false"/>
+        <param name="train_best_positive" value="false"/>
+        <param name="ipf_max_peakgroup_pep" value="0.7"/>
+        <param name="ipf_max_transition_isotope_overlap" value="0.5"/>
+        <param name="ipf_min_transition_sn" value="0.0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in_osw" value="PercolatorAdapter_2.osw"/>
+      <output name="out" file="PercolatorAdapter_2_out1.osw" compare="sim_size" delta="5700" ftype="osw"/>
+      <param name="out_type" value="osw"/>
+      <param name="enzyme" value="trypsin"/>
+      <param name="peptide_level_fdrs" value="false"/>
+      <param name="protein_level_fdrs" value="false"/>
+      <param name="osw_level" value="ms1"/>
+      <param name="score_type" value="q-value"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="generic_feature_set" value="false"/>
+        <param name="subset_max_train" value="0"/>
+        <param name="cpos" value="0.0"/>
+        <param name="cneg" value="0.0"/>
+        <param name="testFDR" value="0.01"/>
+        <param name="trainFDR" value="0.01"/>
+        <param name="maxiter" value="10"/>
+        <param name="nested_xval_bins" value="1"/>
+        <param name="quick_validation" value="false"/>
+        <param name="static" value="false"/>
+        <param name="default_direction" value=""/>
+        <param name="verbose" value="2"/>
+        <param name="unitnorm" value="false"/>
+        <param name="test_each_iteration" value="false"/>
+        <param name="override" value="false"/>
+        <param name="seed" value="1"/>
+        <param name="doc" value="0"/>
+        <param name="klammer" value="false"/>
+        <param name="decoy_pattern" value="random"/>
+        <param name="post_processing_tdc" value="false"/>
+        <param name="train_best_positive" value="false"/>
+        <param name="ipf_max_peakgroup_pep" value="0.7"/>
+        <param name="ipf_max_transition_isotope_overlap" value="0.5"/>
+        <param name="ipf_min_transition_sn" value="0.0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in_osw" value="PercolatorAdapter_2_out1.osw"/>
+      <output name="out" file="PercolatorAdapter_3_out1.osw" compare="sim_size" delta="5700" ftype="osw"/>
+      <param name="out_type" value="osw"/>
+      <param name="enzyme" value="trypsin"/>
+      <param name="peptide_level_fdrs" value="false"/>
+      <param name="protein_level_fdrs" value="false"/>
+      <param name="osw_level" value="ms2"/>
+      <param name="score_type" value="q-value"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="generic_feature_set" value="false"/>
+        <param name="subset_max_train" value="0"/>
+        <param name="cpos" value="0.0"/>
+        <param name="cneg" value="0.0"/>
+        <param name="testFDR" value="0.01"/>
+        <param name="trainFDR" value="0.01"/>
+        <param name="maxiter" value="10"/>
+        <param name="nested_xval_bins" value="1"/>
+        <param name="quick_validation" value="false"/>
+        <param name="static" value="false"/>
+        <param name="default_direction" value=""/>
+        <param name="verbose" value="2"/>
+        <param name="unitnorm" value="false"/>
+        <param name="test_each_iteration" value="false"/>
+        <param name="override" value="false"/>
+        <param name="seed" value="1"/>
+        <param name="doc" value="0"/>
+        <param name="klammer" value="false"/>
+        <param name="decoy_pattern" value="random"/>
+        <param name="post_processing_tdc" value="false"/>
+        <param name="train_best_positive" value="false"/>
+        <param name="ipf_max_peakgroup_pep" value="0.7"/>
+        <param name="ipf_max_transition_isotope_overlap" value="0.5"/>
+        <param name="ipf_min_transition_sn" value="0.0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in_osw" value="PercolatorAdapter_3_out1.osw"/>
+      <output name="out" file="PercolatorAdapter_4_out1.osw" compare="sim_size" delta="5700" ftype="osw"/>
+      <param name="out_type" value="osw"/>
+      <param name="enzyme" value="trypsin"/>
+      <param name="peptide_level_fdrs" value="false"/>
+      <param name="protein_level_fdrs" value="false"/>
+      <param name="osw_level" value="transition"/>
+      <param name="score_type" value="q-value"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="generic_feature_set" value="false"/>
+        <param name="subset_max_train" value="0"/>
+        <param name="cpos" value="0.0"/>
+        <param name="cneg" value="0.0"/>
+        <param name="testFDR" value="0.5"/>
+        <param name="trainFDR" value="0.5"/>
+        <param name="maxiter" value="10"/>
+        <param name="nested_xval_bins" value="1"/>
+        <param name="quick_validation" value="false"/>
+        <param name="static" value="false"/>
+        <param name="default_direction" value=""/>
+        <param name="verbose" value="2"/>
+        <param name="unitnorm" value="false"/>
+        <param name="test_each_iteration" value="false"/>
+        <param name="override" value="false"/>
+        <param name="seed" value="1"/>
+        <param name="doc" value="0"/>
+        <param name="klammer" value="false"/>
+        <param name="decoy_pattern" value="random"/>
+        <param name="post_processing_tdc" value="false"/>
+        <param name="train_best_positive" value="false"/>
+        <param name="ipf_max_peakgroup_pep" value="0.7"/>
+        <param name="ipf_max_transition_isotope_overlap" value="0.5"/>
+        <param name="ipf_min_transition_sn" value="0.0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PercolatorAdapter_1.idXML"/>
+      <output name="out" file="PercolatorAdapter_1_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <output name="out_pin" file="PercolatorAdapter_1_out1.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="out_type" value="idXML"/>
+      <param name="enzyme" value="trypsin"/>
+      <param name="peptide_level_fdrs" value="false"/>
+      <param name="protein_level_fdrs" value="false"/>
+      <param name="osw_level" value="ms2"/>
+      <param name="score_type" value="q-value"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_pin_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_PhosphoScoring">
+</xml>
+  <xml name="autotest_PrecursorIonSelector">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="solver" value="GLPK"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PrecursorIonSelector_features.featureXML"/>
+      <param name="ids" value="PrecursorIonSelector_ids.idXML"/>
+      <param name="num_precursors" value="1"/>
+      <param name="load_preprocessing" value="false"/>
+      <param name="store_preprocessing" value="false"/>
+      <param name="simulation" value="true"/>
+      <output name="sim_results" file="PrecursorIonSelector_1_output.txt" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="db_path" value="PrecursorIonSelector_db.fasta"/>
+      <param name="fixed_modifications" value=""/>
+      <section name="algorithm">
+        <param name="type" value="IPS"/>
+        <param name="max_iteration" value="10"/>
+        <param name="rt_bin_capacity" value="10"/>
+        <param name="step_size" value="1"/>
+        <param name="peptide_min_prob" value="0.2"/>
+        <param name="sequential_spectrum_order" value="false"/>
+        <section name="MIPFormulation">
+          <section name="thresholds">
+            <param name="min_protein_probability" value="0.2"/>
+            <param name="min_protein_id_probability" value="0.95"/>
+            <param name="min_pt_weight" value="0.5"/>
+            <param name="min_mz" value="500.0"/>
+            <param name="max_mz" value="5000.0"/>
+            <param name="min_pred_pep_prob" value="0.5"/>
+            <param name="min_rt_weight" value="0.5"/>
+            <param name="use_peptide_rule" value="true"/>
+            <param name="min_peptide_ids" value="2"/>
+            <param name="min_peptide_probability" value="0.95"/>
+          </section>
+          <section name="combined_ilp">
+            <param name="k1" value="0.2"/>
+            <param name="k2" value="0.2"/>
+            <param name="k3" value="0.4"/>
+            <param name="scale_matching_probs" value="true"/>
+          </section>
+          <section name="feature_based">
+            <param name="no_intensity_normalization" value="false"/>
+            <param name="max_number_precursors_per_feature" value="1"/>
+          </section>
+        </section>
+        <section name="Preprocessing">
+          <param name="precursor_mass_tolerance" value="0.9"/>
+          <param name="precursor_mass_tolerance_unit" value="Da"/>
+          <param name="preprocessed_db_path" value=""/>
+          <param name="preprocessed_db_pred_rt_path" value=""/>
+          <param name="preprocessed_db_pred_dt_path" value=""/>
+          <param name="max_peptides_per_run" value="100000"/>
+          <param name="missed_cleavages" value="1"/>
+          <param name="taxonomy" value=""/>
+          <param name="store_peptide_sequences" value="false"/>
+          <section name="rt_settings">
+            <param name="min_rt" value="960.0"/>
+            <param name="max_rt" value="3840.0"/>
+            <param name="rt_step_size" value="30.0"/>
+            <param name="gauss_mean" value="-1.0"/>
+            <param name="gauss_sigma" value="3.0"/>
+          </section>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,sim_results_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="solver" value="GLPK"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PrecursorIonSelector_features.featureXML"/>
+      <output name="out" file="PrecursorIonSelector_2_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="ids" value="PrecursorIonSelector_ids.idXML"/>
+      <param name="num_precursors" value="1"/>
+      <param name="load_preprocessing" value="false"/>
+      <param name="store_preprocessing" value="false"/>
+      <param name="simulation" value="false"/>
+      <param name="db_path" value="PrecursorIonSelector_db.fasta"/>
+      <param name="fixed_modifications" value=""/>
+      <section name="algorithm">
+        <param name="type" value="IPS"/>
+        <param name="max_iteration" value="10"/>
+        <param name="rt_bin_capacity" value="10"/>
+        <param name="step_size" value="1"/>
+        <param name="peptide_min_prob" value="0.2"/>
+        <param name="sequential_spectrum_order" value="false"/>
+        <section name="MIPFormulation">
+          <section name="thresholds">
+            <param name="min_protein_probability" value="0.2"/>
+            <param name="min_protein_id_probability" value="0.95"/>
+            <param name="min_pt_weight" value="0.5"/>
+            <param name="min_mz" value="500.0"/>
+            <param name="max_mz" value="5000.0"/>
+            <param name="min_pred_pep_prob" value="0.5"/>
+            <param name="min_rt_weight" value="0.5"/>
+            <param name="use_peptide_rule" value="true"/>
+            <param name="min_peptide_ids" value="2"/>
+            <param name="min_peptide_probability" value="0.95"/>
+          </section>
+          <section name="combined_ilp">
+            <param name="k1" value="0.2"/>
+            <param name="k2" value="0.2"/>
+            <param name="k3" value="0.4"/>
+            <param name="scale_matching_probs" value="true"/>
+          </section>
+          <section name="feature_based">
+            <param name="no_intensity_normalization" value="false"/>
+            <param name="max_number_precursors_per_feature" value="1"/>
+          </section>
+        </section>
+        <section name="Preprocessing">
+          <param name="precursor_mass_tolerance" value="0.9"/>
+          <param name="precursor_mass_tolerance_unit" value="Da"/>
+          <param name="preprocessed_db_path" value=""/>
+          <param name="preprocessed_db_pred_rt_path" value=""/>
+          <param name="preprocessed_db_pred_dt_path" value=""/>
+          <param name="max_peptides_per_run" value="100000"/>
+          <param name="missed_cleavages" value="1"/>
+          <param name="taxonomy" value=""/>
+          <param name="store_peptide_sequences" value="false"/>
+          <section name="rt_settings">
+            <param name="min_rt" value="960.0"/>
+            <param name="max_rt" value="3840.0"/>
+            <param name="rt_step_size" value="30.0"/>
+            <param name="gauss_mean" value="-1.0"/>
+            <param name="gauss_sigma" value="3.0"/>
+          </section>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_PrecursorMassCorrector">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="max_charge" value="3"/>
+        <param name="intensity_threshold" value="-1.0"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PrecursorMassCorrector_1_input.mzML"/>
+      <output name="out" file="PrecursorMassCorrector_1_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="precursor_mass_tolerance" value="1.5"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_ProteinInference">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ProteinInference_1_input.idXML"/>
+      <output name="out" file="ProteinInference_1_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="merge_runs" value="all"/>
+      <param name="annotate_indist_groups" value="true"/>
+      <section name="Merging">
+        <param name="annotate_origin" value="false"/>
+        <param name="allow_disagreeing_settings" value="false"/>
+      </section>
+      <section name="Algorithm">
+        <param name="min_peptides_per_protein" value="1"/>
+        <param name="score_aggregation_method" value="maximum"/>
+        <param name="treat_charge_variants_separately" value="true"/>
+        <param name="treat_modification_variants_separately" value="true"/>
+        <param name="use_shared_peptides" value="false"/>
+        <param name="skip_count_annotation" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_ProteinQuantifier">
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ProteinQuantifier_input.featureXML"/>
+      <output name="out" file="ProteinQuantifier_1_output1.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <output name="peptide_out" file="ProteinQuantifier_1_output2.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="top" value="3"/>
+      <param name="average" value="median"/>
+      <param name="include_all" value="false"/>
+      <param name="best_charge_and_fraction" value="false"/>
+      <param name="greedy_group_resolution" value="false"/>
+      <param name="ratios" value="false"/>
+      <param name="ratiosSILAC" value="false"/>
+      <section name="consensus">
+        <param name="normalize" value="false"/>
+        <param name="fix_peptides" value="false"/>
+      </section>
+      <section name="format">
+        <param name="separator" value=""/>
+        <param name="quoting" value="double"/>
+        <param name="replacement" value="_"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,peptide_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ProteinQuantifier_input.featureXML"/>
+      <output name="out" file="ProteinQuantifier_2_output1.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <output name="peptide_out" file="ProteinQuantifier_2_output2.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="top" value="2"/>
+      <param name="average" value="sum"/>
+      <param name="include_all" value="true"/>
+      <param name="best_charge_and_fraction" value="true"/>
+      <param name="greedy_group_resolution" value="false"/>
+      <param name="ratios" value="false"/>
+      <param name="ratiosSILAC" value="false"/>
+      <section name="consensus">
+        <param name="normalize" value="false"/>
+        <param name="fix_peptides" value="false"/>
+      </section>
+      <section name="format">
+        <param name="separator" value=""/>
+        <param name="quoting" value="double"/>
+        <param name="replacement" value="_"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,peptide_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ProteinQuantifier_3_input.featureXML"/>
+      <output name="out" file="ProteinQuantifier_3_output1.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <output name="peptide_out" file="ProteinQuantifier_3_output2.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="top" value="2"/>
+      <param name="average" value="mean"/>
+      <param name="include_all" value="true"/>
+      <param name="best_charge_and_fraction" value="false"/>
+      <param name="greedy_group_resolution" value="false"/>
+      <param name="ratios" value="false"/>
+      <param name="ratiosSILAC" value="false"/>
+      <section name="consensus">
+        <param name="normalize" value="false"/>
+        <param name="fix_peptides" value="false"/>
+      </section>
+      <section name="format">
+        <param name="separator" value=""/>
+        <param name="quoting" value="double"/>
+        <param name="replacement" value="_"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,peptide_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ProteinQuantifier_input.consensusXML"/>
+      <output name="out" file="ProteinQuantifier_4_output.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="top" value="0"/>
+      <param name="average" value="sum"/>
+      <param name="include_all" value="false"/>
+      <param name="best_charge_and_fraction" value="false"/>
+      <param name="greedy_group_resolution" value="false"/>
+      <param name="ratios" value="false"/>
+      <param name="ratiosSILAC" value="false"/>
+      <section name="consensus">
+        <param name="normalize" value="false"/>
+        <param name="fix_peptides" value="false"/>
+      </section>
+      <section name="format">
+        <param name="separator" value=""/>
+        <param name="quoting" value="double"/>
+        <param name="replacement" value="_"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ProteinQuantifier_input.consensusXML"/>
+      <output name="out" file="ProteinQuantifier_5_output.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="top" value="3"/>
+      <param name="average" value="sum"/>
+      <param name="include_all" value="false"/>
+      <param name="best_charge_and_fraction" value="false"/>
+      <param name="greedy_group_resolution" value="false"/>
+      <param name="ratios" value="false"/>
+      <param name="ratiosSILAC" value="false"/>
+      <section name="consensus">
+        <param name="normalize" value="false"/>
+        <param name="fix_peptides" value="false"/>
+      </section>
+      <section name="format">
+        <param name="separator" value=""/>
+        <param name="quoting" value="double"/>
+        <param name="replacement" value="_"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ProteinQuantifier_input.consensusXML"/>
+      <output name="out" file="ProteinQuantifier_6_output.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="top" value="3"/>
+      <param name="average" value="sum"/>
+      <param name="include_all" value="true"/>
+      <param name="best_charge_and_fraction" value="false"/>
+      <param name="greedy_group_resolution" value="false"/>
+      <param name="ratios" value="false"/>
+      <param name="ratiosSILAC" value="false"/>
+      <section name="consensus">
+        <param name="normalize" value="false"/>
+        <param name="fix_peptides" value="false"/>
+      </section>
+      <section name="format">
+        <param name="separator" value=""/>
+        <param name="quoting" value="double"/>
+        <param name="replacement" value="_"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ProteinQuantifier_input.consensusXML"/>
+      <output name="out" file="ProteinQuantifier_7_output.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="top" value="0"/>
+      <param name="average" value="sum"/>
+      <param name="include_all" value="false"/>
+      <param name="best_charge_and_fraction" value="false"/>
+      <param name="greedy_group_resolution" value="false"/>
+      <param name="ratios" value="false"/>
+      <param name="ratiosSILAC" value="false"/>
+      <section name="consensus">
+        <param name="normalize" value="false"/>
+        <param name="fix_peptides" value="true"/>
+      </section>
+      <section name="format">
+        <param name="separator" value=""/>
+        <param name="quoting" value="double"/>
+        <param name="replacement" value="_"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ProteinQuantifier_input.consensusXML"/>
+      <output name="out" file="ProteinQuantifier_8_output.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="top" value="3"/>
+      <param name="average" value="sum"/>
+      <param name="include_all" value="false"/>
+      <param name="best_charge_and_fraction" value="false"/>
+      <param name="greedy_group_resolution" value="false"/>
+      <param name="ratios" value="false"/>
+      <param name="ratiosSILAC" value="false"/>
+      <section name="consensus">
+        <param name="normalize" value="false"/>
+        <param name="fix_peptides" value="true"/>
+      </section>
+      <section name="format">
+        <param name="separator" value=""/>
+        <param name="quoting" value="double"/>
+        <param name="replacement" value="_"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ProteinQuantifier_input.consensusXML"/>
+      <output name="out" file="ProteinQuantifier_9_output.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <output name="mztab" file="ProteinQuantifier_9_output_mztab.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>
+      <param name="top" value="3"/>
+      <param name="average" value="sum"/>
+      <param name="include_all" value="true"/>
+      <param name="best_charge_and_fraction" value="false"/>
+      <param name="greedy_group_resolution" value="false"/>
+      <param name="ratios" value="false"/>
+      <param name="ratiosSILAC" value="false"/>
+      <section name="consensus">
+        <param name="normalize" value="false"/>
+        <param name="fix_peptides" value="true"/>
+      </section>
+      <section name="format">
+        <param name="separator" value=""/>
+        <param name="quoting" value="double"/>
+        <param name="replacement" value="_"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,mztab_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ProteinQuantifier_input.consensusXML"/>
+      <output name="out" file="ProteinQuantifier_12_output.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="top" value="3"/>
+      <param name="average" value="sum"/>
+      <param name="include_all" value="true"/>
+      <param name="best_charge_and_fraction" value="false"/>
+      <param name="greedy_group_resolution" value="false"/>
+      <param name="ratios" value="true"/>
+      <param name="ratiosSILAC" value="false"/>
+      <section name="consensus">
+        <param name="normalize" value="false"/>
+        <param name="fix_peptides" value="true"/>
+      </section>
+      <section name="format">
+        <param name="separator" value=""/>
+        <param name="quoting" value="double"/>
+        <param name="replacement" value="_"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ProteinQuantifier_input.consensusXML"/>
+      <output name="out" file="ProteinQuantifier_13_output.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="top" value="3"/>
+      <param name="average" value="sum"/>
+      <param name="include_all" value="true"/>
+      <param name="best_charge_and_fraction" value="false"/>
+      <param name="greedy_group_resolution" value="false"/>
+      <param name="ratios" value="false"/>
+      <param name="ratiosSILAC" value="true"/>
+      <section name="consensus">
+        <param name="normalize" value="false"/>
+        <param name="fix_peptides" value="true"/>
+      </section>
+      <section name="format">
+        <param name="separator" value=""/>
+        <param name="quoting" value="double"/>
+        <param name="replacement" value="_"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ProteinQuantifier_input.idXML"/>
+      <output name="out" file="ProteinQuantifier_14_output1.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <output name="peptide_out" file="ProteinQuantifier_14_output2.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="top" value="0"/>
+      <param name="average" value="sum"/>
+      <param name="include_all" value="false"/>
+      <param name="best_charge_and_fraction" value="false"/>
+      <param name="greedy_group_resolution" value="false"/>
+      <param name="ratios" value="false"/>
+      <param name="ratiosSILAC" value="false"/>
+      <section name="consensus">
+        <param name="normalize" value="false"/>
+        <param name="fix_peptides" value="false"/>
+      </section>
+      <section name="format">
+        <param name="separator" value=""/>
+        <param name="quoting" value="double"/>
+        <param name="replacement" value="_"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,peptide_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_ProteinResolver">
+    <test expect_num_outputs="4">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="fasta" value="ProteinResolver_1_input.fasta"/>
+      <param name="in" value="ProteinResolver_1_input.consensusXML"/>
+      <param name="in_path" value=""/>
+      <output name="protein_groups" file="ProteinResolver_1_output1.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <output name="peptide_table" file="ProteinResolver_1_output2.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <output name="protein_table" file="ProteinResolver_1_output3.txt" compare="sim_size" delta="5700" ftype="csv"/>
+      <section name="resolver">
+        <param name="missed_cleavages" value="2"/>
+        <param name="min_length" value="6"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="designer">
+        <param name="experiment" value="ExperimentalSetting"/>
+        <param name="file" value="File"/>
+        <param name="separator" value="tab"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,protein_groups_FLAG,peptide_table_FLAG,protein_table_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_PSMFeatureExtractor">
+</xml>
+  <xml name="autotest_PTModel">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in_positive" value="PTModel_1_input_positive.idXML"/>
+      <param name="in_negative" value="PTModel_1_input_negative.idXML"/>
+      <output name="out" file="PTModel_1_output.tmp" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="c" value="0.5"/>
+      <param name="svm_type" value="C_SVC"/>
+      <param name="nu" value="0.5"/>
+      <param name="kernel_type" value="OLIGO"/>
+      <param name="degree" value="1"/>
+      <param name="border_length" value="22"/>
+      <param name="k_mer_length" value="1"/>
+      <param name="sigma" value="5.0"/>
+      <param name="max_positive_count" value="1000"/>
+      <param name="max_negative_count" value="1000"/>
+      <param name="redundant" value="false"/>
+      <param name="additive_cv" value="false"/>
+      <section name="cv">
+        <param name="skip_cv" value="true"/>
+        <param name="number_of_runs" value="10"/>
+        <param name="number_of_partitions" value="10"/>
+        <param name="degree_start" value="1"/>
+        <param name="degree_step_size" value="2"/>
+        <param name="degree_stop" value="4"/>
+        <param name="c_start" value="1.0"/>
+        <param name="c_step_size" value="100.0"/>
+        <param name="c_stop" value="1000.0"/>
+        <param name="nu_start" value="0.1"/>
+        <param name="nu_step_size" value="1.3"/>
+        <param name="nu_stop" value="0.9"/>
+        <param name="sigma_start" value="1.0"/>
+        <param name="sigma_step_size" value="1.3"/>
+        <param name="sigma_stop" value="15.0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_QCCalculator">
+</xml>
+  <xml name="autotest_QCEmbedder">
+</xml>
+  <xml name="autotest_QCExporter">
+</xml>
+  <xml name="autotest_QCExtractor">
+</xml>
+  <xml name="autotest_QCImporter">
+</xml>
+  <xml name="autotest_QCMerger">
+</xml>
+  <xml name="autotest_QCShrinker">
+</xml>
+  <xml name="autotest_QualityControl">
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in_cm" value="QualityControl_1_in.consensusXML"/>
+      <param name="in_raw" value="QualityControl_1_in1.mzML.gz,QualityControl_1_in2.mzML.gz,QualityControl_1_in3.mzML.gz"/>
+      <param name="in_postFDR" value="QualityControl_1_in1.featureXML,QualityControl_1_in2.featureXML,QualityControl_1_in3.featureXML"/>
+      <output name="out" file="QualityControl_1_out.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>
+      <output name="out_cm" file="QualityControl_1_out.consensusXML" compare="sim_size" delta="5700" ftype="consensusxml"/>
+      <param name="in_contaminants" value="QualityControl_1.fasta"/>
+      <param name="in_trafo" value="QualityControl_1_in1.trafoXML,QualityControl_1_in2.trafoXML,QualityControl_1_in3.trafoXML"/>
+      <section name="FragmentMassError">
+        <param name="unit" value="auto"/>
+        <param name="tolerance" value="20.0"/>
+      </section>
+      <section name="MS2_id_rate">
+        <param name="assume_all_target" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG,out_cm_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_RNADigestor">
+</xml>
+  <xml name="autotest_RNAMassCalculator">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in_seq" value="&quot;AUCGGC&quot;"/>
+      <output name="out" file="RNAMassCalculator_1.txt" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="charge" value="-1 -2"/>
+      <param name="format" value="list"/>
+      <param name="average_mass" value="false"/>
+      <param name="fragment_type" value="full"/>
+      <param name="separator" value=""/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_RNPxlSearch">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="RNPxlSearch_1_input.mzML"/>
+      <param name="database" value="RNPxlSearch_1_input.fasta"/>
+      <output name="out" file="RNPxlSearch_1_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <section name="precursor">
+        <param name="mass_tolerance" value="20.0"/>
+        <param name="mass_tolerance_unit" value="ppm"/>
+        <param name="min_charge" value="2"/>
+        <param name="max_charge" value="5"/>
+        <param name="isotopes" value="0 1"/>
+      </section>
+      <section name="fragment">
+        <param name="mass_tolerance" value="20.0"/>
+        <param name="mass_tolerance_unit" value="ppm"/>
+      </section>
+      <section name="modifications">
+        <param name="fixed" value=""/>
+        <param name="variable" value="Oxidation (M)"/>
+        <param name="variable_max_per_peptide" value="2"/>
+      </section>
+      <section name="peptide">
+        <param name="min_size" value="6"/>
+        <param name="max_size" value="1000000"/>
+        <param name="missed_cleavages" value="1"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="report">
+        <param name="top_hits" value="1"/>
+      </section>
+      <section name="RNPxl">
+        <param name="length" value="2"/>
+        <param name="sequence" value="GUA"/>
+        <param name="target_nucleotides" value="&quot;A=C10H14N5O7P&quot; &quot;C=C9H14N3O8P&quot; &quot;G=C10H14N5O8P&quot; &quot;U=C9H13N2O9P&quot;"/>
+        <param name="nt_groups" value=""/>
+        <param name="mapping" value="&quot;A-&gt;A&quot; &quot;C-&gt;C&quot; &quot;G-&gt;G&quot; &quot;U-&gt;U&quot;"/>
+        <param name="can_cross_link" value="U"/>
+        <param name="fragment_adducts" value="&quot;U:C9H10N2O5;U-H3PO4&quot; &quot;U:C4H4N2O2;U'&quot; &quot;U:C4H2N2O1;U'-H2O&quot; &quot;U:C3O;C3O&quot; &quot;U:C9H13N2O9P1;U&quot; &quot;U:C9H11N2O8P1;U-H2O&quot; &quot;U:C9H12N2O6;U-HPO3&quot;"/>
+        <param name="modifications" value="&quot;U:&quot; &quot;U:-H2O&quot; &quot;U:-H2O-HPO3&quot; &quot;U:-HPO3&quot;"/>
+        <param name="scoring" value="fast"/>
+        <param name="decoys" value="false"/>
+        <param name="CysteineAdduct" value="false"/>
+        <param name="filter_fractional_mass" value="false"/>
+        <param name="carbon_labeled_fragments" value="false"/>
+        <param name="only_xl" value="false"/>
+        <param name="filter_small_peptide_mass" value="600.0"/>
+        <param name="marker_ions_tolerance" value="0.05"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="RNPxlSearch_1_input.mzML"/>
+      <param name="database" value="RNPxlSearch_1_input.fasta"/>
+      <output name="out" file="RNPxlSearch_2_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <section name="precursor">
+        <param name="mass_tolerance" value="20.0"/>
+        <param name="mass_tolerance_unit" value="ppm"/>
+        <param name="min_charge" value="2"/>
+        <param name="max_charge" value="5"/>
+        <param name="isotopes" value="0 1"/>
+      </section>
+      <section name="fragment">
+        <param name="mass_tolerance" value="20.0"/>
+        <param name="mass_tolerance_unit" value="ppm"/>
+      </section>
+      <section name="modifications">
+        <param name="fixed" value=""/>
+        <param name="variable" value="Oxidation (M)"/>
+        <param name="variable_max_per_peptide" value="2"/>
+      </section>
+      <section name="peptide">
+        <param name="min_size" value="6"/>
+        <param name="max_size" value="1000000"/>
+        <param name="missed_cleavages" value="1"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="report">
+        <param name="top_hits" value="1"/>
+      </section>
+      <section name="RNPxl">
+        <param name="length" value="2"/>
+        <param name="sequence" value="GUA"/>
+        <param name="target_nucleotides" value="&quot;A=C10H14N5O7P&quot; &quot;C=C9H14N3O8P&quot; &quot;G=C10H14N5O8P&quot; &quot;U=C9H13N2O9P&quot;"/>
+        <param name="nt_groups" value=""/>
+        <param name="mapping" value="&quot;A-&gt;A&quot; &quot;C-&gt;C&quot; &quot;G-&gt;G&quot; &quot;U-&gt;U&quot;"/>
+        <param name="can_cross_link" value="U"/>
+        <param name="fragment_adducts" value="&quot;U:C9H10N2O5;U-H3PO4&quot; &quot;U:C4H4N2O2;U'&quot; &quot;U:C4H2N2O1;U'-H2O&quot; &quot;U:C3O;C3O&quot; &quot;U:C9H13N2O9P1;U&quot; &quot;U:C9H11N2O8P1;U-H2O&quot; &quot;U:C9H12N2O6;U-HPO3&quot;"/>
+        <param name="modifications" value="&quot;U:&quot; &quot;U:-H2O&quot; &quot;U:-H2O-HPO3&quot; &quot;U:-HPO3&quot;"/>
+        <param name="scoring" value="fast"/>
+        <param name="decoys" value="true"/>
+        <param name="CysteineAdduct" value="false"/>
+        <param name="filter_fractional_mass" value="false"/>
+        <param name="carbon_labeled_fragments" value="false"/>
+        <param name="only_xl" value="false"/>
+        <param name="filter_small_peptide_mass" value="600.0"/>
+        <param name="marker_ions_tolerance" value="0.05"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="RNPxlSearch_1_input.mzML"/>
+      <param name="database" value="RNPxlSearch_1_input.fasta"/>
+      <output name="out" file="RNPxlSearch_3_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <output name="out_tsv" file="RNPxlSearch_3_output2.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <section name="precursor">
+        <param name="mass_tolerance" value="10.0"/>
+        <param name="mass_tolerance_unit" value="ppm"/>
+        <param name="min_charge" value="2"/>
+        <param name="max_charge" value="5"/>
+        <param name="isotopes" value="0 1"/>
+      </section>
+      <section name="fragment">
+        <param name="mass_tolerance" value="10.0"/>
+        <param name="mass_tolerance_unit" value="ppm"/>
+      </section>
+      <section name="modifications">
+        <param name="fixed" value=""/>
+        <param name="variable" value=""/>
+        <param name="variable_max_per_peptide" value="2"/>
+      </section>
+      <section name="peptide">
+        <param name="min_size" value="6"/>
+        <param name="max_size" value="1000000"/>
+        <param name="missed_cleavages" value="1"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="report">
+        <param name="top_hits" value="3"/>
+      </section>
+      <section name="RNPxl">
+        <param name="length" value="2"/>
+        <param name="sequence" value=""/>
+        <param name="target_nucleotides" value="&quot;A=C10H14N5O7P&quot; &quot;C=C9H14N3O8P&quot; &quot;G=C10H14N5O8P&quot; &quot;U=C9H13N2O9P&quot;"/>
+        <param name="nt_groups" value=""/>
+        <param name="mapping" value="&quot;A-&gt;A&quot; &quot;C-&gt;C&quot; &quot;G-&gt;G&quot; &quot;U-&gt;U&quot;"/>
+        <param name="can_cross_link" value="U"/>
+        <param name="fragment_adducts" value="&quot;U:C9H10N2O5;U-H3PO4&quot; &quot;U:C4H4N2O2;U'&quot; &quot;U:C4H2N2O1;U'-H2O&quot; &quot;U:C3O;C3O&quot; &quot;U:C9H13N2O9P1;U&quot; &quot;U:C9H11N2O8P1;U-H2O&quot; &quot;U:C9H12N2O6;U-HPO3&quot;"/>
+        <param name="modifications" value="&quot;U:&quot; &quot;U:-H2O&quot; &quot;U:-H2O-HPO3&quot; &quot;U:-HPO3&quot;"/>
+        <param name="scoring" value="fast"/>
+        <param name="decoys" value="false"/>
+        <param name="CysteineAdduct" value="false"/>
+        <param name="filter_fractional_mass" value="false"/>
+        <param name="carbon_labeled_fragments" value="false"/>
+        <param name="only_xl" value="false"/>
+        <param name="filter_small_peptide_mass" value="600.0"/>
+        <param name="marker_ions_tolerance" value="0.05"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_tsv_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="RNPxlSearch_1_input.mzML"/>
+      <param name="database" value="RNPxlSearch_1_input.fasta"/>
+      <output name="out" file="RNPxlSearch_4_output.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <output name="out_tsv" file="RNPxlSearch_4_output2.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <section name="precursor">
+        <param name="mass_tolerance" value="10.0"/>
+        <param name="mass_tolerance_unit" value="ppm"/>
+        <param name="min_charge" value="2"/>
+        <param name="max_charge" value="5"/>
+        <param name="isotopes" value="0 1"/>
+      </section>
+      <section name="fragment">
+        <param name="mass_tolerance" value="10.0"/>
+        <param name="mass_tolerance_unit" value="ppm"/>
+      </section>
+      <section name="modifications">
+        <param name="fixed" value=""/>
+        <param name="variable" value=""/>
+        <param name="variable_max_per_peptide" value="2"/>
+      </section>
+      <section name="peptide">
+        <param name="min_size" value="6"/>
+        <param name="max_size" value="1000000"/>
+        <param name="missed_cleavages" value="1"/>
+        <param name="enzyme" value="Trypsin"/>
+      </section>
+      <section name="report">
+        <param name="top_hits" value="2"/>
+      </section>
+      <section name="RNPxl">
+        <param name="length" value="2"/>
+        <param name="sequence" value=""/>
+        <param name="target_nucleotides" value="&quot;A=C10H14N5O7P&quot; &quot;C=C9H14N3O8P&quot; &quot;G=C10H14N5O8P&quot; &quot;U=C9H13N2O9P&quot;"/>
+        <param name="nt_groups" value=""/>
+        <param name="mapping" value="&quot;A-&gt;A&quot; &quot;C-&gt;C&quot; &quot;G-&gt;G&quot; &quot;U-&gt;U&quot;"/>
+        <param name="can_cross_link" value="U"/>
+        <param name="fragment_adducts" value="&quot;U:C9H10N2O5;U-H3PO4&quot; &quot;U:C4H4N2O2;U'&quot; &quot;U:C4H2N2O1;U'-H2O&quot; &quot;U:C3O;C3O&quot; &quot;U:C9H13N2O9P1;U&quot; &quot;U:C9H11N2O8P1;U-H2O&quot; &quot;U:C9H12N2O6;U-HPO3&quot;"/>
+        <param name="modifications" value="&quot;U:&quot; &quot;U:-H2O&quot; &quot;U:-H2O-HPO3&quot; &quot;U:-HPO3&quot;"/>
+        <param name="scoring" value="fast"/>
+        <param name="decoys" value="true"/>
+        <param name="CysteineAdduct" value="false"/>
+        <param name="filter_fractional_mass" value="false"/>
+        <param name="carbon_labeled_fragments" value="false"/>
+        <param name="only_xl" value="false"/>
+        <param name="filter_small_peptide_mass" value="600.0"/>
+        <param name="marker_ions_tolerance" value="0.05"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_tsv_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_RNPxlXICFilter">
+</xml>
+  <xml name="autotest_RTEvaluation">
+</xml>
+  <xml name="autotest_RTModel">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="RTModel_1_input.idXML"/>
+      <output name="out" file="RTModel_1_output.model" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="svm_type" value="NU_SVR"/>
+      <param name="nu" value="0.5"/>
+      <param name="p" value="0.1"/>
+      <param name="c" value="0.1"/>
+      <param name="kernel_type" value="POLY"/>
+      <param name="degree" value="1"/>
+      <param name="border_length" value="22"/>
+      <param name="max_std" value="10.0"/>
+      <param name="k_mer_length" value="1"/>
+      <param name="sigma" value="5.0"/>
+      <param name="total_gradient_time" value="3000.0"/>
+      <param name="first_dim_rt" value="false"/>
+      <param name="additive_cv" value="false"/>
+      <section name="cv">
+        <param name="skip_cv" value="true"/>
+        <param name="number_of_runs" value="10"/>
+        <param name="number_of_partitions" value="10"/>
+        <param name="degree_start" value="1"/>
+        <param name="degree_step_size" value="2"/>
+        <param name="degree_stop" value="4"/>
+        <param name="p_start" value="1.0"/>
+        <param name="p_step_size" value="10.0"/>
+        <param name="p_stop" value="1000.0"/>
+        <param name="c_start" value="1.0"/>
+        <param name="c_step_size" value="10.0"/>
+        <param name="c_stop" value="1000.0"/>
+        <param name="nu_start" value="0.3"/>
+        <param name="nu_step_size" value="1.2"/>
+        <param name="nu_stop" value="0.7"/>
+        <param name="sigma_start" value="1.0"/>
+        <param name="sigma_step_size" value="1.3"/>
+        <param name="sigma_stop" value="15.0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in_positive" value="RTModel_2_input_positive.idXML"/>
+      <param name="in_negative" value="RTModel_2_input_negative.idXML"/>
+      <output name="out" file="RTModel_2_output.tmp" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="svm_type" value="NU_SVR"/>
+      <param name="nu" value="0.5"/>
+      <param name="p" value="0.1"/>
+      <param name="c" value="0.5"/>
+      <param name="kernel_type" value="OLIGO"/>
+      <param name="degree" value="1"/>
+      <param name="border_length" value="22"/>
+      <param name="max_std" value="10.0"/>
+      <param name="k_mer_length" value="1"/>
+      <param name="sigma" value="5.0"/>
+      <param name="total_gradient_time" value="1.0"/>
+      <param name="first_dim_rt" value="false"/>
+      <param name="additive_cv" value="false"/>
+      <section name="cv">
+        <param name="skip_cv" value="true"/>
+        <param name="number_of_runs" value="10"/>
+        <param name="number_of_partitions" value="10"/>
+        <param name="degree_start" value="1"/>
+        <param name="degree_step_size" value="2"/>
+        <param name="degree_stop" value="4"/>
+        <param name="p_start" value="1.0"/>
+        <param name="p_step_size" value="10.0"/>
+        <param name="p_stop" value="1000.0"/>
+        <param name="c_start" value="1.0"/>
+        <param name="c_step_size" value="10.0"/>
+        <param name="c_stop" value="1000.0"/>
+        <param name="nu_start" value="0.3"/>
+        <param name="nu_step_size" value="1.2"/>
+        <param name="nu_stop" value="0.7"/>
+        <param name="sigma_start" value="1.0"/>
+        <param name="sigma_step_size" value="1.3"/>
+        <param name="sigma_stop" value="15.0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="RTModel_3_input.idXML"/>
+      <output name="out" file="RTModel_3_output.tmp" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="svm_type" value="NU_SVR"/>
+      <param name="nu" value="0.5"/>
+      <param name="p" value="0.1"/>
+      <param name="c" value="0.001953125"/>
+      <param name="kernel_type" value="OLIGO"/>
+      <param name="degree" value="1"/>
+      <param name="border_length" value="22"/>
+      <param name="max_std" value="10.0"/>
+      <param name="k_mer_length" value="1"/>
+      <param name="sigma" value="1.0"/>
+      <param name="total_gradient_time" value="1.0"/>
+      <param name="first_dim_rt" value="false"/>
+      <param name="additive_cv" value="false"/>
+      <section name="cv">
+        <param name="skip_cv" value="false"/>
+        <param name="number_of_runs" value="1"/>
+        <param name="number_of_partitions" value="5"/>
+        <param name="degree_start" value="1"/>
+        <param name="degree_step_size" value="2"/>
+        <param name="degree_stop" value="4"/>
+        <param name="p_start" value="1.0"/>
+        <param name="p_step_size" value="10.0"/>
+        <param name="p_stop" value="1000.0"/>
+        <param name="c_start" value="0.001953125"/>
+        <param name="c_step_size" value="2.0"/>
+        <param name="c_stop" value="0.001953125"/>
+        <param name="nu_start" value="0.4"/>
+        <param name="nu_step_size" value="1.2"/>
+        <param name="nu_stop" value="0.4"/>
+        <param name="sigma_start" value="5.0"/>
+        <param name="sigma_step_size" value="1.221055"/>
+        <param name="sigma_stop" value="5.0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="RTModel_4_input.txt" ftype="txt"/>
+      <output name="out" file="RTModel_4_output.tmp" compare="sim_size" delta="5700" ftype="txt"/>
+      <param name="svm_type" value="NU_SVR"/>
+      <param name="nu" value="0.5"/>
+      <param name="p" value="0.1"/>
+      <param name="c" value="0.001953125"/>
+      <param name="kernel_type" value="OLIGO"/>
+      <param name="degree" value="1"/>
+      <param name="border_length" value="22"/>
+      <param name="max_std" value="10.0"/>
+      <param name="k_mer_length" value="1"/>
+      <param name="sigma" value="1.0"/>
+      <param name="total_gradient_time" value="1.0"/>
+      <param name="first_dim_rt" value="false"/>
+      <param name="additive_cv" value="false"/>
+      <section name="cv">
+        <param name="skip_cv" value="false"/>
+        <param name="number_of_runs" value="1"/>
+        <param name="number_of_partitions" value="5"/>
+        <param name="degree_start" value="1"/>
+        <param name="degree_step_size" value="2"/>
+        <param name="degree_stop" value="4"/>
+        <param name="p_start" value="1.0"/>
+        <param name="p_step_size" value="10.0"/>
+        <param name="p_stop" value="1000.0"/>
+        <param name="c_start" value="0.001953125"/>
+        <param name="c_step_size" value="2.0"/>
+        <param name="c_stop" value="0.001953125"/>
+        <param name="nu_start" value="0.4"/>
+        <param name="nu_step_size" value="1.2"/>
+        <param name="nu_stop" value="0.4"/>
+        <param name="sigma_start" value="5.0"/>
+        <param name="sigma_step_size" value="1.221055"/>
+        <param name="sigma_stop" value="5.0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_SeedListGenerator">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="PepXMLFile_test.mzML"/>
+      <output name="out" file="SeedListGenerator_1_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="use_peptide_mass" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDMapper_1_output.featureXML"/>
+      <output name="out" file="SeedListGenerator_2_output.featureXML" compare="sim_size" delta="5700" ftype="featurexml"/>
+      <param name="use_peptide_mass" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_SemanticValidator">
+</xml>
+  <xml name="autotest_SequenceCoverageCalculator">
+</xml>
+  <xml name="autotest_SimpleSearchEngine">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="SimpleSearchEngine_1.mzML"/>
+      <param name="database" value="SimpleSearchEngine_1.fasta"/>
+      <output name="out" file="SimpleSearchEngine_1_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <section name="Search">
+        <param name="enzyme" value="Trypsin"/>
+        <param name="decoys" value="false"/>
+        <section name="precursor">
+          <param name="mass_tolerance" value="5.0"/>
+          <param name="mass_tolerance_unit" value="ppm"/>
+          <param name="min_charge" value="2"/>
+          <param name="max_charge" value="5"/>
+          <param name="isotopes" value="0 1"/>
+        </section>
+        <section name="fragment">
+          <param name="mass_tolerance" value="0.3"/>
+          <param name="mass_tolerance_unit" value="Da"/>
+        </section>
+        <section name="modifications">
+          <param name="fixed" value=""/>
+          <param name="variable" value="Oxidation (M)"/>
+          <param name="variable_max_per_peptide" value="2"/>
+        </section>
+        <section name="annotate">
+          <param name="PSM" value=""/>
+        </section>
+        <section name="peptide">
+          <param name="min_size" value="7"/>
+          <param name="max_size" value="40"/>
+          <param name="missed_cleavages" value="1"/>
+          <param name="motif" value=""/>
+        </section>
+        <section name="report">
+          <param name="top_hits" value="1"/>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_SiriusAdapter">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="converter_mode" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="SiriusAdapter_1_input.mzML"/>
+      <output name="out_sirius" file="SiriusAdapter_1_output.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>
+      <param name="out_workspace_directory" value=""/>
+      <section name="preprocessing">
+        <param name="filter_by_num_masstraces" value="1"/>
+        <param name="precursor_mz_tolerance" value="0.005"/>
+        <param name="precursor_mz_tolerance_unit" value="Da"/>
+        <param name="precursor_rt_tolerance" value="5"/>
+        <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="sirius">
+        <param name="profile" value="qtof"/>
+        <param name="candidates" value="5"/>
+        <param name="database" value="all"/>
+        <param name="noise" value="0"/>
+        <param name="ppm_max" value="10"/>
+        <param name="isotope" value="both"/>
+        <param name="elements" value="CHNOP[5]S[8]Cl[1]"/>
+        <param name="compound_timeout" value="10"/>
+        <param name="tree_timeout" value="0"/>
+        <param name="top_n_hits" value="10"/>
+        <param name="auto_charge" value="true"/>
+        <param name="ion_tree" value="false"/>
+        <param name="no_recalibration" value="false"/>
+        <param name="most_intense_ms2" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_sirius_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="converter_mode" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="SiriusAdapter_2_input.mzML"/>
+      <param name="in_featureinfo" value="SiriusAdapter_2_input.featureXML"/>
+      <output name="out_sirius" file="SiriusAdapter_2_output.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>
+      <param name="out_workspace_directory" value=""/>
+      <section name="preprocessing">
+        <param name="filter_by_num_masstraces" value="3"/>
+        <param name="precursor_mz_tolerance" value="0.005"/>
+        <param name="precursor_mz_tolerance_unit" value="Da"/>
+        <param name="precursor_rt_tolerance" value="5"/>
+        <param name="isotope_pattern_iterations" value="3"/>
+        <param name="feature_only" value="true"/>
+        <param name="no_masstrace_info_isotope_pattern" value="false"/>
+      </section>
+      <section name="sirius">
+        <param name="profile" value="qtof"/>
+        <param name="candidates" value="5"/>
+        <param name="database" value="all"/>
+        <param name="noise" value="0"/>
+        <param name="ppm_max" value="10"/>
+        <param name="isotope" value="both"/>
+        <param name="elements" value="CHNOP[5]S[8]Cl[1]"/>
+        <param name="compound_timeout" value="10"/>
+        <param name="tree_timeout" value="0"/>
+        <param name="top_n_hits" value="10"/>
+        <param name="auto_charge" value="true"/>
+        <param name="ion_tree" value="false"/>
+        <param name="no_recalibration" value="false"/>
+        <param name="most_intense_ms2" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_sirius_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="converter_mode" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="SiriusAdapter_3_input.mzML"/>
+      <param name="in_featureinfo" value="SiriusAdapter_3_input.featureXML"/>
+      <output name="out_sirius" file="SiriusAdapter_3_output.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>
+      <param name="out_workspace_directory" value=""/>
+      <section name="preprocessing">
+        <param name="filter_by_num_masstraces" value="3"/>
+        <param name="precursor_mz_tolerance" value="0.005"/>
+        <param name="precursor_mz_tolerance_unit" value="Da"/>
+        <param name="precursor_rt_tolerance" value="5"/>
+        <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="sirius">
+        <param name="profile" value="qtof"/>
+        <param name="candidates" value="5"/>
+        <param name="database" value="all"/>
+        <param name="noise" value="0"/>
+        <param name="ppm_max" value="10"/>
+        <param name="isotope" value="both"/>
+        <param name="elements" value="CHNOP[5]S[8]Cl[1]"/>
+        <param name="compound_timeout" value="10"/>
+        <param name="tree_timeout" value="0"/>
+        <param name="top_n_hits" value="10"/>
+        <param name="auto_charge" value="true"/>
+        <param name="ion_tree" value="false"/>
+        <param name="no_recalibration" value="false"/>
+        <param name="most_intense_ms2" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_sirius_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="converter_mode" value="true"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="SiriusAdapter_3_input.mzML"/>
+      <param name="in_featureinfo" value="SiriusAdapter_3_input.featureXML"/>
+      <output name="out_ms" file="SiriusAdapter_5_output.ms" compare="sim_size" delta="5700" ftype="sirius.ms"/>
+      <param name="out_workspace_directory" value=""/>
+      <section name="preprocessing">
+        <param name="filter_by_num_masstraces" value="1"/>
+        <param name="precursor_mz_tolerance" value="0.005"/>
+        <param name="precursor_mz_tolerance_unit" value="Da"/>
+        <param name="precursor_rt_tolerance" value="5"/>
+        <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="sirius">
+        <param name="profile" value="qtof"/>
+        <param name="candidates" value="5"/>
+        <param name="database" value="all"/>
+        <param name="noise" value="0"/>
+        <param name="ppm_max" value="10"/>
+        <param name="isotope" value="both"/>
+        <param name="elements" value="CHNOP[5]S[8]Cl[1]"/>
+        <param name="compound_timeout" value="10"/>
+        <param name="tree_timeout" value="0"/>
+        <param name="top_n_hits" value="10"/>
+        <param name="auto_charge" value="false"/>
+        <param name="ion_tree" value="false"/>
+        <param name="no_recalibration" value="false"/>
+        <param name="most_intense_ms2" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_ms_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="converter_mode" value="true"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="SiriusAdapter_4_input.mzML"/>
+      <param name="in_featureinfo" value="SiriusAdapter_4_input.featureXML"/>
+      <output name="out_ms" file="SiriusAdapter_6_output.ms" compare="sim_size" delta="5700" ftype="sirius.ms"/>
+      <param name="out_workspace_directory" value=""/>
+      <section name="preprocessing">
+        <param name="filter_by_num_masstraces" value="1"/>
+        <param name="precursor_mz_tolerance" value="0.005"/>
+        <param name="precursor_mz_tolerance_unit" value="Da"/>
+        <param name="precursor_rt_tolerance" value="5"/>
+        <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="sirius">
+        <param name="profile" value="qtof"/>
+        <param name="candidates" value="5"/>
+        <param name="database" value="all"/>
+        <param name="noise" value="0"/>
+        <param name="ppm_max" value="10"/>
+        <param name="isotope" value="both"/>
+        <param name="elements" value="CHNOP[5]S[8]Cl[1]"/>
+        <param name="compound_timeout" value="10"/>
+        <param name="tree_timeout" value="0"/>
+        <param name="top_n_hits" value="10"/>
+        <param name="auto_charge" value="false"/>
+        <param name="ion_tree" value="false"/>
+        <param name="no_recalibration" value="false"/>
+        <param name="most_intense_ms2" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_ms_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="converter_mode" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="SiriusAdapter_4_input.mzML"/>
+      <param name="in_featureinfo" value="SiriusAdapter_4_input.featureXML"/>
+      <output name="out_sirius" file="SiriusAdapter_7_output.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>
+      <param name="out_workspace_directory" value=""/>
+      <section name="preprocessing">
+        <param name="filter_by_num_masstraces" value="1"/>
+        <param name="precursor_mz_tolerance" value="0.005"/>
+        <param name="precursor_mz_tolerance_unit" value="Da"/>
+        <param name="precursor_rt_tolerance" value="5"/>
+        <param name="isotope_pattern_iterations" value="3"/>
+        <param name="feature_only" value="true"/>
+        <param name="no_masstrace_info_isotope_pattern" value="false"/>
+      </section>
+      <section name="sirius">
+        <param name="profile" value="qtof"/>
+        <param name="candidates" value="5"/>
+        <param name="database" value="all"/>
+        <param name="noise" value="0"/>
+        <param name="ppm_max" value="10"/>
+        <param name="isotope" value="both"/>
+        <param name="elements" value="CHNOP[5]S[8]Cl[1]"/>
+        <param name="compound_timeout" value="10"/>
+        <param name="tree_timeout" value="0"/>
+        <param name="top_n_hits" value="10"/>
+        <param name="auto_charge" value="false"/>
+        <param name="ion_tree" value="false"/>
+        <param name="no_recalibration" value="false"/>
+        <param name="most_intense_ms2" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_sirius_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="converter_mode" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="SiriusAdapter_2_input.mzML"/>
+      <param name="in_featureinfo" value="SiriusAdapter_2_input.featureXML"/>
+      <output name="out_sirius" file="SiriusAdapter_4_output.tmp" compare="sim_size" delta="5700" ftype="mztab"/>
+      <output name="out_fingerid" file="SiriusAdapter_4_foutput.mzTab" compare="sim_size" delta="5700" ftype="mztab"/>
+      <param name="out_workspace_directory" value=""/>
+      <section name="preprocessing">
+        <param name="filter_by_num_masstraces" value="1"/>
+        <param name="precursor_mz_tolerance" value="0.005"/>
+        <param name="precursor_mz_tolerance_unit" value="Da"/>
+        <param name="precursor_rt_tolerance" value="5"/>
+        <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="sirius">
+        <param name="profile" value="qtof"/>
+        <param name="candidates" value="5"/>
+        <param name="database" value="pubchem"/>
+        <param name="noise" value="0"/>
+        <param name="ppm_max" value="10"/>
+        <param name="isotope" value="both"/>
+        <param name="elements" value="CHNOP[5]S[8]Cl[1]"/>
+        <param name="compound_timeout" value="10"/>
+        <param name="tree_timeout" value="0"/>
+        <param name="top_n_hits" value="10"/>
+        <param name="auto_charge" value="true"/>
+        <param name="ion_tree" value="false"/>
+        <param name="no_recalibration" value="false"/>
+        <param name="most_intense_ms2" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_sirius_FLAG,out_fingerid_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_SpecLibCreator">
+</xml>
+  <xml name="autotest_SpecLibSearcher">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="SpecLibSearcher_1.mzML"/>
+      <param name="lib" value="SpecLibSearcher_1.MSP"/>
+      <output_collection name="out" count="1"/>
+      <param name="compare_function" value="ZhangSimilarityScore"/>
+      <section name="precursor">
+        <param name="mass_tolerance" value="3.0"/>
+        <param name="mass_tolerance_unit" value="Da"/>
+        <param name="min_charge" value="1"/>
+        <param name="max_charge" value="5"/>
+        <param name="isotopes" value="0 1"/>
+      </section>
+      <section name="fragment">
+        <param name="mass_tolerance" value="10.0"/>
+      </section>
+      <section name="report">
+        <param name="top_hits" value="10"/>
+      </section>
+      <section name="filter">
+        <param name="remove_peaks_below_threshold" value="2.01"/>
+        <param name="min_peaks" value="5"/>
+        <param name="max_peaks" value="150"/>
+        <param name="cut_peaks_below" value="1000"/>
+      </section>
+      <section name="modifications">
+        <param name="fixed" value=""/>
+        <param name="variable" value=""/>
+        <param name="variable_max_per_peptide" value="2"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_SpectraFilterBernNorm">
+</xml>
+  <xml name="autotest_SpectraFilterMarkerMower">
+</xml>
+  <xml name="autotest_SpectraFilterNLargest">
+</xml>
+  <xml name="autotest_SpectraFilterNormalizer">
+</xml>
+  <xml name="autotest_SpectraFilterParentPeakMower">
+</xml>
+  <xml name="autotest_SpectraFilterScaler">
+</xml>
+  <xml name="autotest_SpectraFilterSqrtMower">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="SpectraFilterSqrtMower_1_input.mzML"/>
+      <output name="out" file="SpectraFilterSqrtMower_1_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_SpectraFilterThresholdMower">
+</xml>
+  <xml name="autotest_SpectraFilterWindowMower">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="SpectraFilterWindowMower_1_input.mzML"/>
+      <output name="out" file="SpectraFilterWindowMower_1_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="windowsize" value="50.0"/>
+        <param name="peakcount" value="2"/>
+        <param name="movetype" value="slide"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="SpectraFilterWindowMower_2_input.mzML"/>
+      <output name="out" file="SpectraFilterWindowMower_2_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <section name="algorithm">
+        <param name="windowsize" value="20.0"/>
+        <param name="peakcount" value="4"/>
+        <param name="movetype" value="slide"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_SpectraMerger">
+</xml>
+  <xml name="autotest_SpectraSTSearchAdapter"/>
+  <xml name="autotest_StaticModification">
+</xml>
+  <xml name="autotest_SvmTheoreticalSpectrumGeneratorTrainer">
+</xml>
+  <xml name="autotest_TargetedFileConverter">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ConvertTSVToTraML_1_input.tsv" ftype="tabular"/>
+      <output name="out" file="ConvertTSVToTraML_output.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ConvertTSVToTraML_2_input.tsv" ftype="tabular"/>
+      <output name="out" file="ConvertTSVToTraML_2_output.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="minutes"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ConvertTSVToTraML_2_input.tsv" ftype="tabular"/>
+      <output name="out" file="ConvertTSVToTraML_3_output.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="seconds"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ConvertTSVToTraML_4_input.mrm" ftype="mrm"/>
+      <output name="out" file="ConvertTSVToTraML_4_output.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ConvertTSVToTraML_5_input.tsv" ftype="tabular"/>
+      <output name="out" file="ConvertTSVToTraML_5_output.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ConvertTSVToTraML_6_input.tsv" ftype="tabular"/>
+      <output name="out" file="ConvertTSVToTraML_6_output.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ConvertTSVToTraML_7_input_Skyline.tsv" ftype="tabular"/>
+      <output name="out" file="ConvertTSVToTraML_7_output.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TargetedFileConverter_1_output.pqp.tmp"/>
+      <output name="out" file="TargetedFileConverter_1_output.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="true"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TargetedFileConverter_1_output.pqp.tmp"/>
+      <output name="out" file="TargetedFileConverter_2_output.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TargetedFileConverter_3_output.pqp.tmp"/>
+      <output name="out" file="TargetedFileConverter_3_output.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="true"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TargetedFileConverter_3_output.pqp.tmp"/>
+      <output name="out" file="TargetedFileConverter_4_output.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TargetedFileConverter_10_output.TraML.tmp"/>
+      <output name="out" file="TargetedFileConverter_10_output.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="out_type" value="tsv"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TargetedFileConverter_11_output.pqp.tmp"/>
+      <output name="out" file="TargetedFileConverter_11_input.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TargetedFileConverter_8_output.TraML.tmp"/>
+      <output name="out" file="TargetedFileConverter_8_input.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="out_type" value="tsv"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="true"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TargetedFileConverter_9_output.pqp.tmp"/>
+      <output name="out" file="TargetedFileConverter_9_input.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="true"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ConvertTSVToTraML_output.TraML"/>
+      <output name="out" file="ConvertTraMLToTSV_output.tmp.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="out_type" value="tsv"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TargetedFileConverter_12_output.pqp.tmp"/>
+      <output name="out" file="TargetedFileConverter_12_input.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="true"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TargetedFileConverter_12_input.tsv" ftype="tabular"/>
+      <output name="out" file="TargetedFileConverter_13_output.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="TraML"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="ConvertTSVToTraML_5_output.TraML"/>
+      <output name="out" file="ConvertTraMLToTSV_output_2.tmp.tsv" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="out_type" value="tsv"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="legacy_traml_id" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="AssayGeneratorMetabo_ams_uku_output_consensus.tsv" ftype="tabular"/>
+      <output name="out" file="AssayGeneratorMetabo_ams_uku_output_consensus_traml.tmp.TraML" compare="sim_size" delta="5700" ftype="traml"/>
+      <param name="out_type" value="traml"/>
+      <section name="algorithm">
+        <param name="retentionTimeInterpretation" value="iRT"/>
+        <param name="override_group_label_check" value="false"/>
+        <param name="force_invalid_mods" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_TextExporter">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TextExporter_1_input.featureXML"/>
+      <output name="out" file="TextExporter_1_output.txt" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="separator" value=""/>
+      <param name="replacement" value="_"/>
+      <param name="quoting" value="none"/>
+      <param name="no_ids" value="false"/>
+      <section name="feature">
+        <param name="minimal" value="false"/>
+        <param name="add_metavalues" value="-1"/>
+      </section>
+      <section name="id">
+        <param name="proteins_only" value="false"/>
+        <param name="peptides_only" value="false"/>
+        <param name="protein_groups" value="false"/>
+        <param name="first_dim_rt" value="false"/>
+        <param name="add_metavalues" value="-1"/>
+        <param name="add_hit_metavalues" value="-1"/>
+        <param name="add_protein_hit_metavalues" value="-1"/>
+      </section>
+      <section name="consensus">
+        <param name="sorting_method" value="none"/>
+        <param name="sort_by_maps" value="false"/>
+        <param name="sort_by_size" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="5">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TextExporter_2_input.consensusXML"/>
+      <output name="out" file="TextExporter_2_consensus_tsv.tmp" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="separator" value=""/>
+      <param name="replacement" value="_"/>
+      <param name="quoting" value="none"/>
+      <param name="no_ids" value="true"/>
+      <section name="feature">
+        <param name="minimal" value="false"/>
+        <param name="add_metavalues" value="-1"/>
+      </section>
+      <section name="id">
+        <param name="proteins_only" value="false"/>
+        <param name="peptides_only" value="false"/>
+        <param name="protein_groups" value="false"/>
+        <param name="first_dim_rt" value="false"/>
+        <param name="add_metavalues" value="-1"/>
+        <param name="add_hit_metavalues" value="-1"/>
+        <param name="add_protein_hit_metavalues" value="-1"/>
+      </section>
+      <section name="consensus">
+        <param name="sorting_method" value="RT_then_MZ"/>
+        <param name="sort_by_maps" value="true"/>
+        <param name="sort_by_size" value="true"/>
+      </section>
+      <output name="consensus_centroids" file="TextExporter_2_consensus_centroids.tmp" compare="sim_size" delta="5700" ftype="csv"/>
+      <output name="consensus_elements" file="TextExporter_2_consensus_elements.tmp" compare="sim_size" delta="5700" ftype="csv"/>
+      <output name="consensus_features" file="TextExporter_2_consensus_features.tmp" compare="sim_size" delta="5700" ftype="csv"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,centroids_FLAG,elements_FLAG,features_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TextExporter_3_input.idXML"/>
+      <output name="out" file="TextExporter_3_output.txt" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="separator" value=""/>
+      <param name="replacement" value="_"/>
+      <param name="quoting" value="none"/>
+      <param name="no_ids" value="false"/>
+      <section name="feature">
+        <param name="minimal" value="false"/>
+        <param name="add_metavalues" value="-1"/>
+      </section>
+      <section name="id">
+        <param name="proteins_only" value="false"/>
+        <param name="peptides_only" value="false"/>
+        <param name="protein_groups" value="false"/>
+        <param name="first_dim_rt" value="false"/>
+        <param name="add_metavalues" value="-1"/>
+        <param name="add_hit_metavalues" value="-1"/>
+        <param name="add_protein_hit_metavalues" value="-1"/>
+      </section>
+      <section name="consensus">
+        <param name="sorting_method" value="none"/>
+        <param name="sort_by_maps" value="false"/>
+        <param name="sort_by_size" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TextExporter_3_input.idXML"/>
+      <output name="out" file="TextExporter_4_output_proteins.txt" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="separator" value=""/>
+      <param name="replacement" value="_"/>
+      <param name="quoting" value="none"/>
+      <param name="no_ids" value="false"/>
+      <section name="feature">
+        <param name="minimal" value="false"/>
+        <param name="add_metavalues" value="-1"/>
+      </section>
+      <section name="id">
+        <param name="proteins_only" value="true"/>
+        <param name="peptides_only" value="false"/>
+        <param name="protein_groups" value="false"/>
+        <param name="first_dim_rt" value="false"/>
+        <param name="add_metavalues" value="-1"/>
+        <param name="add_hit_metavalues" value="-1"/>
+        <param name="add_protein_hit_metavalues" value="-1"/>
+      </section>
+      <section name="consensus">
+        <param name="sorting_method" value="none"/>
+        <param name="sort_by_maps" value="false"/>
+        <param name="sort_by_size" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TextExporter_5_input.idXML"/>
+      <output name="out" file="TextExporter_5_output_peptides.txt" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="separator" value=""/>
+      <param name="replacement" value="_"/>
+      <param name="quoting" value="none"/>
+      <param name="no_ids" value="false"/>
+      <section name="feature">
+        <param name="minimal" value="false"/>
+        <param name="add_metavalues" value="-1"/>
+      </section>
+      <section name="id">
+        <param name="proteins_only" value="false"/>
+        <param name="peptides_only" value="true"/>
+        <param name="protein_groups" value="false"/>
+        <param name="first_dim_rt" value="true"/>
+        <param name="add_metavalues" value="-1"/>
+        <param name="add_hit_metavalues" value="-1"/>
+        <param name="add_protein_hit_metavalues" value="-1"/>
+      </section>
+      <section name="consensus">
+        <param name="sorting_method" value="none"/>
+        <param name="sort_by_maps" value="false"/>
+        <param name="sort_by_size" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TextExporter_6_input.featureXML"/>
+      <output name="out" file="TextExporter_6_output.txt" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="separator" value=""/>
+      <param name="replacement" value="_"/>
+      <param name="quoting" value="none"/>
+      <param name="no_ids" value="true"/>
+      <section name="feature">
+        <param name="minimal" value="false"/>
+        <param name="add_metavalues" value="-1"/>
+      </section>
+      <section name="id">
+        <param name="proteins_only" value="false"/>
+        <param name="peptides_only" value="false"/>
+        <param name="protein_groups" value="false"/>
+        <param name="first_dim_rt" value="false"/>
+        <param name="add_metavalues" value="-1"/>
+        <param name="add_hit_metavalues" value="-1"/>
+        <param name="add_protein_hit_metavalues" value="-1"/>
+      </section>
+      <section name="consensus">
+        <param name="sorting_method" value="none"/>
+        <param name="sort_by_maps" value="false"/>
+        <param name="sort_by_size" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TextExporter_7_input.consensusXML"/>
+      <output name="out" file="TextExporter_7_consensus_tsv.tmp" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="separator" value=""/>
+      <param name="replacement" value="_"/>
+      <param name="quoting" value="none"/>
+      <param name="no_ids" value="false"/>
+      <section name="feature">
+        <param name="minimal" value="false"/>
+        <param name="add_metavalues" value="-1"/>
+      </section>
+      <section name="id">
+        <param name="proteins_only" value="false"/>
+        <param name="peptides_only" value="false"/>
+        <param name="protein_groups" value="false"/>
+        <param name="first_dim_rt" value="false"/>
+        <param name="add_metavalues" value="-1"/>
+        <param name="add_hit_metavalues" value="-1"/>
+        <param name="add_protein_hit_metavalues" value="-1"/>
+      </section>
+      <section name="consensus">
+        <param name="sorting_method" value="RT_then_MZ"/>
+        <param name="sort_by_maps" value="true"/>
+        <param name="sort_by_size" value="true"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TextExporter_1_input.featureXML"/>
+      <output name="out" file="TextExporter_8_output.txt" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="separator" value=""/>
+      <param name="replacement" value="_"/>
+      <param name="quoting" value="none"/>
+      <param name="no_ids" value="true"/>
+      <section name="feature">
+        <param name="minimal" value="false"/>
+        <param name="add_metavalues" value="-1"/>
+      </section>
+      <section name="id">
+        <param name="proteins_only" value="false"/>
+        <param name="peptides_only" value="false"/>
+        <param name="protein_groups" value="false"/>
+        <param name="first_dim_rt" value="false"/>
+        <param name="add_metavalues" value="-1"/>
+        <param name="add_hit_metavalues" value="-1"/>
+        <param name="add_protein_hit_metavalues" value="-1"/>
+      </section>
+      <section name="consensus">
+        <param name="sorting_method" value="none"/>
+        <param name="sort_by_maps" value="false"/>
+        <param name="sort_by_size" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TextExporter_9_input.idXML"/>
+      <output name="out" file="TextExporter_9_output.txt" compare="sim_size" delta="5700" ftype="tabular"/>
+      <param name="separator" value=""/>
+      <param name="replacement" value="_"/>
+      <param name="quoting" value="none"/>
+      <param name="no_ids" value="false"/>
+      <section name="feature">
+        <param name="minimal" value="false"/>
+        <param name="add_metavalues" value="-1"/>
+      </section>
+      <section name="id">
+        <param name="proteins_only" value="false"/>
+        <param name="peptides_only" value="false"/>
+        <param name="protein_groups" value="false"/>
+        <param name="first_dim_rt" value="false"/>
+        <param name="add_metavalues" value="0"/>
+        <param name="add_hit_metavalues" value="0"/>
+        <param name="add_protein_hit_metavalues" value="-1"/>
+      </section>
+      <section name="consensus">
+        <param name="sorting_method" value="none"/>
+        <param name="sort_by_maps" value="false"/>
+        <param name="sort_by_size" value="false"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_TICCalculator">
+    <test expect_num_outputs="1">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapNormalizer_output.mzML"/>
+      <param name="read_method" value="regular"/>
+      <param name="loadData" value="true"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="1">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapNormalizer_output.mzML"/>
+      <param name="read_method" value="streaming"/>
+      <param name="loadData" value="true"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="1">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapNormalizer_output.mzML"/>
+      <param name="read_method" value="streaming"/>
+      <param name="loadData" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="1">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapNormalizer_output.mzML"/>
+      <param name="read_method" value="indexed"/>
+      <param name="loadData" value="true"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="1">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MapNormalizer_output.mzML"/>
+      <param name="read_method" value="indexed_parallel"/>
+      <param name="loadData" value="true"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_TOFCalibration">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TOFCalibration_1_input.mzML"/>
+      <output name="out" file="TOFCalibration_1_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="ext_calibrants" value="TOFCalibration_1_calibrants.mzML"/>
+      <param name="ref_masses" value="TOFCalibration_ref_masses.tsv" ftype="tabular"/>
+      <param name="tof_const" value="TOFCalibration_const.tsv" ftype="tabular"/>
+      <param name="peak_data" value="false"/>
+      <section name="algorithm">
+        <section name="PeakPicker">
+          <param name="signal_to_noise" value="3.0"/>
+          <param name="centroid_percentage" value="0.6"/>
+          <param name="peak_width" value="0.15"/>
+          <param name="estimate_peak_width" value="false"/>
+          <param name="fwhm_lower_bound_factor" value="0.7"/>
+          <param name="fwhm_upper_bound_factor" value="20.0"/>
+          <section name="optimization">
+            <param name="iterations" value="400"/>
+            <section name="penalties">
+              <param name="position" value="0.0"/>
+              <param name="left_width" value="1.0"/>
+              <param name="right_width" value="1.0"/>
+              <param name="height" value="1.0"/>
+            </section>
+            <section name="2d">
+              <param name="tolerance_mz" value="2.2"/>
+              <param name="max_peak_distance" value="1.2"/>
+            </section>
+          </section>
+          <section name="thresholds">
+            <param name="peak_bound" value="400.0"/>
+            <param name="peak_bound_ms2_level" value="10.0"/>
+            <param name="correlation" value="0.0"/>
+            <param name="noise_level" value="0.1"/>
+            <param name="search_radius" value="3"/>
+          </section>
+          <section name="wavelet_transform">
+            <param name="spacing" value="0.001"/>
+          </section>
+          <section name="deconvolution">
+            <param name="deconvolution" value="false"/>
+            <param name="asym_threshold" value="0.3"/>
+            <param name="left_width" value="2.0"/>
+            <param name="right_width" value="2.0"/>
+            <param name="scaling" value="0.12"/>
+            <section name="fitting">
+              <param name="fwhm_threshold" value="0.7"/>
+              <param name="eps_abs" value="9.999999747378752e-06"/>
+              <param name="eps_rel" value="9.999999747378752e-06"/>
+              <param name="max_iteration" value="10"/>
+              <section name="penalties">
+                <param name="position" value="0.0"/>
+                <param name="height" value="1.0"/>
+                <param name="left_width" value="0.0"/>
+                <param name="right_width" value="0.0"/>
+              </section>
+            </section>
+          </section>
+          <section name="SignalToNoiseEstimationParameter">
+            <param name="max_intensity" value="-1"/>
+            <param name="auto_max_stdev_factor" value="3.0"/>
+            <param name="auto_max_percentile" value="95"/>
+            <param name="auto_mode" value="0"/>
+            <param name="win_len" value="200.0"/>
+            <param name="bin_count" value="30"/>
+            <param name="stdev_mp" value="3.0"/>
+            <param name="min_required_elements" value="10"/>
+            <param name="noise_for_empty_window" value="1e+20"/>
+          </section>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="TOFCalibration_2_input.mzML"/>
+      <output name="out" file="TOFCalibration_2_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+      <param name="ext_calibrants" value="TOFCalibration_2_calibrants.mzML"/>
+      <param name="ref_masses" value="TOFCalibration_ref_masses.tsv" ftype="tabular"/>
+      <param name="tof_const" value="TOFCalibration_const.tsv" ftype="tabular"/>
+      <param name="peak_data" value="true"/>
+      <section name="algorithm">
+        <section name="PeakPicker">
+          <param name="signal_to_noise" value="3.0"/>
+          <param name="centroid_percentage" value="0.6"/>
+          <param name="peak_width" value="0.15"/>
+          <param name="estimate_peak_width" value="false"/>
+          <param name="fwhm_lower_bound_factor" value="0.7"/>
+          <param name="fwhm_upper_bound_factor" value="20.0"/>
+          <section name="optimization">
+            <param name="iterations" value="400"/>
+            <section name="penalties">
+              <param name="position" value="0.0"/>
+              <param name="left_width" value="1.0"/>
+              <param name="right_width" value="1.0"/>
+              <param name="height" value="1.0"/>
+            </section>
+            <section name="2d">
+              <param name="tolerance_mz" value="2.2"/>
+              <param name="max_peak_distance" value="1.2"/>
+            </section>
+          </section>
+          <section name="thresholds">
+            <param name="peak_bound" value="400.0"/>
+            <param name="peak_bound_ms2_level" value="10.0"/>
+            <param name="correlation" value="0.0"/>
+            <param name="noise_level" value="0.1"/>
+            <param name="search_radius" value="3"/>
+          </section>
+          <section name="wavelet_transform">
+            <param name="spacing" value="0.001"/>
+          </section>
+          <section name="deconvolution">
+            <param name="deconvolution" value="false"/>
+            <param name="asym_threshold" value="0.3"/>
+            <param name="left_width" value="2.0"/>
+            <param name="right_width" value="2.0"/>
+            <param name="scaling" value="0.12"/>
+            <section name="fitting">
+              <param name="fwhm_threshold" value="0.7"/>
+              <param name="eps_abs" value="9.999999747378752e-06"/>
+              <param name="eps_rel" value="9.999999747378752e-06"/>
+              <param name="max_iteration" value="10"/>
+              <section name="penalties">
+                <param name="position" value="0.0"/>
+                <param name="height" value="1.0"/>
+                <param name="left_width" value="0.0"/>
+                <param name="right_width" value="0.0"/>
+              </section>
+            </section>
+          </section>
+          <section name="SignalToNoiseEstimationParameter">
+            <param name="max_intensity" value="-1"/>
+            <param name="auto_max_stdev_factor" value="3.0"/>
+            <param name="auto_max_percentile" value="95"/>
+            <param name="auto_mode" value="0"/>
+            <param name="win_len" value="200.0"/>
+            <param name="bin_count" value="30"/>
+            <param name="stdev_mp" value="3.0"/>
+            <param name="min_required_elements" value="10"/>
+            <param name="noise_for_empty_window" value="1e+20"/>
+          </section>
+        </section>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_TransformationEvaluation">
+</xml>
+  <xml name="autotest_XFDR">
+    <test expect_num_outputs="4">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="XFDR_test_in1.idXML"/>
+      <output name="out_idXML" file="XFDR_test_out1_temp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <output name="out_mzIdentML" file="XFDR_test_out1_temp.mzid" compare="sim_size" delta="5700" ftype="mzid"/>
+      <output name="out_xquest" file="XFDR_test_out1_temp.xquest.xml" compare="sim_size" delta="5700" ftype="xquest.xml"/>
+      <param name="decoy_string" value="DECOY_"/>
+      <param name="minborder" value="-50.0"/>
+      <param name="maxborder" value="50.0"/>
+      <param name="mindeltas" value="0.0"/>
+      <param name="minionsmatched" value="0"/>
+      <param name="uniquexl" value="false"/>
+      <param name="no_qvalues" value="false"/>
+      <param name="minscore" value="-10.0"/>
+      <param name="binsize" value="0.1"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_idXML_FLAG,out_mzIdentML_FLAG,out_xquest_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="4">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="XFDR_test_in1.idXML"/>
+      <output name="out_idXML" file="XFDR_test_out2_temp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <output name="out_mzIdentML" file="XFDR_test_out2_temp.mzid" compare="sim_size" delta="5700" ftype="mzid"/>
+      <output name="out_xquest" file="XFDR_test_out2_temp.xquest.xml" compare="sim_size" delta="5700" ftype="xquest.xml"/>
+      <param name="decoy_string" value="DECOY_"/>
+      <param name="minborder" value="-50.0"/>
+      <param name="maxborder" value="50.0"/>
+      <param name="mindeltas" value="0.0"/>
+      <param name="minionsmatched" value="0"/>
+      <param name="uniquexl" value="true"/>
+      <param name="no_qvalues" value="true"/>
+      <param name="minscore" value="-10.0"/>
+      <param name="binsize" value="0.1"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_idXML_FLAG,out_mzIdentML_FLAG,out_xquest_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="4">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="XFDR_test_in2.xquest.xml"/>
+      <output name="out_idXML" file="XFDR_test_out3_temp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <output name="out_mzIdentML" file="XFDR_test_out3_temp.mzid" compare="sim_size" delta="5700" ftype="mzid"/>
+      <output name="out_xquest" file="XFDR_test_out3_temp.xquest.xml" compare="sim_size" delta="5700" ftype="xquest.xml"/>
+      <param name="decoy_string" value="DECOY_"/>
+      <param name="minborder" value="-50.0"/>
+      <param name="maxborder" value="50.0"/>
+      <param name="mindeltas" value="0.0"/>
+      <param name="minionsmatched" value="0"/>
+      <param name="uniquexl" value="false"/>
+      <param name="no_qvalues" value="false"/>
+      <param name="minscore" value="0.0"/>
+      <param name="binsize" value="0.1"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_idXML_FLAG,out_mzIdentML_FLAG,out_xquest_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="4">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="XFDR_test_in2.xquest.xml"/>
+      <output name="out_idXML" file="XFDR_test_out4_temp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <output name="out_mzIdentML" file="XFDR_test_out4_temp.mzid" compare="sim_size" delta="5700" ftype="mzid"/>
+      <output name="out_xquest" file="XFDR_test_out4_temp.xquest.xml" compare="sim_size" delta="5700" ftype="xquest.xml"/>
+      <param name="decoy_string" value="DECOY_"/>
+      <param name="minborder" value="-3.0"/>
+      <param name="maxborder" value="3.0"/>
+      <param name="mindeltas" value="0.0"/>
+      <param name="minionsmatched" value="0"/>
+      <param name="uniquexl" value="false"/>
+      <param name="no_qvalues" value="false"/>
+      <param name="minscore" value="-10.0"/>
+      <param name="binsize" value="0.1"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_idXML_FLAG,out_mzIdentML_FLAG,out_xquest_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="4">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="XFDR_test_in3.xquest.xml"/>
+      <output name="out_idXML" file="XFDR_test_out5_temp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <output name="out_mzIdentML" file="XFDR_test_out5_temp.mzid" compare="sim_size" delta="5700" ftype="mzid"/>
+      <output name="out_xquest" file="XFDR_test_out5_temp.xquest.xml" compare="sim_size" delta="5700" ftype="xquest.xml"/>
+      <param name="decoy_string" value="DECOY_"/>
+      <param name="minborder" value="-3.0"/>
+      <param name="maxborder" value="3.0"/>
+      <param name="mindeltas" value="0.0"/>
+      <param name="minionsmatched" value="0"/>
+      <param name="uniquexl" value="false"/>
+      <param name="no_qvalues" value="false"/>
+      <param name="minscore" value="-10.0"/>
+      <param name="binsize" value="0.1"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_idXML_FLAG,out_mzIdentML_FLAG,out_xquest_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="XFDR_test_in4.idXML"/>
+      <output name="out_idXML" file="XFDR_test_out6_temp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="decoy_string" value="DECOY_"/>
+      <param name="minborder" value="-50.0"/>
+      <param name="maxborder" value="50.0"/>
+      <param name="mindeltas" value="0.0"/>
+      <param name="minionsmatched" value="0"/>
+      <param name="uniquexl" value="false"/>
+      <param name="no_qvalues" value="false"/>
+      <param name="minscore" value="-10.0"/>
+      <param name="binsize" value="0.1"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_idXML_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="4">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="XFDR_test_in2.xquest.xml"/>
+      <output name="out_idXML" file="XFDR_test_out7_temp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <output name="out_mzIdentML" file="XFDR_test_out7_temp.mzid" compare="sim_size" delta="5700" ftype="mzid"/>
+      <output name="out_xquest" file="XFDR_test_out7_temp.xquest.xml" compare="sim_size" delta="5700" ftype="xquest.xml"/>
+      <param name="decoy_string" value="DECOY_"/>
+      <param name="minborder" value="-50.0"/>
+      <param name="maxborder" value="50.0"/>
+      <param name="mindeltas" value="0.0"/>
+      <param name="minionsmatched" value="0"/>
+      <param name="uniquexl" value="true"/>
+      <param name="no_qvalues" value="false"/>
+      <param name="minscore" value="0.0"/>
+      <param name="binsize" value="0.1"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_idXML_FLAG,out_mzIdentML_FLAG,out_xquest_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+  <xml name="autotest_XMLValidator">
+</xml>
+  <xml name="autotest_XTandemAdapter">
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="spectra.mzML"/>
+      <output name="out" file="XTandemAdapter_1_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="database" value="proteins.fasta"/>
+      <param name="default_config_file" value="CHEMISTRY/XTandem_default_input.xml"/>
+      <param name="ignore_adapter_param" value="false"/>
+      <param name="precursor_mass_tolerance" value="5.0"/>
+      <param name="fragment_mass_tolerance" value="0.3"/>
+      <param name="precursor_error_units" value="ppm"/>
+      <param name="fragment_error_units" value="Da"/>
+      <param name="max_precursor_charge" value="0"/>
+      <param name="no_isotope_error" value="false"/>
+      <param name="fixed_modifications" value=""/>
+      <param name="variable_modifications" value="Oxidation (M)"/>
+      <param name="minimum_fragment_mz" value="150.0"/>
+      <param name="enzyme" value="Trypsin"/>
+      <param name="missed_cleavages" value="1"/>
+      <param name="semi_cleavage" value="false"/>
+      <param name="output_results" value="all"/>
+      <param name="max_valid_expect" value="0.1"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="spectra.mzML"/>
+      <output name="out" file="XTandemAdapter_2_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="database" value="proteins.fasta"/>
+      <param name="default_config_file" value="CHEMISTRY/XTandem_default_input.xml"/>
+      <param name="ignore_adapter_param" value="false"/>
+      <param name="precursor_mass_tolerance" value="5.0"/>
+      <param name="fragment_mass_tolerance" value="0.3"/>
+      <param name="precursor_error_units" value="ppm"/>
+      <param name="fragment_error_units" value="Da"/>
+      <param name="max_precursor_charge" value="0"/>
+      <param name="no_isotope_error" value="false"/>
+      <param name="fixed_modifications" value=""/>
+      <param name="variable_modifications" value="Oxidation (M)"/>
+      <param name="minimum_fragment_mz" value="150.0"/>
+      <param name="enzyme" value="Trypsin"/>
+      <param name="missed_cleavages" value="1"/>
+      <param name="semi_cleavage" value="false"/>
+      <param name="output_results" value="valid"/>
+      <param name="max_valid_expect" value="1e-14"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+    <test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="spectra.mzML"/>
+      <output name="out" file="XTandemAdapter_3_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="database" value="proteinslong.fasta"/>
+      <param name="default_config_file" value="CHEMISTRY/XTandem_default_input.xml"/>
+      <param name="ignore_adapter_param" value="false"/>
+      <param name="precursor_mass_tolerance" value="5.0"/>
+      <param name="fragment_mass_tolerance" value="0.3"/>
+      <param name="precursor_error_units" value="ppm"/>
+      <param name="fragment_error_units" value="Da"/>
+      <param name="max_precursor_charge" value="0"/>
+      <param name="no_isotope_error" value="false"/>
+      <param name="fixed_modifications" value=""/>
+      <param name="variable_modifications" value="Oxidation (M)"/>
+      <param name="minimum_fragment_mz" value="150.0"/>
+      <param name="enzyme" value="Trypsin"/>
+      <param name="missed_cleavages" value="1"/>
+      <param name="semi_cleavage" value="false"/>
+      <param name="output_results" value="all"/>
+      <param name="max_valid_expect" value="0.1"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test>
+  </xml>
+<xml name="autotest_PTPredict"/><xml name="autotest_InclusionExclusionListCreator"/><xml name="autotest_RTPredict"/><xml name="autotest_ProteomicsLFQ"/><xml name="autotest_IDDecoyProbability"/><xml name="autotest_InspectAdapter"/></macros>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/macros_discarded_auto.xml	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,378 @@
+
+<xml name="manutest_OpenSwathFileSplitter">
+<test expect_num_outputs="2">
+  <conditional name="adv_opts_cond">
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="force" value="false"/>
+    <param name="test" value="true"/>
+  </conditional>
+  <param name="in" value="OpenSwathWorkflow_1_input.mzML"/>
+  <output_collection name="outputDirectory" count=""/>
+  <output name="out_qc" file="OpenSwathFileSplitter_1.json" compare="sim_size" delta="5700" ftype="json"/>
+  <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_qc_FLAG"/>
+  <output name="ctd_out" ftype="xml">
+    <assert_contents>
+      <is_valid_xml/>
+    </assert_contents>
+  </output>
+</test></xml>
+<xml name="manutest_IDRipper">
+<test expect_num_outputs="1">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDRipper_1_input.idXML"/>
+      <output_collection name="out_path" count=""/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test><test expect_num_outputs="1">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDRipper_2_input.idXML"/>
+      <output_collection name="out_path" count=""/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test><test expect_num_outputs="1">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="IDRipper_3_output.idXML"/>
+      <output_collection name="out_path" count=""/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test></xml>
+<xml name="manutest_MzMLSplitter">
+<test expect_num_outputs="1">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_1_input.mzML"/>
+      <output_collection name="out" count=""/>
+      <param name="parts" value="2"/>
+      <param name="size" value="0"/>
+      <param name="unit" value="MB"/>
+      <param name="no_chrom" value="false"/>
+      <param name="no_spec" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test><test expect_num_outputs="1">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="FileFilter_1_input.mzML"/>
+      <output_collection name="out" count=""/>
+      <param name="parts" value="1"/>
+      <param name="size" value="40"/>
+      <param name="unit" value="KB"/>
+      <param name="no_chrom" value="false"/>
+      <param name="no_spec" value="false"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test></xml>
+<xml name="manutest_MSFraggerAdapter">
+<test expect_num_outputs="3">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="java_heapmemory" value="2600"/>
+      <param name="in" value="spectra.mzML"/>
+      <output name="out" file="MSFraggerAdapter_7_out_tmp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <output name="opt_out" file="MSFraggerAdapter_7_opt_out_tmp.pepXML" compare="sim_size" delta="5700" ftype="pepxml"/>
+      <param name="database" value="proteins.fasta"/>
+      <section name="tolerance">
+        <param name="precursor_mass_tolerance" value="20.0"/>
+        <param name="precursor_mass_unit" value="ppm"/>
+        <param name="precursor_true_tolerance" value="0.0"/>
+        <param name="precursor_true_unit" value="ppm"/>
+        <param name="fragment_mass_tolerance" value="20.0"/>
+        <param name="fragment_mass_unit" value="ppm"/>
+        <param name="isotope_error" value="0"/>
+      </section>
+      <section name="digest">
+        <param name="search_enzyme_name" value="Trypsin"/>
+        <param name="search_enzyme_cutafter" value="KR"/>
+        <param name="search_enzyme_nocutbefore" value="P"/>
+        <param name="num_enzyme_termini" value="semi"/>
+        <param name="allowed_missed_cleavage" value="2"/>
+        <param name="min_length" value="7"/>
+        <param name="max_length" value="64"/>
+        <param name="mass_range_min" value="500.0"/>
+        <param name="mass_range_max" value="5000.0"/>
+      </section>
+      <section name="varmod">
+        <param name="clip_nterm_m" value="false"/>
+        <param name="masses" value=""/>
+        <param name="syntaxes" value=""/>
+        <param name="enable_common" value="true"/>
+        <param name="not_allow_multiple_variable_mods_on_residue" value="false"/>
+        <param name="max_variable_mods_per_mod" value="2"/>
+        <param name="max_variable_mods_combinations" value="5000"/>
+      </section>
+      <section name="spectrum">
+        <param name="minimum_peaks" value="10"/>
+        <param name="use_topn_peaks" value="50"/>
+        <param name="minimum_ratio" value="0.0"/>
+        <param name="clear_mz_range_min" value="0.0"/>
+        <param name="clear_mz_range_max" value="0.0"/>
+        <param name="max_fragment_charge" value="2"/>
+        <param name="override_charge" value="false"/>
+        <param name="precursor_charge_min" value="1"/>
+        <param name="precursor_charge_max" value="4"/>
+      </section>
+      <section name="search">
+        <param name="track_zero_topn" value="0"/>
+        <param name="zero_bin_accept_expect" value="0.0"/>
+        <param name="zero_bin_mult_expect" value="1.0"/>
+        <param name="add_topn_complementary" value="0"/>
+        <param name="min_fragments_modeling" value="3"/>
+        <param name="min_matched_fragments" value="4"/>
+        <param name="output_report_topn" value="1"/>
+        <param name="output_max_expect" value="50.0"/>
+      </section>
+      <section name="statmod">
+        <param name="add_cterm_peptide" value="0.0"/>
+        <param name="add_nterm_peptide" value="0.0"/>
+        <param name="add_cterm_protein" value="0.0"/>
+        <param name="add_nterm_protein" value="0.0"/>
+        <param name="add_G_glycine" value="0.0"/>
+        <param name="add_A_alanine" value="0.0"/>
+        <param name="add_S_serine" value="0.0"/>
+        <param name="add_P_proline" value="0.0"/>
+        <param name="add_V_valine" value="0.0"/>
+        <param name="add_T_threonine" value="0.0"/>
+        <param name="add_C_cysteine" value="57.021464"/>
+        <param name="add_L_leucine" value="0.0"/>
+        <param name="add_I_isoleucine" value="0.0"/>
+        <param name="add_N_asparagine" value="0.0"/>
+        <param name="add_D_aspartic_acid" value="0.0"/>
+        <param name="add_Q_glutamine" value="0.0"/>
+        <param name="add_K_lysine" value="0.0"/>
+        <param name="add_E_glutamic_acid" value="0.0"/>
+        <param name="add_M_methionine" value="0.0"/>
+        <param name="add_H_histidine" value="0.0"/>
+        <param name="add_F_phenylalanine" value="0.0"/>
+        <param name="add_R_arginine" value="0.0"/>
+        <param name="add_Y_tyrosine" value="0.0"/>
+        <param name="add_W_tryptophan" value="0.0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,opt_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test><test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="java_heapmemory" value="2600"/>
+      <param name="in" value="spectra_comet.mzML"/>
+      <output name="out" file="MSFraggerAdapter_8_out_tmp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="database" value="proteins.fasta"/>
+      <section name="tolerance">
+        <param name="precursor_mass_tolerance" value="20.0"/>
+        <param name="precursor_mass_unit" value="ppm"/>
+        <param name="precursor_true_tolerance" value="0.0"/>
+        <param name="precursor_true_unit" value="ppm"/>
+        <param name="fragment_mass_tolerance" value="20.0"/>
+        <param name="fragment_mass_unit" value="ppm"/>
+        <param name="isotope_error" value="0"/>
+      </section>
+      <section name="digest">
+        <param name="search_enzyme_name" value="Trypsin"/>
+        <param name="search_enzyme_cutafter" value="KR"/>
+        <param name="search_enzyme_nocutbefore" value="P"/>
+        <param name="num_enzyme_termini" value="semi"/>
+        <param name="allowed_missed_cleavage" value="2"/>
+        <param name="min_length" value="7"/>
+        <param name="max_length" value="64"/>
+        <param name="mass_range_min" value="500.0"/>
+        <param name="mass_range_max" value="5000.0"/>
+      </section>
+      <section name="varmod">
+        <param name="clip_nterm_m" value="false"/>
+        <param name="masses" value=""/>
+        <param name="syntaxes" value=""/>
+        <param name="enable_common" value="true"/>
+        <param name="not_allow_multiple_variable_mods_on_residue" value="false"/>
+        <param name="max_variable_mods_per_mod" value="2"/>
+        <param name="max_variable_mods_combinations" value="5000"/>
+      </section>
+      <section name="spectrum">
+        <param name="minimum_peaks" value="10"/>
+        <param name="use_topn_peaks" value="50"/>
+        <param name="minimum_ratio" value="0.0"/>
+        <param name="clear_mz_range_min" value="0.0"/>
+        <param name="clear_mz_range_max" value="0.0"/>
+        <param name="max_fragment_charge" value="2"/>
+        <param name="override_charge" value="false"/>
+        <param name="precursor_charge_min" value="1"/>
+        <param name="precursor_charge_max" value="4"/>
+      </section>
+      <section name="search">
+        <param name="track_zero_topn" value="0"/>
+        <param name="zero_bin_accept_expect" value="0.0"/>
+        <param name="zero_bin_mult_expect" value="1.0"/>
+        <param name="add_topn_complementary" value="0"/>
+        <param name="min_fragments_modeling" value="3"/>
+        <param name="min_matched_fragments" value="4"/>
+        <param name="output_report_topn" value="1"/>
+        <param name="output_max_expect" value="50.0"/>
+      </section>
+      <section name="statmod">
+        <param name="add_cterm_peptide" value="0.0"/>
+        <param name="add_nterm_peptide" value="0.0"/>
+        <param name="add_cterm_protein" value="0.0"/>
+        <param name="add_nterm_protein" value="0.0"/>
+        <param name="add_G_glycine" value="0.0"/>
+        <param name="add_A_alanine" value="0.0"/>
+        <param name="add_S_serine" value="0.0"/>
+        <param name="add_P_proline" value="0.0"/>
+        <param name="add_V_valine" value="0.0"/>
+        <param name="add_T_threonine" value="0.0"/>
+        <param name="add_C_cysteine" value="57.021464"/>
+        <param name="add_L_leucine" value="0.0"/>
+        <param name="add_I_isoleucine" value="0.0"/>
+        <param name="add_N_asparagine" value="0.0"/>
+        <param name="add_D_aspartic_acid" value="0.0"/>
+        <param name="add_Q_glutamine" value="0.0"/>
+        <param name="add_K_lysine" value="0.0"/>
+        <param name="add_E_glutamic_acid" value="0.0"/>
+        <param name="add_M_methionine" value="0.0"/>
+        <param name="add_H_histidine" value="0.0"/>
+        <param name="add_F_phenylalanine" value="0.0"/>
+        <param name="add_R_arginine" value="0.0"/>
+        <param name="add_Y_tyrosine" value="0.0"/>
+        <param name="add_W_tryptophan" value="0.0"/>
+      </section>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test></xml>
+<xml name="manutest_MaRaClusterAdapter">
+<test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="verbose" value="2"/>
+        <param name="precursor_tolerance" value="20.0"/>
+        <param name="precursor_tolerance_units" value="ppm"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="MaRaClusterAdapter_1_in_1.mzML,MaRaClusterAdapter_1_in_2.mzML"/>
+      <param name="id_in" value="MaRaClusterAdapter_1_in_3.idXML"/>
+      <output name="out" file="MaRaClusterAdapter_2_out_1.tmp.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="pcut" value="-10.0"/>
+      <param name="min_cluster_size" value="1"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG,out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test></xml>
+<xml name="manutest_NovorAdapter">
+<test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="in" value="NovorAdapter_in.mzML"/>
+      <output name="out" file="NovorAdapter_1_out.idXML" compare="sim_size" delta="5700" ftype="idxml"/>
+      <param name="enzyme" value="Trypsin"/>
+      <param name="fragmentation" value="CID"/>
+      <param name="massAnalyzer" value="Trap"/>
+      <param name="fragment_mass_tolerance" value="0.5"/>
+      <param name="precursor_mass_tolerance" value="15.0"/>
+      <param name="precursor_error_units" value="ppm"/>
+      <param name="variable_modifications" value="Acetyl (K)"/>
+      <param name="fixed_modifications" value="Carbamidomethyl (C)"/>
+      <param name="forbiddenResidues" value="I"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test></xml>
+<xml name="manutest_SpectraSTSearchAdapter">
+<test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="use_isotopically_averaged_mass" value="false"/>
+        <param name="use_all_charge_states" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="spectra_files" value="SpectrastAdapter_1_hack.mzML"/>
+      <param name="output_files_type" value="pep.xml"/>
+      <output_collection name="output_files" count="1"/>
+      <param name="library_file" value="testLib.splib" ftype="splib"/>
+      <param name="sequence_database_type" value="AA"/>
+      <param name="precursor_mz_tolerance" value="3.0"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test><test expect_num_outputs="2">
+      <conditional name="adv_opts_cond">
+        <param name="adv_opts_selector" value="advanced"/>
+        <param name="use_isotopically_averaged_mass" value="false"/>
+        <param name="use_all_charge_states" value="false"/>
+        <param name="force" value="false"/>
+        <param name="test" value="true"/>
+      </conditional>
+      <param name="spectra_files" value="SpectrastAdapter_1_hack.mzML"/>
+      <param name="output_files_type" value="tsv"/>
+      <output_collection name="output_files" count="1"/>
+      <param name="library_file" value="testLib.splib" ftype="splib"/>
+      <param name="sequence_database_type" value="AA"/>
+      <param name="precursor_mz_tolerance" value="3.0"/>
+      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+      <output name="ctd_out" ftype="xml">
+        <assert_contents>
+          <is_valid_xml/>
+        </assert_contents>
+      </output>
+    </test></xml>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/macros_test.xml	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,545 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<macros>
+    
+<!-- a copy of a FileConverter test without the advanced options used
+     in order to check if this works (all other tests enable advanced) -->
+<xml name="manutest_FileConverter">
+<test expect_num_outputs="1">
+  <param name="in" value="FileConverter_1_input.mzData"/>
+  <output name="out" file="FileConverter_1_output.mzML" compare="sim_size" delta="5700" ftype="mzml"/>
+  <param name="out_type" value="mzML"/>
+</test>
+</xml>
+<!-- tests contributed by the galaxyproteomics community -->
+<xml name="manutest_ClusterMassTracesByPrecursor">
+  <test expect_num_outputs="1"><!-- test with arbitarily chosen consensusXML -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in_ms1" ftype="consensusxml" value="ConsensusMapNormalizer_input.consensusXML"/>
+    <param name="in_swath" ftype="consensusxml" value="ConsensusMapNormalizer_input.consensusXML"/>
+    <output name="out" ftype="mzml" value="ClusterMassTracesByPrecursor.mzml"/>
+  </test>
+</xml>
+<xml name="manutest_ClusterMassTraces"> 
+  <test expect_num_outputs="1"><!-- test with arbitarily chosen consensusXML -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="consensusxml" value="ConsensusMapNormalizer_input.consensusXML"/>
+    <output name="out" ftype="mzml" value="ClusterMassTraces.mzml"/>
+  </test>
+</xml>
+<xml name="manutest_CVInspector">
+  <!-- test with https://raw.githubusercontent.com/HUPO-PSI/mzIdentML/master/cv/XLMOD.obo listed here https://www.psidev.info/groups/controlled-vocabularies, mapping file from share/OpenMS/MAPPING/ms-mapping.xml, see currently not working, see: https://github.com/OpenMS/OpenMS/pull/4425 -->
+  <test expect_num_outputs="1">
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="cv_files" ftype="obo" value="CHEMISTRY/XLMOD.obo"/>
+    <param name="cv_names" value="XLMOD"/>
+    <param name="mapping_file" value="MAPPING/ms-mapping.xml"/>
+    <param name="OPTIONAL_OUTPUTS" value="html_FLAG"/>
+    <output name="html" ftype="html" value="CVInspector.html"/>
+  </test>
+</xml>
+<xml name="manutest_DeMeanderize">
+  <test expect_num_outputs="1"><!-- test with the output of a MSsimulator output generated by a test below -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="mzml" value="MSsimulator_MALDI.mzml"/>
+	<output name="out" ftype="mzml" value="DeMeanderize.mzml"/>
+  </test>
+</xml>
+<xml name="manutest_Digestor">
+  <test expect_num_outputs="1"><!-- just using some random fasta, in contrast to DigestorMotif idXML/fasta output possible, testing for the non-default fasta option -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="fasta" value="random.fa"/>
+    <output name="out" ftype="fasta" value="Digestor.fasta"/>
+    <param name="out_type" value="fasta"/>
+  </test>
+</xml>
+<xml name="manutest_EICExtractor">
+  <test expect_num_outputs="1"><!-- just using some random test data -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" value="spectra.mzML"/>
+    <param name="pos" ftype="edta" value="FileConverter_10_input.edta"/>
+    <output name="out" ftype="csv" value="EICExtractor.csv" lines_diff="2"/>
+  </test>
+</xml>
+<xml name="manutest_ERPairFinder">
+  <!-- TODO -->
+</xml>
+<xml name="manutest_FeatureFinderIsotopeWavelet">
+  <test expect_num_outputs="1"><!--just use the input of another FeatureFinder -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" value="FeatureFinderCentroided_1_input.mzML"/>
+    <output name="out" value="FeatureFinderIsotopeWavelet.featureXML" compare="sim_size"/>
+  </test>
+</xml>
+<xml name="manutest_FFEval">
+  <test expect_num_outputs="2"><!-- comparing an arbitarty FeatureFinder output with itself -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" value="FeatureFinderCentroided_1_output.featureXML"/>
+    <param name="truth" value="FeatureFinderCentroided_1_output.featureXML"/>
+    <param name="OPTIONAL_OUTPUTS" value="out_FLAG,out_roc_FLAG"/>
+    <output name="out" value="FFEval.featureXML" compare="sim_size"/>
+	<output name="out_roc" value="FFEval_roc.csv" ftype="csv"/>
+  </test>
+</xml>
+<xml name="manutest_IDExtractor">
+  <test expect_num_outputs="1"><!--  -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="idxml" value="MSGFPlusAdapter_1_out.idXML"/>
+    <param name="best_hits" value="true"/>
+    <param name="number_of_peptides" value="1"/>
+    <output name="out" value="IDExtractor.idXML" compare="sim_size"/>
+  </test>
+</xml>
+<!-- adapted from macros_discarded_auto.xml (due to prefix-output)-->
+<xml name="manutest_IDRipper"> 
+<test expect_num_outputs="2">
+  <conditional name="adv_opts_cond">
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="force" value="false"/>
+    <param name="test" value="true"/>
+  </conditional>
+  <param name="in" value="IDRipper_1_input.idXML"/>
+    <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+  <output_collection name="out_path" count="2">
+    <element name="IDRipper_1_output_1" file="IDRipper_1_output1.idXML" ftype="idxml" compare="sim_size" delta="5700"/>
+    <element name="IDRipper_1_output_2" file="IDRipper_1_output2.idXML" ftype="idxml" compare="sim_size" delta="5700"/>
+  </output_collection>
+  <output name="ctd_out" ftype="xml">
+    <assert_contents>
+      <is_valid_xml/>
+    </assert_contents>
+  </output>
+</test>
+<test expect_num_outputs="2">
+  <conditional name="adv_opts_cond">
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="force" value="false"/>
+    <param name="test" value="true"/>
+  </conditional>
+  <param name="in" value="IDRipper_2_input.idXML"/>
+  <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+  <output_collection name="out_path" count="2">
+    <element name="IDRipper_2_output1" file="IDRipper_2_output1.idXML" ftype="idxml"/>
+    <element name="IDRipper_2_output2" file="IDRipper_2_output2.idXML" ftype="idxml"/>
+  </output_collection>
+  <output name="ctd_out" ftype="xml">
+    <assert_contents>
+      <is_valid_xml/>
+    </assert_contents>
+  </output>
+</test>
+<test expect_num_outputs="2">
+  <conditional name="adv_opts_cond">
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="force" value="false"/>
+    <param name="test" value="true"/>
+  </conditional>
+  <param name="in" value="IDRipper_3_output.idXML"/>
+  <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+  <output_collection name="out_path" count="2">
+    <element name="IDRipper_3_input1" file="IDRipper_3_input1.idXML" ftype="idxml"/>
+    <element name="IDRipper_3_input2" file="IDRipper_3_input2.idXML" ftype="idxml"/>
+  </output_collection>
+  <output name="ctd_out" ftype="xml">
+    <assert_contents>
+      <is_valid_xml/>
+    </assert_contents>
+  </output>
+</test>
+</xml>
+<xml name="manutest_LabeledEval">
+  <test expect_num_outputs="1"><!-- comparing an arbitarty featureXML that has a corresponding consensusXML -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" value="FeatureLinkerLabeled_1_input.featureXML"/>
+    <param name="truth" value="FeatureLinkerLabeled_1_output.consensusXML"/>
+    <output name="stdout" value="LabeledEval.txt" compare="sim_size"/>
+  </test>
+</xml>
+<xml name="manutest_MapStatistics">
+  <test expect_num_outputs="1"><!-- test with a featureXML input  -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="featurexml" value="SiriusAdapter_3_input.featureXML"/>
+    <output name="out" ftype="txt" value="MapStatistics.txt"/>
+  </test>
+  <test expect_num_outputs="1"><!-- test with a consensusxml input -->
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="consensusxml" value="ConsensusXMLFile_1.consensusXML"/>
+    <output name="out" ftype="txt" value="MapStatistics2.txt"/>
+  </test>
+</xml>
+<xml name="manutest_MetaboliteSpectralMatcher">
+    <!-- same input as used in the MSGF+Adapter, should use database CHEMISTRY/MetaboliteSpectralDB.mzML -->
+  <test expect_num_outputs="1"><!-- same input as used in the MSGF+Adapter, used as input and database -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="mzml" value="spectra.mzML"/>
+    <param name="database" value="MetaboliteSpectralDB.mzML"/>
+    <output name="out" ftype="mztab" value="MetaboliteSpectralMatcher.mzTab"/>
+  </test>
+</xml>
+<xml name="manutest_MRMPairFinder">
+  <!-- TODO no idea about a useful input for pair_in -->
+</xml>
+<xml name="manutest_MSSimulator">
+  <test expect_num_outputs="1"><!-- same input as used in the MSGF+Adapter -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="fasta" value="DecoyDatabase_1.fasta"/>
+    <param name="OPTIONAL_OUTPUTS" value="out_FLAG"/>
+    <output name="out" ftype="mzml" value="MSsimulator.mzml" compare="sim_size" delta="1000000" delta_frac="0.1"/>
+    <param name="algorithm|RandomNumberGenerators|biological" value="reproducible"/>
+    <param name="algorithm|RandomNumberGenerators|technical" value="reproducible"/>
+  </test>
+  <test expect_num_outputs="1"><!-- same input as used in the MSGF+Adapter generate MALDI output for use in the test for DeMeanderize -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="fasta" value="DecoyDatabase_1.fasta"/>
+    <param name="OPTIONAL_OUTPUTS" value="out_FLAG"/>
+    <output name="out" ftype="mzml" value="MSsimulator_MALDI.mzml" compare="sim_size" delta="1000000" delta_frac="0.1"/>
+    <param name="algorithm|RandomNumberGenerators|biological" value="reproducible"/>
+    <param name="algorithm|RandomNumberGenerators|technical" value="reproducible"/>
+    <param name="algorithm|MSSim|Global|ionization_type" value="MALDI"/>
+  </test>
+</xml>
+<!-- adapted from macros_discarded_auto.xml (due to prefix-output)-->
+<xml name="manutest_MzMLSplitter">
+<test expect_num_outputs="2">
+  <conditional name="adv_opts_cond">
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="force" value="false"/>
+    <param name="test" value="true"/>
+  </conditional>
+  <param name="in" value="FileFilter_1_input.mzML"/>
+  <param name="parts" value="2"/>
+  <param name="size" value="0"/>
+  <param name="unit" value="MB"/>
+  <param name="no_chrom" value="false"/>
+  <param name="no_spec" value="false"/>
+  <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+  <output name="ctd_out" ftype="xml">
+    <assert_contents>
+      <is_valid_xml/>
+    </assert_contents>
+  </output>
+  <output_collection name="out" type="list" count="2">
+    <element name="part1of2" file="MzMLSplitter_1_output_part1of2.mzML" ftype="mzml"/>
+    <element name="part2of2" file="MzMLSplitter_1_output_part2of2.mzML" ftype="mzml"/>
+  </output_collection>
+</test>
+<test expect_num_outputs="2">
+  <conditional name="adv_opts_cond">
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="force" value="false"/>
+    <param name="test" value="true"/>
+  </conditional>
+  <param name="in" value="FileFilter_1_input.mzML"/>
+  <param name="parts" value="1"/>
+  <param name="size" value="40"/>
+  <param name="unit" value="KB"/>
+  <param name="no_chrom" value="false"/>
+  <param name="no_spec" value="false"/>
+  <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
+  <output name="ctd_out" ftype="xml">
+    <assert_contents>
+      <is_valid_xml/>
+    </assert_contents>
+  </output>
+  <output_collection name="out" type="list" count="2">
+    <element name="part1of2" file="MzMLSplitter_2_output_part1of2.mzML" ftype="mzml"/>
+    <element name="part2of2" file="MzMLSplitter_2_output_part2of2.mzML" ftype="mzml"/>
+  </output_collection>
+</test>
+</xml>
+<xml name="manutest_OpenSwathDIAPreScoring">
+  <!-- data from a test that included all the needed test files -->
+  <test>
+    <param name="tr" value="OpenSwathWorkflow_1_input.TraML"/>
+    <param name="swath_files" value="OpenSwathAnalyzer_2_swathfile.mzML"/>
+    <output_collection name="output_files" count="1">
+      <element name="OpenSwathAnalyzer_2_swathfile_mzML.tsv" file="OpenSwathDIAPreScoring.tsv" ftype="tabular"/>
+    </output_collection>
+  </test>
+  
+  <!-- test with two inputs (actually the same file .. symlinked) -->
+  <test>
+    <param name="tr" value="OpenSwathWorkflow_1_input.TraML"/>
+    <param name="swath_files" value="OpenSwathDIAPreScoring_in1.mzML,OpenSwathDIAPreScoring_in2.mzML"/>
+    <output_collection name="output_files" count="2">
+      <element name="OpenSwathDIAPreScoring_in1.tsv" file="OpenSwathDIAPreScoring.tsv" ftype="tabular"/>
+      <element name="OpenSwathDIAPreScoring_in1.tsv" file="OpenSwathDIAPreScoring.tsv" ftype="tabular"/>
+    </output_collection>
+  </test>
+</xml>
+<!-- adapted from macros_discarded_auto.xml (due to prefix-output)-->
+<xml name="manutest_OpenSwathFileSplitter">
+  <test expect_num_outputs="3">
+    <conditional name="adv_opts_cond">
+      <param name="adv_opts_selector" value="advanced"/>
+      <param name="force" value="false"/>
+      <param name="test" value="true"/>
+    </conditional>
+    <param name="in" value="OpenSwathWorkflow_1_input.mzML"/>
+    <param name="OPTIONAL_OUTPUTS" value="out_qc_FLAG,ctd_out_FLAG"/>
+    <output_collection name="outputDirectory" count="6">
+      <element name="OpenSwathWorkflow_1_input_mzML_4" file="openswath_tmpfile_4.mzML" ftype="mzml"/>
+      <element name="OpenSwathWorkflow_1_input_mzML_ms1" file="openswath_tmpfile_ms1.mzML" ftype="mzml"/>
+    </output_collection>
+    <output name="out_qc" file="OpenSwathFileSplitter_1.json" compare="sim_size" delta="5700" ftype="json"/>
+    <output name="ctd_out" ftype="xml">
+      <assert_contents>
+        <is_valid_xml/>
+      </assert_contents>
+    </output>
+  </test>
+</xml>
+<xml name="manutest_OpenSwathRewriteToFeatureXML">
+  <test expect_num_outputs="1"><!-- same input as used in the MSGF+Adapter -->
+    <param name="featureXML" value="OpenSwathFeatureXMLToTSV_input.featureXML"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <output name="out" ftype="featurexml" value="OpenSwathRewriteToFeatureXML.featureXML"/>
+  </test>
+</xml>
+<xml name="manutest_PepNovoAdapter">
+  <test expect_num_outputs="1"><!-- adapted from (dysfunctional) OMS 3rdParty tests (but model selection
+             unclear https://github.com/OpenMS/OpenMS/issues/4719)-->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="mzml" value="PepNovo_1.mzML"/>
+    <output name="out" ftype="idxml" value="PepNovoAdapter_3_output.idXML"/>
+    <param name="model" value="LTQ_COMP"/>
+  </test>
+  <test expect_num_outputs="1"><!-- same input as used in the MSGF+Adapter -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="mzml" value="PepNovo_1.mzML"/>
+    <output name="out" ftype="idxml" value="PepNovoAdapter_3_output.idXML"/>
+    <param name="model" value="LTQ_COMP"/>
+  </test>
+</xml>
+<xml name="manutest_PhosphoScoring">
+  <test expect_num_outputs="1"><!-- same input as used in the MSGF+Adapter -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="mzml" value="spectra.mzML"/>
+    <param name="id" ftype="idxml" value="MSGFPlusAdapter_1_out1.tmp"/>
+    <output name="out" ftype="idxml" value="PhosphoScoring.idxml" compare="sim_size" delta="5700"/>
+  </test>
+</xml>
+<xml name="manutest_PSMFeatureExtractor">
+  <test expect_num_outputs="1"><!-- using the idXML outputs of two SearchAdapters that should be compatible -->
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="idxml" value="MSGFPlusAdapter_1_out.idXML,XTandemAdapter_1_out.idXML"/>
+    <param name="multiple_search_engines" value="true"/>
+    <param name="adv_opts_cond|adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|skip_db_check" value="true"/>
+    <param name="out_type" value="idxml"/>
+    <output name="out" ftype="idxml" value="PSMFeatureExtractor.idxml" compare="sim_size" delta="500"/>
+  </test>
+  <test expect_num_outputs="1"><!-- using the idXML outputs of two SearchAdapters that should be compatible -->
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="idxml" value="MSGFPlusAdapter_1_out.idXML,XTandemAdapter_1_out.idXML"/>
+    <param name="multiple_search_engines" value="true"/>
+    <param name="adv_opts_cond|adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|skip_db_check" value="true"/>
+    <param name="out_type" value="mzid"/>
+    <output name="out" ftype="mzid" value="PSMFeatureExtractor.mzid" compare="sim_size" delta="500"/>
+  </test>
+</xml>
+<xml name="manutest_QCCalculator">
+  <test expect_num_outputs="1"><!-- took test data from another test w mzML input -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="mzml" value="OpenPepXL_input.mzML"/>
+    <output name="out" ftype="qcml" value="QCCalculator1.qcML" compare="sim_size" delta="250"/>
+  </test>
+  <test expect_num_outputs="1"><!-- took test data from another test w mzML,idXML,consensusXML input -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="mzml" value="OpenPepXL_input.mzML"/>
+    <param name="id" ftype="idxml" value="OpenPepXL_output.idXML"/>
+    <param name="consensus" ftype="consensusxml" value="OpenPepXL_input.consensusXML"/>
+    <output name="out" ftype="qcml" value="QCCalculator2.qcML" compare="sim_size" delta="250"/>
+  </test>
+  <test expect_num_outputs="1"><!-- took test data from another test w mzML,idXML,featureXML input -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="mzml" value="IDMapper_4_input.mzML"/>
+    <param name="id" ftype="idxml" value="IDMapper_4_input.idXML"/>
+    <param name="feature" ftype="featurexml" value="IDMapper_4_input.featureXML"/>
+    <output name="out" ftype="qcml" value="QCCalculator3.qcML" compare="sim_size" delta="250"/>
+  </test>
+</xml>
+<xml name="manutest_QCEmbedder">
+    <!--TODO-->
+</xml>
+<xml name="manutest_QCExporter">
+    <!--TODO-->
+</xml>
+<xml name="manutest_QCExtractor">
+    <!--TODO-->
+</xml>
+<xml name="manutest_QCImporter">
+    <!--TODO-->
+</xml>
+<xml name="manutest_QCMerger">
+  <test expect_num_outputs="1"><!-- just using 2 outputs from QCCalculator as input (no2 did not work) -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="qcml" value="QCCalculator1.qcML,QCCalculator3.qcML"/>
+    <output name="out" ftype="qcml" value="QCMerger.qcML"/>
+  </test>
+</xml>
+<xml name="manutest_QCShrinker">
+  <test expect_num_outputs="1"><!-- just using an output of QCCalculator as input  -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="qcml" value="QCCalculator1.qcML"/>
+    <output name="out" ftype="qcml" value="QCShrinker.qcML"/>
+  </test>
+</xml>
+<xml name="manutest_RNADigestor">
+  <test expect_num_outputs="1"><!--random RNAsequence input -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="fasta" value="random_RNA.fa"/>
+    <output name="out" ftype="fasta" value="RNADigestor.fasta"/>
+  </test>
+</xml>
+<xml name="manutest_RNPxlXICFilter">
+  <test expect_num_outputs="1"><!-- just chosen an arbitrary input (2x the same which is likely nonsense, but sufficient for the test) and autgenerated output-->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="control" ftype="mzml" value="FileFilter_1_input.mzML"/>
+    <param name="treatment" ftype="mzml" value="FileFilter_1_input.mzML"/>
+    <output name="out" ftype="mzml" value="RNPxlXICFilter.mzML"/>
+  </test>
+</xml>
+<xml name="manutest_RTEvaluation">
+  <!-- just chosen an arbitrary input and autgenerated output-->
+  <test expect_num_outputs="1">
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="idxml" value="PeptideIndexer_1.idXML"/>
+    <output name="out" ftype="tabular" value="RTEvaluation.tsv"/>
+  </test>
+</xml>
+<xml name="manutest_SemanticValidator">
+  <test expect_num_outputs="1"><!-- just chosen an arbitrary input (same as XMLValidator) and autgenerated output-->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="mzml" value="FileFilter_1_input.mzML"/>
+    <param name="mapping_file" ftype="xml" value="MAPPING/ms-mapping.xml"/>
+    <output name="stdout" ftype="txt" value="SemanticValidator.stdout" lines_diff="4">
+       <assert_contents><has_text text="Congratulations, the file is valid!"/></assert_contents>
+    </output>
+  </test>
+</xml>
+<xml name="manutest_SequenceCoverageCalculator">
+  <test expect_num_outputs="1"><!-- took test data from another tool that also takes idXML and fasta as input -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in_database" value="PeptideIndexer_1.fasta" ftype="fasta"/>
+    <param name="in_peptides" value="SequenceCoverageCalculator_1.idXML" ftype="idxml"/>
+    <output name="out" value="SequenceCoverageCalculator.txt" ftype="txt" compare="sim_size"/>
+  </test>
+</xml>
+<xml name="manutest_SpecLibCreator">
+  <!--TODO could not find test data -->
+</xml>
+<xml name="manutest_SpectraFilterBernNorm">
+  <test expect_num_outputs="1"><!-- copy pasted from autotest_SpectraFilterWindowMower (1st test) and autogenrated output -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" value="SpectraFilterSqrtMower_1_input.mzML"/>
+    <output name="out" value="SpectraFilterBernNorm.mzML" compare="sim_size"/>
+  </test>
+</xml>
+<xml name="manutest_SpectraFilterMarkerMower">
+  <test expect_num_outputs="1"><!-- copy pasted from autotest_SpectraFilterWindowMower (1st test) and autogenrated output -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" value="SpectraFilterSqrtMower_1_input.mzML"/>
+    <output name="out" value="SpectraFilterMarkerMower.mzML" compare="sim_size"/>
+  </test>
+</xml>
+<xml name="manutest_SpectraFilterNLargest">
+  <test expect_num_outputs="1"><!-- copy pasted from autotest_SpectraFilterWindowMower (1st test) and autogenrated output -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" value="SpectraFilterSqrtMower_1_input.mzML"/>
+    <output name="out" value="SpectraFilterNLargest.mzML" compare="sim_size"/>
+  </test>
+</xml>
+<xml name="manutest_SpectraFilterNormalizer">
+  <test expect_num_outputs="1"><!-- copy pasted from autotest_SpectraFilterWindowMower (1st test) and autogenrated output -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" value="SpectraFilterSqrtMower_1_input.mzML"/>
+    <output name="out" value="SpectraFilterNormalizer.mzML" compare="sim_size"/>
+  </test>
+</xml>
+<xml name="manutest_SpectraFilterParentPeakMower">
+  <test expect_num_outputs="1"><!-- copy pasted from autotest_SpectraFilterWindowMower (1st test) and autogenrated output -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" value="SpectraFilterSqrtMower_1_input.mzML"/>
+    <output name="out" value="SpectraFilterParentPeakMower.mzML" compare="sim_size"/>
+  </test>
+</xml>
+<xml name="manutest_SpectraFilterScaler">
+  <test expect_num_outputs="1"> <!-- copy pasted from autotest_SpectraFilterWindowMower (1st test) and autogenrated output -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" value="SpectraFilterSqrtMower_1_input.mzML"/>
+    <output name="out" value="SpectraFilterScaler.mzML" compare="sim_size"/>
+  </test>
+</xml>
+<xml name="manutest_SpectraFilterThresholdMower">
+  <test expect_num_outputs="1"><!-- copy pasted from autotest_SpectraFilterWindowMower (1st test) and autogenrated output -->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" value="SpectraFilterSqrtMower_1_input.mzML"/>
+    <output name="out" value="SpectraFilterThresholdMower.mzML" compare="sim_size"/>
+  </test>
+</xml>
+<xml name="manutest_SpectraMerger">
+  <test expect_num_outputs="1"><!-- just chosen an arbitrary input and autgenerated output-->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="mzml" value="NovorAdapter_in.mzML"/>
+    <output name="out" ftype="mzml" value="SpectraMerger_1.mzML" compare="sim_size"/>
+  </test>
+</xml>
+<xml name="manutest_SvmTheoreticalSpectrumGeneratorTrainer">
+<!-- -TODO model_output_file creates multiple files-->
+</xml>
+<xml name="manutest_TransformationEvaluation">
+  <test expect_num_outputs="1"><!-- just chosen an arbitrary input and autgenerated output-->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="trafoxml" value="FileInfo_16_input.trafoXML"/>
+    <param name="OPTIONAL_OUTPUTS" value="out_FLAG"/>
+    <output name="out" ftype="trafoxml" value="TransformationEvaluation.trafoXML" compare="sim_size" delta="100000000"/>
+  </test>
+</xml>
+<xml name="manutest_XMLValidator">
+  <test expect_num_outputs="1"><!-- just chosen an arbitrary input and autgenerated output-->
+    <param name="adv_opts_selector" value="advanced"/>
+    <param name="adv_opts_cond|test" value="true"/>
+    <param name="in" ftype="mzml" value="FileFilter_1_input.mzML"/>
+    <output name="stdout" ftype="txt" value="XMLValidator.stdout" lines_diff="4">
+       <assert_contents><has_text text="Success: the file is valid!"/></assert_contents>
+    </output>
+  </test>
+</xml>
+<xml name="manutest_MetaboliteAdductDecharger"/><xml name="manutest_IDMapper"/><xml name="manutest_ProteinQuantifier"/><xml name="manutest_PeakPickerIterative"/><xml name="manutest_FeatureLinkerUnlabeledQT"/><xml name="manutest_TICCalculator"/><xml name="manutest_IDFilter"/><xml name="manutest_IDPosteriorErrorProbability"/><xml name="manutest_FeatureFinderIdentification"/><xml name="manutest_XFDR"/><xml name="manutest_OpenSwathWorkflow"/><xml name="manutest_MassCalculator"/><xml name="manutest_IDFileConverter"/><xml name="manutest_MultiplexResolver"/><xml name="manutest_FeatureFinderSuperHirn"/><xml name="manutest_AssayGeneratorMetabo"/><xml name="manutest_MassTraceExtractor"/><xml name="manutest_SiriusAdapter"/><xml name="manutest_IDMerger"/><xml name="manutest_MSstatsConverter"/><xml name="manutest_FileMerger"/><xml name="manutest_Decharger"/><xml name="manutest_PTPredict"/><xml name="manutest_XTandemAdapter"/><xml name="manutest_FeatureFinderMetabo"/><xml name="manutest_CruxAdapter"/><xml name="manutest_OpenSwathConfidenceScoring"/><xml name="manutest_PrecursorIonSelector"/><xml name="manutest_ConsensusMapNormalizer"/><xml name="manutest_RTPredict"/><xml name="manutest_PercolatorAdapter"/><xml name="manutest_ProteinInference"/><xml name="manutest_OpenSwathDecoyGenerator"/><xml name="manutest_TextExporter"/><xml name="manutest_FeatureFinderCentroided"/><xml name="manutest_DecoyDatabase"/><xml name="manutest_SpectraFilterWindowMower"/><xml name="manutest_NoiseFilterGaussian"/><xml name="manutest_MaRaClusterAdapter"/><xml name="manutest_ConsensusID"/><xml name="manutest_FileFilter"/><xml name="manutest_InclusionExclusionListCreator"/><xml name="manutest_FeatureLinkerUnlabeledKD"/><xml name="manutest_NovorAdapter"/><xml name="manutest_OpenPepXL"/><xml name="manutest_SeedListGenerator"/><xml name="manutest_FalseDiscoveryRate"/><xml name="manutest_OpenPepXLLF"/><xml name="manutest_SpecLibSearcher"/><xml name="manutest_IDConflictResolver"/><xml name="manutest_MRMMapper"/><xml name="manutest_OMSSAAdapter"/><xml name="manutest_ExternalCalibration"/><xml name="manutest_PeakPickerHiRes"/><xml name="manutest_MascotAdapter"/><xml name="manutest_FeatureFinderMultiplex"/><xml name="manutest_MetaProSIP"/><xml name="manutest_FuzzyDiff"/><xml name="manutest_TargetedFileConverter"/><xml name="manutest_MapAlignerIdentification"/><xml name="manutest_IDRTCalibration"/><xml name="manutest_MRMTransitionGroupPicker"/><xml name="manutest_RTModel"/><xml name="manutest_OpenSwathAssayGenerator"/><xml name="manutest_IDSplitter"/><xml name="manutest_OpenSwathMzMLFileCacher"/><xml name="manutest_HighResPrecursorMassCorrector"/><xml name="manutest_OpenSwathChromatogramExtractor"/><xml name="manutest_OpenSwathAnalyzer"/><xml name="manutest_FeatureLinkerUnlabeled"/><xml name="manutest_CompNovoCID"/><xml name="manutest_DTAExtractor"/><xml name="manutest_FileInfo"/><xml name="manutest_MapAlignerSpectrum"/><xml name="manutest_IsobaricAnalyzer"/><xml name="manutest_LowMemPeakPickerHiRes"/><xml name="manutest_MyriMatchAdapter"/><xml name="manutest_InternalCalibration"/><xml name="manutest_TOFCalibration"/><xml name="manutest_MSGFPlusAdapter"/><xml name="manutest_PTModel"/><xml name="manutest_InspectAdapter"/><xml name="manutest_SpectraFilterSqrtMower"/><xml name="manutest_SimpleSearchEngine"/><xml name="manutest_PeakPickerWavelet"/><xml name="manutest_MapNormalizer"/><xml name="manutest_IDScoreSwitcher"/><xml name="manutest_FeatureLinkerLabeled"/><xml name="manutest_MapRTTransformer"/><xml name="manutest_RNPxlSearch"/><xml name="manutest_PrecursorMassCorrector"/><xml name="manutest_MapAlignerPoseClustering"/><xml name="manutest_MzTabExporter"/><xml name="manutest_BaselineFilter"/><xml name="manutest_FeatureFinderMRM"/><xml name="manutest_MascotAdapterOnline"/><xml name="manutest_DatabaseFilter"/><xml name="manutest_ProteinResolver"/><xml name="manutest_OpenSwathFeatureXMLToTSV"/><xml name="manutest_FidoAdapter"/><xml name="manutest_AccurateMassSearch"/><xml name="manutest_CompNovo"/><xml name="manutest_LowMemPeakPickerHiResRandomAccess"/><xml name="manutest_OpenSwathRTNormalizer"/><xml name="manutest_PeptideIndexer"/><xml name="manutest_CometAdapter"/><xml name="manutest_NoiseFilterSGolay"/><xml name="manutest_MSFraggerAdapter"/><xml name="manutest_SpectraSTSearchAdapter"/><xml name="manutest_SequestAdapter"/><xml name="manutest_FeatureFinder"/><xml name="manutest_LuciphorAdapter"/><xml name="manutest_GNPSExport"/><xml name="manutest_Epifany"/><xml name="manutest_NucleicAcidSearchEngine"/><xml name="manutest_QualityControl"/><xml name="manutest_FeatureFinderMetaboIdent"/><xml name="manutest_RNAMassCalculator"/><xml name="manutest_MapAlignerTreeGuided"/><xml name="manutest_IDMassAccuracy"/><xml name="manutest_ProteomicsLFQ"/><xml name="manutest_IDDecoyProbability"/><xml name="manutest_DigestorMotif"/><xml name="manutest_DatabaseSuitability"/><xml name="manutest_StaticModification"/></macros>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/prepare_test_data_manual.sh	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,161 @@
+MSSimulator -test -in DecoyDatabase_1.fasta -out MSsimulator.mzml -algorithm:RandomNumberGenerators:biological reproducible -algorithm:RandomNumberGenerators:technical reproducible > MSSimulator_1.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'MSSimulator_1 failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+MSSimulator -test -in DecoyDatabase_1.fasta -out MSsimulator_MALDI.mzml -algorithm:RandomNumberGenerators:biological reproducible -algorithm:RandomNumberGenerators:technical reproducible -algorithm:MSSim:Global:ionization_type MALDI > MSSimulator_2.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'MSSimulator_2 failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+ClusterMassTracesByPrecursor -test -in_ms1 ConsensusMapNormalizer_input.consensusXML -in_swath ConsensusMapNormalizer_input.consensusXML -out ClusterMassTracesByPrecursor.mzml > ClusterMassTracesByPrecursor.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'ClusterMassTracesByPrecursor failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+ClusterMassTraces -test -in ConsensusMapNormalizer_input.consensusXML -out ClusterMassTraces.mzml > ClusterMassTraces.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'ClusterMassTraces failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+CVInspector -test -cv_files CHEMISTRY/XLMOD.obo -cv_names XLMOD -mapping_file MAPPING/ms-mapping.xml -html CVInspector.html > CVInspector.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'CVInspector failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+DeMeanderize -test -in MSsimulator_MALDI.mzml -out DeMeanderize.mzml > DeMeanderize.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'DeMeanderize failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+# TODO DigestorMotif
+
+Digestor -test -in random.fa -out Digestor.fasta -out_type fasta > Digestor.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'Digestor failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+EICExtractor -test -in spectra.mzML -pos FileConverter_10_input.edta -out EICExtractor.csv > EICExtractor.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'EICExtractor failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+#TODO ERPairFinder
+
+FeatureFinderIsotopeWavelet -test -in FeatureFinderCentroided_1_input.mzML -out  FeatureFinderIsotopeWavelet.featureXML > FeatureFinderIsotopeWavelet.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'FeatureFinderIsotopeWavelet failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+
+FFEval -test -in  FeatureFinderCentroided_1_output.featureXML -truth  FeatureFinderCentroided_1_output.featureXML -out  FFEval.featureXML -out_roc FFEval_roc.csv  > FFEval.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'FFEval failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+# TODO? deprecated IDDecoyProbability
+
+IDExtractor -test -in MSGFPlusAdapter_1_out.idXML -best_hits -number_of_peptides  1 -out  IDExtractor.idXML   > IDExtractor.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'IDExtractor failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+LabeledEval -test -in  FeatureLinkerLabeled_1_input.featureXML -truth  FeatureLinkerLabeled_1_output.consensusXML> LabeledEval.txt > LabeledEval.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'LabeledEval failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+MapStatistics -test -in SiriusAdapter_3_input.featureXML -out MapStatistics.txt > MapStatistics_1.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'MapStatistics_1 failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+MapStatistics -test -in ConsensusXMLFile_1.consensusXML -out MapStatistics2.txt > MapStatistics_2.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'MapStatistics_2 failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+MetaboliteAdductDecharger -test -in Decharger_input.featureXML -out_cm MetaboliteAdductDecharger_cm.consensusXML -out_fm MetaboliteAdductDecharger_fm.featureXML -outpairs MetaboliteAdductDecharger_pairs.consensusXML > MetaboliteAdductDecharger.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'MetaboliteAdductDecharger failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+MetaboliteSpectralMatcher -test -in spectra.mzML -database MetaboliteSpectralDB.mzML -out MetaboliteSpectralMatcher.mzTab > MetaboliteSpectralMatcher.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'MetaboliteSpectralMatcher failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+# TODO MRMPairFinder
+
+# generate two inputs for OpenSwathDIAPreScoring
+OpenSwathDIAPreScoring -tr OpenSwathWorkflow_1_input.TraML -swath_files OpenSwathAnalyzer_2_swathfile.mzML -output_files OpenSwathDIAPreScoring.tsv > OpenSwathDIAPreScoring.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'OpenSwathDIAPreScoring failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+# generate two inputs for OpenSwathDIAPreScoring by linking
+ln -s OpenSwathAnalyzer_2_swathfile.mzML OpenSwathDIAPreScoring_in1.mzML
+ln -s OpenSwathAnalyzer_2_swathfile.mzML OpenSwathDIAPreScoring_in2.mzML
+OpenSwathDIAPreScoring -tr OpenSwathWorkflow_1_input.TraML -swath_files OpenSwathDIAPreScoring_in1.mzML OpenSwathDIAPreScoring_in2.mzML -output_files OpenSwathDIAPreScoring_2_1.tsv OpenSwathDIAPreScoring_2_2.tsv > OpenSwathDIAPreScoring.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'OpenSwathDIAPreScoring failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+OpenSwathRewriteToFeatureXML -featureXML OpenSwathFeatureXMLToTSV_input.featureXML -out OpenSwathRewriteToFeatureXML.featureXML > OpenSwathRewriteToFeatureXML.stdout 2> stderr
+# if [[ "$?" -ne "0" ]]; then >&2 echo 'OpenSwathRewriteToFeatureXML failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+# adapted from the commented tests in OpenMS TODO may be removed later https://github.com/OpenMS/OpenMS/issues/4719
+FileConverter -in PepNovo.mzXML -out PepNovo_1.mzML > /dev/null 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'FileConverter failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+PepNovoAdapter -ini PepNovoAdapter_1_parameters.ini -in PepNovo_1.mzML -out PepNovoAdapter_3_output.idXML -model_directory pepnovo_models/ -pepnovo_executable pepnovo > PepNovo_1.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'PhosphoScoring failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+FileConverter -in PepNovo.mzData -out PepNovo_4.mzML > /dev/null 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'FileConverter failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+PepNovoAdapter -ini PepNovoAdapter_1_parameters.ini -in PepNovo_4.mzML -out PepNovoAdapter_4_output.idXML -model_directory pepnovo_models/ -pepnovo_executable pepnovo > PepNovo_1.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'PhosphoScoring failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+#PepNovoAdapter -ini PepNovoAdapter_5_parameters.ini -in PepNovoAdapter_5_output.pepnovo_out -out PepNovoAdapter_5_output.idXML -model_directory pepnovo_models/ 
+
+# TODO PhosphoScoring 
+PhosphoScoring -in spectra.mzML -id MSGFPlusAdapter_1_out1.tmp -out PhosphoScoring.idxml > PhosphoScoring.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'PhosphoScoring failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+PSMFeatureExtractor -test -in MSGFPlusAdapter_1_out.idXML XTandemAdapter_1_out.idXML -multiple_search_engines -skip_db_check -out PSMFeatureExtractor.idxml > PSMFeatureExtractor_1.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'PSMFeatureExtractor_1 failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+PSMFeatureExtractor -test -in MSGFPlusAdapter_1_out.idXML XTandemAdapter_1_out.idXML -multiple_search_engines -skip_db_check -out PSMFeatureExtractor.mzid > PSMFeatureExtractor_2.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'PSMFeatureExtractor_2 failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+QCCalculator -test -in OpenPepXL_input.mzML -out QCCalculator1.qcML > QCCalculator_1.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'QCCalculator_1 failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+QCCalculator -test -in OpenPepXL_input.mzML -id OpenPepXL_output.idXML -consensus OpenPepXL_input.consensusXML -out QCCalculator2.qcML > QCCalculator_2.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'QCCalculator_2 failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+QCCalculator -test -in IDMapper_4_input.mzML -id IDMapper_4_input.idXML -feature IDMapper_4_input.featureXML -out QCCalculator3.qcML > QCCalculator_3.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'QCCalculator_3 failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+# TODO QCEmbedder
+# TODO QCExporter
+# TODO QCExtractor
+# TODO QCImporter
+
+QCMerger -test -in QCCalculator1.qcML QCCalculator3.qcML -out QCMerger.qcML > QCMerger.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'QCMerger failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+QCShrinker -test -in QCCalculator1.qcML -out QCShrinker.qcML > QCShrinker.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'QCShrinker failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+RNADigestor -test -in random_RNA.fa -out RNADigestor.fasta > RNADigestor.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'RNADigestor failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+RNPxlXICFilter -test -control FileFilter_1_input.mzML -treatment FileFilter_1_input.mzML -out RNPxlXICFilter.mzML > RNPxlXICFilter.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'RNPxlXICFilter failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+RTEvaluation -in PeptideIndexer_1.idXML -out RTEvaluation.tsv > RTEvaluation.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'RTEvaluation failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+SemanticValidator -test -in FileFilter_1_input.mzML -mapping_file MAPPING/ms-mapping.xml > SemanticValidator.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'SemanticValidator failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+IDFilter -in PeptideIndexer_1.idXML -best:strict -out SequenceCoverageCalculator_1.idXML > IDFilter.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'IDFilter failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+SequenceCoverageCalculator -test -in_database  PeptideIndexer_1.fasta -in_peptides  SequenceCoverageCalculator_1.idXML  -out  SequenceCoverageCalculator.txt > SequenceCoverageCalculator.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'SequenceCoverageCalculator failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+# TODO SpecLibCreator
+
+SpectraFilterBernNorm -test -in  SpectraFilterSqrtMower_1_input.mzML -out  SpectraFilterBernNorm.mzML > SpectraFilterBernNorm.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'SpectraFilterBernNorm failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+SpectraFilterMarkerMower -test -in  SpectraFilterSqrtMower_1_input.mzML -out  SpectraFilterMarkerMower.mzML > SpectraFilterMarkerMower.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'SpectraFilterMarkerMower failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+SpectraFilterNLargest -test -in  SpectraFilterSqrtMower_1_input.mzML -out  SpectraFilterNLargest.mzML > SpectraFilterNLargest.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'SpectraFilterNLargest failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+SpectraFilterNormalizer -test -in  SpectraFilterSqrtMower_1_input.mzML -out  SpectraFilterNormalizer.mzML > SpectraFilterNormalizer.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'SpectraFilterNormalizer failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+SpectraFilterParentPeakMower -test -in  SpectraFilterSqrtMower_1_input.mzML -out  SpectraFilterParentPeakMower.mzML > SpectraFilterParentPeakMower.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'SpectraFilterParentPeakMower failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+SpectraFilterScaler -test -in  SpectraFilterSqrtMower_1_input.mzML -out  SpectraFilterScaler.mzML > SpectraFilterScaler.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'SpectraFilterScaler failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+SpectraFilterThresholdMower -test -in  SpectraFilterSqrtMower_1_input.mzML -out  SpectraFilterThresholdMower.mzML > SpectraFilterThresholdMower.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'SpectraFilterThresholdMower failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+SpectraMerger -test -in NovorAdapter_in.mzML -out SpectraMerger_1.mzML > SpectraMerger.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'SpectraMerger failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+# TODO SvmTheoreticalSpectrumGeneratorTrainer
+
+TransformationEvaluation -test -in FileInfo_16_input.trafoXML -out TransformationEvaluation.trafoXML > TransformationEvaluation.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'TransformationEvaluation failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
+
+XMLValidator -test -in FileFilter_1_input.mzML > XMLValidator.stdout 2> stderr
+if [[ "$?" -ne "0" ]]; then >&2 echo 'XMLValidator failed'; >&2 echo -e "stderr:\n$(cat stderr | sed 's/^/    /')"; fi
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/readme.md	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,153 @@
+Galaxy wrapper for OpenMS
+=========================
+
+OpenMS is an open-source software C++ library for LC/MS data management and analyses.
+It offers an infrastructure for the rapid development of mass spectrometry related software.
+OpenMS is free software available under the three clause BSD license and runs under Windows, MacOSX and Linux.
+
+More informations are available at:
+
+ * https://github.com/OpenMS/OpenMS
+ * https://www.openms.de/
+
+The wrappers for these tools and most of their tests are automatically
+generated using the `generate.sh` script. The generation of the tools is
+based on the CTDConverter (https://github.com/WorkflowConversion/CTDConverter)
+which can be fine tuned via the `hardcoded_params.json` file. This file allows
+to blacklist and hardcode parameters and to modify or set arbitrary
+CTD/XML attributes.
+
+Note that, due to its size, the test data is excluded from this repository. In
+order to generate the test data on call `test-data.sh`.
+
+Manual updates should only be done to
+
+- the `@GALAXY_VERSION@"` token in `macros.xml`
+- and the manually contributed tests in `macros_test.xml` (The goal is that all
+  tools that do not have an automatically generated test are covered here)
+- the `hardcoded_params.json` files
+
+In a few cases patches may be acceptable.
+
+Installation
+============
+
+The Galaxy OpenMS tools can be installed from the toolshed. While most tools
+will work out of the box some need attention since requirements can not be
+fulfilled via Conda:
+
+Not yet in Conda are:
+
+- SpectraST (http://tools.proteomecenter.org/wiki/index.php?title=SpectraST)
+- MaRaCluster (https://github.com/statisticalbiotechnology/maracluster)
+
+Binaries for these tools can easily be obtained via: 
+
+```
+VERSION=....
+git git clone -b release/$VERSION.0 https://github.com/OpenMS/OpenMS.git OpenMS$VERSION.0-git
+git submodule init OpenMS$VERSION.0-git
+git submodule update OpenMS$VERSION.0-git
+```
+
+They are located in `OpenMS$VERSION-git/THIRDPARTY/`. 
+
+Not in Conda due to licencing restrictions:
+
+- Mascot http://www.matrixscience.com/
+- MSFragger https://github.com/Nesvilab/MSFragger
+- Novor http://www.rapidnovor.org/novor
+
+There are multiple ways to enable the Galaxy tools to use these binaries. 
+
+- Just copy them to the `bin` path within Galaxy's conda environment
+- Put them in any other path that that is included in PATH
+- Edit the corresponding tools: In the command line part search for the parameters `-executable`, `-maracluster_executable`, or `-mascot_directory` and edit them appropriately.
+
+Working
+=======
+
+The tools work by:
+
+Preprocessing:
+
+- For each input / output data set parameter a directory is crated (named by
+  the parameter)
+- For input data set parameters the links to the actual location of the data
+  sets are created
+
+Main:
+
+- The galaxy wrapper create two json config files: one containing the
+  parameters and the values chosen by the user and the other the values of
+  hardcoded parameters.
+- With `OpenMSTool -write_ctd ./` a CTD (names OpenMSTool.ctd) file is
+  generated that contains the default values.
+- A call to `fill_ctd.py` fills in the values from the json config files into
+  the CTD file
+- The actual tool is called `OpenMSTool -ini OpenMSTool.ctd` and also all input
+  and output parameters are given on the command line.
+
+Postprocessing:
+
+- output data sets are moved to the final locations
+
+Note: The reason for handling data sets on the command line (and not specifying
+them in the CTD file) is mainly that all files in Galaxy have the extension
+`.dat` and OpenMS tools require an appropriate extension. But this may change
+in the future.
+
+Generating OpenMS wrappers
+==========================
+
+1. remove old test data: `rm -rf $(ls -d test-data/* | egrep -v "random|\.loc")`
+2. `./generate.sh`
+
+Whats happening:
+
+1. The binaries of the OpenMS package can generate a CTD file that describes
+   the parameters. These CTD files are converted to xml Galaxy tool descriptions
+   using the `CTDConverter`.
+
+2. The CI testing framework of OpenMS contains command lines and test data 
+   (https://github.com/OpenMS/OpenMS/tree/develop/src/tests/topp). These tests
+   are described in two CMake files.
+
+   - From these CMake files Galaxy tests are auto generated and stored in `macros_autotest.xml`
+   - The command lines are stored in `prepare_test_data.sh` for regeneration of test data
+
+More details can be found in the comments of the shell script.
+
+Open problems
+=============
+
+Some tools stall in CI testing using `--biocontainers` which is why the OpenMS
+tools are currently listed in `.tt_biocontainer_skip`. This is
+
+- AssayGeneratorMetabo and SiriusAdapter (both depend on sirius)
+- OMSSAAdapter
+
+Using `docker -t` seems to solve the problem (see
+https://github.com/galaxyproject/galaxy/issues/10153).
+
+Licence (MIT)
+=============
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data.sh	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,265 @@
+#!/usr/bin/env bash
+
+VERSION=2.6
+FILETYPES="filetypes.txt"
+CONDAPKG="https://anaconda.org/bioconda/openms/2.6.0/download/linux-64/openms-2.6.0-h4afb90d_0.tar.bz2"
+
+# import the magic
+. ./generate-foo.sh
+
+# install conda
+if [ -z "$tmp" ]; then
+	tmp=$(mktemp -d)
+	created="yes"
+fi
+
+export OPENMSGIT="$tmp/OpenMS$VERSION.0-git"
+export OPENMSPKG="$tmp/OpenMS$VERSION-pkg/"
+export OPENMSENV="$tmp/OpenMS$VERSION-env"
+export CTDCONVERTER="$tmp/CTDConverter"
+
+if [[ -z "$1" ]]; then
+	autotests="/dev/null"
+else
+	autotests="$1"
+fi
+
+if type conda > /dev/null; then  
+	true
+else
+	wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
+	bash Miniconda3-latest-Linux-x86_64.sh -b -p "$tmp/miniconda"
+	source "$tmp/miniconda/bin/activate"
+fi
+eval "$(conda shell.bash hook)"
+
+
+###############################################################################
+## get 
+## - conda environment (for executing the binaries) and 
+## - the git clone of OpenMS (for generating the tests)
+###############################################################################
+
+echo "Clone OpenMS $VERSION sources"
+if [[ ! -d $OPENMSGIT ]]; then
+	git clone -b release/$VERSION.0 https://github.com/OpenMS/OpenMS.git $OPENMSGIT
+	cd $OPENMSGIT
+	git submodule init
+	git submodule update
+	cd -
+else
+	cd $OPENMSGIT
+	git pull origin release/$VERSION.0
+	cd -
+fi
+
+echo "Create OpenMS $VERSION conda env"
+# TODO currently add lxml (needed by CTDConverter)
+# TODO for some reason a to recent openjdk is used
+if conda env list | grep "$OPENMSENV"; then
+	true
+else
+	conda create -y --quiet --override-channels --channel iuc --channel conda-forge --channel bioconda --channel defaults -p $OPENMSENV openms=$VERSION openms-thirdparty=$VERSION ctdopts=1.4 lxml
+# chmod -R u-w $OPENMSENV 
+fi
+###############################################################################
+## get the 
+## - conda package (for easy access and listing of the OpenMS binaries), 
+###############################################################################
+echo "Download OpenMS $VERSION package $CONDAPKG"
+
+if [[ ! -d $OPENMSPKG ]]; then
+	mkdir $OPENMSPKG
+	wget -q -P $OPENMSPKG/ "$CONDAPKG"
+	tar -xf $OPENMSPKG/"$(basename $CONDAPKG)" -C $OPENMSPKG/
+	rm $OPENMSPKG/"$(basename $CONDAPKG)"
+fi
+
+###############################################################################
+## Get python libaries for CTD -> Galaxy conversion
+## TODO fix to main repo OR conda packkage if PRs are merged 
+###############################################################################
+echo "Clone CTDConverter"
+if [[ ! -d $CTDCONVERTER ]]; then
+	#git clone https://github.com/WorkflowConversion/CTDConverter.git CTDConverter
+	git clone -b topic/cdata https://github.com/bernt-matthias/CTDConverter.git $CTDCONVERTER
+else
+	cd $CTDCONVERTER
+	git pull origin topic/cdata
+	cd -
+fi
+
+###############################################################################
+## copy all the test data files to test-data
+## most of it (outputs) will be overwritten later, but its needed for
+## prepare_test_data
+###############################################################################
+echo "Get test data"
+find test-data -type f,l,d ! -name "*fa"  ! -name "*loc" -delete
+
+cp $(find $OPENMSGIT/src/tests/topp/ -type f | grep -Ev "third_party_tests.cmake|CMakeLists.txt|check_ini") test-data/
+cp -r $OPENMSGIT/share/OpenMS/MAPPING/ test-data/
+cp -r $OPENMSGIT/share/OpenMS/CHEMISTRY test-data/
+cp -r $OPENMSGIT/share/OpenMS/examples/ test-data/
+if [[ ! -f test-data/MetaboliteSpectralDB.mzML ]]; then 
+	wget -nc https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Tutorials/Data/latest/Example_Data/Metabolomics/databases/MetaboliteSpectralDB.mzML
+	mv MetaboliteSpectralDB.mzML test-data/
+fi
+ln -fs TOFCalibration_ref_masses test-data/TOFCalibration_ref_masses.txt
+ln -fs TOFCalibration_const test-data/TOFCalibration_const.csv
+
+if [ ! -d test-data/pepnovo_models/ ]; then
+	mkdir -p /tmp/pepnovo
+	wget -nc http://proteomics.ucsd.edu/Software/PepNovo/PepNovo.20120423.zip
+	unzip PepNovo.20120423.zip -d /tmp/pepnovo/
+	mv /tmp/pepnovo/Models test-data/pepnovo_models/
+	rm PepNovo.20120423.zip
+	rm -rf /tmp/pepnovo
+fi
+###############################################################################
+## generate ctd files using the binaries in the conda package 
+###############################################################################
+echo "Create CTD files"
+conda activate $OPENMSENV
+rm -rf ctd
+mkdir -p ctd
+
+# TODO because of https://github.com/OpenMS/OpenMS/issues/4641
+# this needs to be done from within test-data
+cd test-data
+for i in $OPENMSPKG/bin/*
+do
+	b=$(basename $i)
+	echo $b
+	$b -write_ctd ../ctd/
+	sed -i -e 's/²/^2/' ../ctd/$b.ctd
+done
+cd -
+###############################################################################
+## fix ini files: OpenMS test data contains ini files with outdated ini files.
+## e.g. variables might be in different nodes, outdated variables present, new
+## variables missing, ...
+## OpenMS tools fix this on the fly (so its no problem for the OpenMS tests)
+## but it is for the generation of the tests
+## see https://github.com/OpenMS/OpenMS/issues/4462
+###############################################################################
+echo "Update test INI files"
+for ini in test-data/*ini
+do
+	tool=$(cat $ini | grep 'NODE name="' | head -n 1 | sed 's/.*name="\([^"]\+\)".*/\1/')
+	bin=$(which $tool)
+	if [[ -z $bin ]]; then
+          >&2 echo "missing binary to convert $ini"
+		  continue
+	fi
+	cp $ini $ini.backup
+	$bin -ini $ini -write_ini $ini > $ini.stdout 2> $ini.stderr
+	if [[ "$?" -ne "0" ]]; then
+		>&2 echo "could not convert $ini"
+	fi
+done
+
+###############################################################################
+## create script to create results for the tests and run it
+###############################################################################
+echo "Create test shell script"
+
+echo -n "" > prepare_test_data.sh
+echo 'export COMET_BINARY="comet"' >> prepare_test_data.sh
+echo 'export CRUX_BINARY="crux"' >> prepare_test_data.sh
+echo 'export FIDOCHOOSEPARAMS_BINARY="FidoChooseParameters"' >> prepare_test_data.sh
+echo 'export FIDO_BINARY="Fido"' >> prepare_test_data.sh
+echo 'export LUCIPHOR_BINARY="$(dirname $(realpath $(which luciphor2)))/luciphor2.jar"' >> prepare_test_data.sh
+
+echo 'export MARACLUSTER_BINARY="'"$OPENMSGIT"'/THIRDPARTY/Linux/64bit/MaRaCluster/maracluster"'>> prepare_test_data.sh
+echo 'export MSFRAGGER_BINARY="/home/berntm/Downloads/MSFragger-20171106/MSFragger-20171106.jar"'>> prepare_test_data.sh
+echo 'export MSGFPLUS_BINARY="$(msgf_plus -get_jar_path)"' >> prepare_test_data.sh
+echo 'export MYRIMATCH_BINARY="myrimatch"'>> prepare_test_data.sh
+echo 'export NOVOR_BINARY="/home/berntm/Downloads/novor/lib/novor.jar"' >> prepare_test_data.sh
+echo 'export OMSSA_BINARY="$(dirname $(realpath $(which omssacl)))/omssacl"'>> prepare_test_data.sh
+echo 'export PERCOLATOR_BINARY="percolator"'>> prepare_test_data.sh
+echo 'export SIRIUS_BINARY="$(which sirius)"' >> prepare_test_data.sh
+echo 'export SPECTRAST_BINARY="'"$OPENMSGIT"'/THIRDPARTY/Linux/64bit/SpectraST/spectrast"' >> prepare_test_data.sh
+echo 'export XTANDEM_BINARY="xtandem"' >> prepare_test_data.sh
+echo 'export THERMORAWFILEPARSER_BINARY="ThermoRawFileParser.exe"' >> prepare_test_data.sh
+
+prepare_test_data >> prepare_test_data.sh #tmp_test_data.sh
+
+# prepare_test_data > tmp_test_data.sh
+# # remove calls not needed for the tools listed in any .list file
+# echo LIST $LIST
+# if [ ! -z "$LIST" ]; then
+# 	REX=$(echo $LIST | sed 's/ /\n/g' | sed 's@.*/\([^/]\+\).xml$@\1@' | tr '\n' '|' | sed 's/|$//')
+# else
+# 	REX=".*"
+# fi
+# echo REX $REX
+# cat tmp_test_data.sh | egrep "($REX)" >> prepare_test_data.sh
+# rm tmp_test_data.sh
+
+echo "Execute test shell script"
+chmod u+x prepare_test_data.sh
+cd ./test-data || exit
+../prepare_test_data.sh
+cd - || exit
+
+
+###############################################################################
+## create/update test data for the manually generated tests
+## - run convert once with the manual tests only and 
+## - update test-data (needs to run 2x)
+###############################################################################
+echo "Execute test shell script for manually curated tests"
+chmod u+x prepare_test_data_manual.sh
+
+cd ./test-data || exit
+../prepare_test_data_manual.sh
+cd - || exit
+
+
+###############################################################################
+## auto generate tests
+###############################################################################
+echo "Write test macros to $autotests"
+echo "<macros>" > "$autotests"
+for i in $(ls *xml |grep -v macros)
+do
+	b=$(basename "$i" .xml)
+	get_tests2 "$b" >> "$autotests"
+done
+echo "</macros>" >> "$autotests"
+
+echo "Create test data links"
+link_tmp_files
+
+# tests for tools using output_prefix parameters can not be auto generated
+# hence we output the tests for manual curation in macros_test.xml
+# and remove them from the autotests
+# -> OpenSwathFileSplitter IDRipper MzMLSplitter
+#
+# Furthermore we remove tests for tools without binaries in conda
+# -> MSFragger MaRaClusterAdapter NovorAdapter 
+#
+# not able to specify composite test data  
+# -> SpectraSTSearchAdapter 
+if [[ ! -z "$1" ]]; then
+	echo "" > macros_discarded_auto.xml
+	for i in OpenSwathFileSplitter IDRipper MzMLSplitter MSFraggerAdapter MaRaClusterAdapter NovorAdapter SpectraSTSearchAdapter
+	do
+		echo "<xml name=\"manutest_$i\">" >>  macros_discarded_auto.xml
+		xmlstarlet sel -t -c "/macros/xml[@name='autotest_$i']/test" macros_autotest.xml >>  macros_discarded_auto.xml
+		echo "</xml>"  >>  macros_discarded_auto.xml
+		xmlstarlet ed -d "/macros/xml[@name='autotest_$i']/test" macros_autotest.xml > tmp
+		mv tmp macros_autotest.xml
+	done
+	>&2 echo "discarded autogenerated macros for curation in macros_discarded_auto.xml"
+fi
+conda deactivate
+
+## remove broken symlinks in test-data
+find test-data/ -xtype l -delete
+
+# if [ ! -z "$created" ]; then
+# 	echo "Removing temporary directory"
+# 	rm -rf "$tmp"
+# fi
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/pepnovo_models.loc.sample	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,23 @@
+# This is a sample file distributed with Galaxy that enables tools
+# to use pepnovo models
+# The file has three tab separated columns: name, value, and path.
+# The idea is that there are a number of models in a directory:
+# - each model directory has a unique name (columns 2 and 0)
+# - each model can contain a set of models (column 1)
+#
+# The following example works fo the default models from 
+# http://proteomics.ucsd.edu/Software/PepNovo.html (just remove the comment
+# chars and replace DIR_TO_PEPNOVO_MODELS)
+
+#default_models	CID_IT_TRYP	DIR_TO_PEPNOVO_MODELS
+#default_models	LTQ_COMP	DIR_TO_PEPNOVO_MODELS
+#default_models	DBC4_PEAK	DIR_TO_PEPNOVO_MODELS
+#default_models	CID_IT_TRYP_TAG5	DIR_TO_PEPNOVO_MODELS
+#default_models	CID_IT_TRYP_TAG6	DIR_TO_PEPNOVO_MODELS
+#default_models	ITDNV_PEAK	DIR_TO_PEPNOVO_MODELS
+#default_models	CID_IT_TRYP_SCORE	DIR_TO_PEPNOVO_MODELS
+#default_models	CID_IT_TRYP_TAG3	DIR_TO_PEPNOVO_MODELS
+#default_models	CID_IT_TRYP_DNVPART	DIR_TO_PEPNOVO_MODELS
+#default_models	CID_IT_TRYP_TAG4	DIR_TO_PEPNOVO_MODELS
+#default_models	CID_IT_TRYP_DB	DIR_TO_PEPNOVO_MODELS
+#default_models	CID_IT_TRYP_CSP	DIR_TO_PEPNOVO_MODELS
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_data_table_conf.xml.sample	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,7 @@
+<tables>
+    <!-- Locations of pepnovo models -->
+    <table name="pepnovo_models" comment_char="#" allow_duplicate_entries="False">
+        <columns>name,value,path</columns>
+        <file path="tool-data/pepnovo_models.loc" />
+    </table>
+</tables>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_data_table_conf.xml.test	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,7 @@
+<tables>
+    <!-- Locations of all eggnog_mapper data -->
+    <table name="pepnovo_models" comment_char="#">
+        <columns>name,value,path</columns>
+        <file path="${__HERE__}/test-data/pepnovo_models.loc" />
+    </table>
+</tables>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools_blacklist.txt	Tue Oct 13 19:54:23 2020 +0000
@@ -0,0 +1,21 @@
+# seems not possible for 2.5 https://github.com/OpenMS/OpenMS/issues/4426
+# DigestorMotif
+
+# deprecated https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Documentation/release/latest/html/UTILS_IDDecoyProbability.html
+# https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Documentation/release/latest/html/a16242.html
+IDDecoyProbability
+
+# personal communication with author V. Bafna: 
+# "InsPect is no longer maintained as there are many better tools including MS-GF+"
+InspectAdapter
+
+# licence? see https://github.com/bioconda/bioconda-recipes/issues/18953
+#MSFraggerAdapter
+
+# https://github.com/OpenMS/OpenMS/issues/4550#issuecomment-594065727
+ProteomicsLFQ
+
+# https://github.com/OpenMS/OpenMS/issues/4401
+InclusionExclusionListCreator
+RTPredict
+PTPredict