changeset 0:e030fdaaf631 draft

"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 55a2aeba8bfd8a6910630721de9857dcdfe05d3c"
author galaxyp
date Tue, 13 Oct 2020 20:26:46 +0000
parents
children 8030f8ff8afa
files 404-urls.patch OMSSAAdapter.patch PepNovoAdapter.patch StaticModification.xml 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, 32811 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 20:26:46 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/OMSSAAdapter.patch	Tue Oct 13 20:26:46 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 20:26:46 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/StaticModification.xml	Tue Oct 13 20:26:46 2020 +0000
@@ -0,0 +1,3007 @@
+<?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: [Utilities]-->
+<tool id="StaticModification" name="StaticModification" version="@TOOL_VERSION@+galaxy@GALAXY_VERSION@" profile="20.05">
+  <description>Applies a set of modifications to all PeptideIDs in an idXML file.</description>
+  <macros>
+    <token name="@EXECUTABLE@">StaticModification</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 &&
+ln -s '$in' 'in/${re.sub("[^\w\-_]", "_", $in.element_identifier)}.$gxy2omsext($in.ext)' &&
+mkdir out &&
+
+## Main program call
+
+set -o pipefail &&
+@EXECUTABLE@ -write_ctd ./ &&
+python3 '$__tool_directory__/fill_ctd.py' '@EXECUTABLE@.ctd' '$args_json' '$hardcoded_json' &&
+@EXECUTABLE@ -ini @EXECUTABLE@.ctd
+-in
+'in/${re.sub("[^\w\-_]", "_", $in.element_identifier)}.$gxy2omsext($in.ext)'
+-out
+'out/output.${gxy2omsext("idxml")}'
+
+## Postprocessing
+&& mv 'out/output.${gxy2omsext("idxml")}' '$out'
+#if "ctd_out_FLAG" in $OPTIONAL_OUTPUTS
+  && mv '@EXECUTABLE@.ctd' '$ctd_out'
+#end if]]></command>
+  <configfiles>
+    <inputs name="args_json" data_style="paths"/>
+    <configfile name="hardcoded_json"><![CDATA[{"log": "log.txt", "threads": "\${GALAXY_SLOTS:-1}", "no_progress": true}]]></configfile>
+  </configfiles>
+  <inputs>
+    <param name="in" argument="-in" type="data" format="idxml" optional="false" label="Input: identification results" help=" select idxml data sets(s)"/>
+    <param name="mods" argument="-mods" multiple="true" type="select" optional="true" label="List of manual modifications, specified using Unimod (www.unimod.org) terms" help="e.g. 'Carbamidomethyl (C)' or 'Oxidation (M)'">
+      <option value="">default (nothing chosen)</option>
+      <option value="15N-oxobutanoic (N-term C)">15N-oxobutanoic (N-term C)</option>
+      <option value="15N-oxobutanoic (Protein N-term S)">15N-oxobutanoic (Protein N-term S)</option>
+      <option value="15N-oxobutanoic (Protein N-term T)">15N-oxobutanoic (Protein N-term T)</option>
+      <option value="2-dimethylsuccinyl (C)">2-dimethylsuccinyl (C)</option>
+      <option value="2-monomethylsuccinyl (C)">2-monomethylsuccinyl (C)</option>
+      <option value="2-nitrobenzyl (Y)">2-nitrobenzyl (Y)</option>
+      <option value="2-succinyl (C)">2-succinyl (C)</option>
+      <option value="2HPG (R)">2HPG (R)</option>
+      <option value="3-deoxyglucosone (R)">3-deoxyglucosone (R)</option>
+      <option value="3-phosphoglyceryl (K)">3-phosphoglyceryl (K)</option>
+      <option value="3sulfo (N-term)">3sulfo (N-term)</option>
+      <option value="4-ONE (C)">4-ONE (C)</option>
+      <option value="4-ONE (H)">4-ONE (H)</option>
+      <option value="4-ONE (K)">4-ONE (K)</option>
+      <option value="4-ONE+Delta:H(-2)O(-1) (C)">4-ONE+Delta:H(-2)O(-1) (C)</option>
+      <option value="4-ONE+Delta:H(-2)O(-1) (H)">4-ONE+Delta:H(-2)O(-1) (H)</option>
+      <option value="4-ONE+Delta:H(-2)O(-1) (K)">4-ONE+Delta:H(-2)O(-1) (K)</option>
+      <option value="4AcAllylGal (C)">4AcAllylGal (C)</option>
+      <option value="a-type-ion (C-term)">a-type-ion (C-term)</option>
+      <option value="AccQTag (K)">AccQTag (K)</option>
+      <option value="AccQTag (N-term)">AccQTag (N-term)</option>
+      <option value="Acetyl (C)">Acetyl (C)</option>
+      <option value="Acetyl (H)">Acetyl (H)</option>
+      <option value="Acetyl (K)">Acetyl (K)</option>
+      <option value="Acetyl (N-term)">Acetyl (N-term)</option>
+      <option value="Acetyl (Protein N-term)">Acetyl (Protein N-term)</option>
+      <option value="Acetyl (R)">Acetyl (R)</option>
+      <option value="Acetyl (S)">Acetyl (S)</option>
+      <option value="Acetyl (T)">Acetyl (T)</option>
+      <option value="Acetyl (Y)">Acetyl (Y)</option>
+      <option value="Acetyl:13C(2) (K)">Acetyl:13C(2) (K)</option>
+      <option value="Acetyl:13C(2) (Protein N-term)">Acetyl:13C(2) (Protein N-term)</option>
+      <option value="Acetyl:2H(3) (H)">Acetyl:2H(3) (H)</option>
+      <option value="Acetyl:2H(3) (K)">Acetyl:2H(3) (K)</option>
+      <option value="Acetyl:2H(3) (N-term)">Acetyl:2H(3) (N-term)</option>
+      <option value="Acetyl:2H(3) (Protein N-term)">Acetyl:2H(3) (Protein N-term)</option>
+      <option value="Acetyl:2H(3) (S)">Acetyl:2H(3) (S)</option>
+      <option value="Acetyl:2H(3) (T)">Acetyl:2H(3) (T)</option>
+      <option value="Acetyl:2H(3) (Y)">Acetyl:2H(3) (Y)</option>
+      <option value="Acetyldeoxyhypusine (K)">Acetyldeoxyhypusine (K)</option>
+      <option value="Acetylhypusine (K)">Acetylhypusine (K)</option>
+      <option value="ADP-Ribosyl (C)">ADP-Ribosyl (C)</option>
+      <option value="ADP-Ribosyl (D)">ADP-Ribosyl (D)</option>
+      <option value="ADP-Ribosyl (E)">ADP-Ribosyl (E)</option>
+      <option value="ADP-Ribosyl (K)">ADP-Ribosyl (K)</option>
+      <option value="ADP-Ribosyl (N)">ADP-Ribosyl (N)</option>
+      <option value="ADP-Ribosyl (R)">ADP-Ribosyl (R)</option>
+      <option value="ADP-Ribosyl (S)">ADP-Ribosyl (S)</option>
+      <option value="ADP-Ribosyl (T)">ADP-Ribosyl (T)</option>
+      <option value="AEBS (H)">AEBS (H)</option>
+      <option value="AEBS (K)">AEBS (K)</option>
+      <option value="AEBS (Protein N-term)">AEBS (Protein N-term)</option>
+      <option value="AEBS (S)">AEBS (S)</option>
+      <option value="AEBS (Y)">AEBS (Y)</option>
+      <option value="AEC-MAEC (S)">AEC-MAEC (S)</option>
+      <option value="AEC-MAEC (T)">AEC-MAEC (T)</option>
+      <option value="AEC-MAEC:2H(4) (S)">AEC-MAEC:2H(4) (S)</option>
+      <option value="AEC-MAEC:2H(4) (T)">AEC-MAEC:2H(4) (T)</option>
+      <option value="AFB1_Dialdehyde (K)">AFB1_Dialdehyde (K)</option>
+      <option value="AHA-Alkyne (M)">AHA-Alkyne (M)</option>
+      <option value="AHA-Alkyne-KDDDD (M)">AHA-Alkyne-KDDDD (M)</option>
+      <option value="AHA-SS (M)">AHA-SS (M)</option>
+      <option value="AHA-SS_CAM (M)">AHA-SS_CAM (M)</option>
+      <option value="Ahx2+Hsl (C-term)">Ahx2+Hsl (C-term)</option>
+      <option value="Ala-&gt;Arg (A)">Ala-&gt;Arg (A)</option>
+      <option value="Ala-&gt;Asn (A)">Ala-&gt;Asn (A)</option>
+      <option value="Ala-&gt;Asp (A)">Ala-&gt;Asp (A)</option>
+      <option value="Ala-&gt;Cys (A)">Ala-&gt;Cys (A)</option>
+      <option value="Ala-&gt;Gln (A)">Ala-&gt;Gln (A)</option>
+      <option value="Ala-&gt;Glu (A)">Ala-&gt;Glu (A)</option>
+      <option value="Ala-&gt;Gly (A)">Ala-&gt;Gly (A)</option>
+      <option value="Ala-&gt;His (A)">Ala-&gt;His (A)</option>
+      <option value="Ala-&gt;Lys (A)">Ala-&gt;Lys (A)</option>
+      <option value="Ala-&gt;Met (A)">Ala-&gt;Met (A)</option>
+      <option value="Ala-&gt;Phe (A)">Ala-&gt;Phe (A)</option>
+      <option value="Ala-&gt;Pro (A)">Ala-&gt;Pro (A)</option>
+      <option value="Ala-&gt;Ser (A)">Ala-&gt;Ser (A)</option>
+      <option value="Ala-&gt;Thr (A)">Ala-&gt;Thr (A)</option>
+      <option value="Ala-&gt;Trp (A)">Ala-&gt;Trp (A)</option>
+      <option value="Ala-&gt;Tyr (A)">Ala-&gt;Tyr (A)</option>
+      <option value="Ala-&gt;Val (A)">Ala-&gt;Val (A)</option>
+      <option value="Ala-&gt;Xle (A)">Ala-&gt;Xle (A)</option>
+      <option value="Amidated (C-term)">Amidated (C-term)</option>
+      <option value="Amidated (Protein C-term)">Amidated (Protein C-term)</option>
+      <option value="Amidine (K)">Amidine (K)</option>
+      <option value="Amidine (N-term)">Amidine (N-term)</option>
+      <option value="Amidino (C)">Amidino (C)</option>
+      <option value="Amino (Y)">Amino (Y)</option>
+      <option value="Ammonia-loss (N)">Ammonia-loss (N)</option>
+      <option value="Ammonia-loss (N-term C)">Ammonia-loss (N-term C)</option>
+      <option value="Ammonia-loss (Protein N-term S)">Ammonia-loss (Protein N-term S)</option>
+      <option value="Ammonia-loss (Protein N-term T)">Ammonia-loss (Protein N-term T)</option>
+      <option value="Ammonium (C-term)">Ammonium (C-term)</option>
+      <option value="Ammonium (D)">Ammonium (D)</option>
+      <option value="Ammonium (E)">Ammonium (E)</option>
+      <option value="AMTzHexNAc2 (N)">AMTzHexNAc2 (N)</option>
+      <option value="AMTzHexNAc2 (S)">AMTzHexNAc2 (S)</option>
+      <option value="AMTzHexNAc2 (T)">AMTzHexNAc2 (T)</option>
+      <option value="Archaeol (C)">Archaeol (C)</option>
+      <option value="Arg (N-term)">Arg (N-term)</option>
+      <option value="Arg-&gt;Ala (R)">Arg-&gt;Ala (R)</option>
+      <option value="Arg-&gt;Asn (R)">Arg-&gt;Asn (R)</option>
+      <option value="Arg-&gt;Asp (R)">Arg-&gt;Asp (R)</option>
+      <option value="Arg-&gt;Cys (R)">Arg-&gt;Cys (R)</option>
+      <option value="Arg-&gt;Gln (R)">Arg-&gt;Gln (R)</option>
+      <option value="Arg-&gt;Glu (R)">Arg-&gt;Glu (R)</option>
+      <option value="Arg-&gt;GluSA (R)">Arg-&gt;GluSA (R)</option>
+      <option value="Arg-&gt;Gly (R)">Arg-&gt;Gly (R)</option>
+      <option value="Arg-&gt;His (R)">Arg-&gt;His (R)</option>
+      <option value="Arg-&gt;Lys (R)">Arg-&gt;Lys (R)</option>
+      <option value="Arg-&gt;Met (R)">Arg-&gt;Met (R)</option>
+      <option value="Arg-&gt;Npo (R)">Arg-&gt;Npo (R)</option>
+      <option value="Arg-&gt;Orn (R)">Arg-&gt;Orn (R)</option>
+      <option value="Arg-&gt;Phe (R)">Arg-&gt;Phe (R)</option>
+      <option value="Arg-&gt;Pro (R)">Arg-&gt;Pro (R)</option>
+      <option value="Arg-&gt;Ser (R)">Arg-&gt;Ser (R)</option>
+      <option value="Arg-&gt;Thr (R)">Arg-&gt;Thr (R)</option>
+      <option value="Arg-&gt;Trp (R)">Arg-&gt;Trp (R)</option>
+      <option value="Arg-&gt;Tyr (R)">Arg-&gt;Tyr (R)</option>
+      <option value="Arg-&gt;Val (R)">Arg-&gt;Val (R)</option>
+      <option value="Arg-&gt;Xle (R)">Arg-&gt;Xle (R)</option>
+      <option value="Arg-loss (C-term R)">Arg-loss (C-term R)</option>
+      <option value="Arg2PG (R)">Arg2PG (R)</option>
+      <option value="Argbiotinhydrazide (R)">Argbiotinhydrazide (R)</option>
+      <option value="AROD (C)">AROD (C)</option>
+      <option value="Asn-&gt;Ala (N)">Asn-&gt;Ala (N)</option>
+      <option value="Asn-&gt;Arg (N)">Asn-&gt;Arg (N)</option>
+      <option value="Asn-&gt;Asp (N)">Asn-&gt;Asp (N)</option>
+      <option value="Asn-&gt;Cys (N)">Asn-&gt;Cys (N)</option>
+      <option value="Asn-&gt;Gln (N)">Asn-&gt;Gln (N)</option>
+      <option value="Asn-&gt;Glu (N)">Asn-&gt;Glu (N)</option>
+      <option value="Asn-&gt;Gly (N)">Asn-&gt;Gly (N)</option>
+      <option value="Asn-&gt;His (N)">Asn-&gt;His (N)</option>
+      <option value="Asn-&gt;Lys (N)">Asn-&gt;Lys (N)</option>
+      <option value="Asn-&gt;Met (N)">Asn-&gt;Met (N)</option>
+      <option value="Asn-&gt;Phe (N)">Asn-&gt;Phe (N)</option>
+      <option value="Asn-&gt;Pro (N)">Asn-&gt;Pro (N)</option>
+      <option value="Asn-&gt;Ser (N)">Asn-&gt;Ser (N)</option>
+      <option value="Asn-&gt;Thr (N)">Asn-&gt;Thr (N)</option>
+      <option value="Asn-&gt;Trp (N)">Asn-&gt;Trp (N)</option>
+      <option value="Asn-&gt;Tyr (N)">Asn-&gt;Tyr (N)</option>
+      <option value="Asn-&gt;Val (N)">Asn-&gt;Val (N)</option>
+      <option value="Asn-&gt;Xle (N)">Asn-&gt;Xle (N)</option>
+      <option value="Asp-&gt;Ala (D)">Asp-&gt;Ala (D)</option>
+      <option value="Asp-&gt;Arg (D)">Asp-&gt;Arg (D)</option>
+      <option value="Asp-&gt;Asn (D)">Asp-&gt;Asn (D)</option>
+      <option value="Asp-&gt;Cys (D)">Asp-&gt;Cys (D)</option>
+      <option value="Asp-&gt;Gln (D)">Asp-&gt;Gln (D)</option>
+      <option value="Asp-&gt;Glu (D)">Asp-&gt;Glu (D)</option>
+      <option value="Asp-&gt;Gly (D)">Asp-&gt;Gly (D)</option>
+      <option value="Asp-&gt;His (D)">Asp-&gt;His (D)</option>
+      <option value="Asp-&gt;Lys (D)">Asp-&gt;Lys (D)</option>
+      <option value="Asp-&gt;Met (D)">Asp-&gt;Met (D)</option>
+      <option value="Asp-&gt;Phe (D)">Asp-&gt;Phe (D)</option>
+      <option value="Asp-&gt;Pro (D)">Asp-&gt;Pro (D)</option>
+      <option value="Asp-&gt;Ser (D)">Asp-&gt;Ser (D)</option>
+      <option value="Asp-&gt;Thr (D)">Asp-&gt;Thr (D)</option>
+      <option value="Asp-&gt;Trp (D)">Asp-&gt;Trp (D)</option>
+      <option value="Asp-&gt;Tyr (D)">Asp-&gt;Tyr (D)</option>
+      <option value="Asp-&gt;Val (D)">Asp-&gt;Val (D)</option>
+      <option value="Asp-&gt;Xle (D)">Asp-&gt;Xle (D)</option>
+      <option value="Aspartylurea (H)">Aspartylurea (H)</option>
+      <option value="Atto495Maleimide (C)">Atto495Maleimide (C)</option>
+      <option value="AzidoF (F)">AzidoF (F)</option>
+      <option value="azole (C)">azole (C)</option>
+      <option value="azole (S)">azole (S)</option>
+      <option value="Bacillosamine (N)">Bacillosamine (N)</option>
+      <option value="BADGE (C)">BADGE (C)</option>
+      <option value="BDMAPP (H)">BDMAPP (H)</option>
+      <option value="BDMAPP (K)">BDMAPP (K)</option>
+      <option value="BDMAPP (Protein N-term)">BDMAPP (Protein N-term)</option>
+      <option value="BDMAPP (W)">BDMAPP (W)</option>
+      <option value="BDMAPP (Y)">BDMAPP (Y)</option>
+      <option value="BEMAD_C (C)">BEMAD_C (C)</option>
+      <option value="BEMAD_C:2H(6) (C)">BEMAD_C:2H(6) (C)</option>
+      <option value="BEMAD_ST (S)">BEMAD_ST (S)</option>
+      <option value="BEMAD_ST (T)">BEMAD_ST (T)</option>
+      <option value="BEMAD_ST:2H(6) (S)">BEMAD_ST:2H(6) (S)</option>
+      <option value="BEMAD_ST:2H(6) (T)">BEMAD_ST:2H(6) (T)</option>
+      <option value="Benzoyl (K)">Benzoyl (K)</option>
+      <option value="Benzoyl (N-term)">Benzoyl (N-term)</option>
+      <option value="benzylguanidine (K)">benzylguanidine (K)</option>
+      <option value="betaFNA (C)">betaFNA (C)</option>
+      <option value="betaFNA (K)">betaFNA (K)</option>
+      <option value="BHT (C)">BHT (C)</option>
+      <option value="BHT (H)">BHT (H)</option>
+      <option value="BHT (K)">BHT (K)</option>
+      <option value="BHTOH (C)">BHTOH (C)</option>
+      <option value="BHTOH (H)">BHTOH (H)</option>
+      <option value="BHTOH (K)">BHTOH (K)</option>
+      <option value="Biotin (K)">Biotin (K)</option>
+      <option value="Biotin (N-term)">Biotin (N-term)</option>
+      <option value="Biotin-HPDP (C)">Biotin-HPDP (C)</option>
+      <option value="Biotin-PEG-PRA (M)">Biotin-PEG-PRA (M)</option>
+      <option value="Biotin-PEO-Amine (D)">Biotin-PEO-Amine (D)</option>
+      <option value="Biotin-PEO-Amine (E)">Biotin-PEO-Amine (E)</option>
+      <option value="Biotin-PEO-Amine (Protein C-term)">Biotin-PEO-Amine (Protein C-term)</option>
+      <option value="Biotin-phenacyl (C)">Biotin-phenacyl (C)</option>
+      <option value="Biotin-phenacyl (H)">Biotin-phenacyl (H)</option>
+      <option value="Biotin-phenacyl (S)">Biotin-phenacyl (S)</option>
+      <option value="Biotin-tyramide (Y)">Biotin-tyramide (Y)</option>
+      <option value="Biotin:Cayman-10013 (C)">Biotin:Cayman-10013 (C)</option>
+      <option value="Biotin:Cayman-10141 (C)">Biotin:Cayman-10141 (C)</option>
+      <option value="Biotin:Invitrogen-M1602 (C)">Biotin:Invitrogen-M1602 (C)</option>
+      <option value="Biotin:Sigma-B1267 (C)">Biotin:Sigma-B1267 (C)</option>
+      <option value="Biotin:Thermo-21325 (K)">Biotin:Thermo-21325 (K)</option>
+      <option value="Biotin:Thermo-21328 (K)">Biotin:Thermo-21328 (K)</option>
+      <option value="Biotin:Thermo-21328 (N-term)">Biotin:Thermo-21328 (N-term)</option>
+      <option value="Biotin:Thermo-21330 (K)">Biotin:Thermo-21330 (K)</option>
+      <option value="Biotin:Thermo-21330 (N-term)">Biotin:Thermo-21330 (N-term)</option>
+      <option value="Biotin:Thermo-21345 (Q)">Biotin:Thermo-21345 (Q)</option>
+      <option value="Biotin:Thermo-21360 (X)">Biotin:Thermo-21360 (X)</option>
+      <option value="Biotin:Thermo-21901+2H2O (C)">Biotin:Thermo-21901+2H2O (C)</option>
+      <option value="Biotin:Thermo-21901+H2O (C)">Biotin:Thermo-21901+H2O (C)</option>
+      <option value="Biotin:Thermo-21911 (C)">Biotin:Thermo-21911 (C)</option>
+      <option value="Biotin:Thermo-33033 (X)">Biotin:Thermo-33033 (X)</option>
+      <option value="Biotin:Thermo-33033-H (X)">Biotin:Thermo-33033-H (X)</option>
+      <option value="Biotin:Thermo-88310 (K)">Biotin:Thermo-88310 (K)</option>
+      <option value="Biotin:Thermo-88317 (S)">Biotin:Thermo-88317 (S)</option>
+      <option value="Biotin:Thermo-88317 (Y)">Biotin:Thermo-88317 (Y)</option>
+      <option value="biotinAcrolein298 (C)">biotinAcrolein298 (C)</option>
+      <option value="biotinAcrolein298 (H)">biotinAcrolein298 (H)</option>
+      <option value="biotinAcrolein298 (K)">biotinAcrolein298 (K)</option>
+      <option value="biotinAcrolein298 (Protein N-term)">biotinAcrolein298 (Protein N-term)</option>
+      <option value="BisANS (K)">BisANS (K)</option>
+      <option value="bisANS-sulfonates (K)">bisANS-sulfonates (K)</option>
+      <option value="bisANS-sulfonates (S)">bisANS-sulfonates (S)</option>
+      <option value="bisANS-sulfonates (T)">bisANS-sulfonates (T)</option>
+      <option value="BITC (C)">BITC (C)</option>
+      <option value="BITC (K)">BITC (K)</option>
+      <option value="BITC (N-term)">BITC (N-term)</option>
+      <option value="BMP-piperidinol (C)">BMP-piperidinol (C)</option>
+      <option value="BMP-piperidinol (M)">BMP-piperidinol (M)</option>
+      <option value="Bodipy (C)">Bodipy (C)</option>
+      <option value="Brij35 (N-term)">Brij35 (N-term)</option>
+      <option value="Brij58 (N-term)">Brij58 (N-term)</option>
+      <option value="Bromo (F)">Bromo (F)</option>
+      <option value="Bromo (H)">Bromo (H)</option>
+      <option value="Bromo (W)">Bromo (W)</option>
+      <option value="Bromo (Y)">Bromo (Y)</option>
+      <option value="Bromobimane (C)">Bromobimane (C)</option>
+      <option value="Butyryl (K)">Butyryl (K)</option>
+      <option value="C8-QAT (K)">C8-QAT (K)</option>
+      <option value="C8-QAT (N-term)">C8-QAT (N-term)</option>
+      <option value="CAF (N-term)">CAF (N-term)</option>
+      <option value="CAMthiopropanoyl (K)">CAMthiopropanoyl (K)</option>
+      <option value="CAMthiopropanoyl (Protein N-term)">CAMthiopropanoyl (Protein N-term)</option>
+      <option value="Can-FP-biotin (S)">Can-FP-biotin (S)</option>
+      <option value="Can-FP-biotin (T)">Can-FP-biotin (T)</option>
+      <option value="Can-FP-biotin (Y)">Can-FP-biotin (Y)</option>
+      <option value="Carbamidomethyl (C)">Carbamidomethyl (C)</option>
+      <option value="Carbamidomethyl (D)">Carbamidomethyl (D)</option>
+      <option value="Carbamidomethyl (E)">Carbamidomethyl (E)</option>
+      <option value="Carbamidomethyl (H)">Carbamidomethyl (H)</option>
+      <option value="Carbamidomethyl (K)">Carbamidomethyl (K)</option>
+      <option value="Carbamidomethyl (M)">Carbamidomethyl (M)</option>
+      <option value="Carbamidomethyl (N-term)">Carbamidomethyl (N-term)</option>
+      <option value="Carbamidomethyl (S)">Carbamidomethyl (S)</option>
+      <option value="Carbamidomethyl (T)">Carbamidomethyl (T)</option>
+      <option value="Carbamidomethyl (U)">Carbamidomethyl (U)</option>
+      <option value="Carbamidomethyl (Y)">Carbamidomethyl (Y)</option>
+      <option value="CarbamidomethylDTT (C)">CarbamidomethylDTT (C)</option>
+      <option value="Carbamyl (C)">Carbamyl (C)</option>
+      <option value="Carbamyl (K)">Carbamyl (K)</option>
+      <option value="Carbamyl (M)">Carbamyl (M)</option>
+      <option value="Carbamyl (N-term)">Carbamyl (N-term)</option>
+      <option value="Carbamyl (Protein N-term)">Carbamyl (Protein N-term)</option>
+      <option value="Carbamyl (R)">Carbamyl (R)</option>
+      <option value="Carbamyl (S)">Carbamyl (S)</option>
+      <option value="Carbamyl (T)">Carbamyl (T)</option>
+      <option value="Carbamyl (Y)">Carbamyl (Y)</option>
+      <option value="Carbofuran (S)">Carbofuran (S)</option>
+      <option value="Carbonyl (A)">Carbonyl (A)</option>
+      <option value="Carbonyl (E)">Carbonyl (E)</option>
+      <option value="Carbonyl (I)">Carbonyl (I)</option>
+      <option value="Carbonyl (L)">Carbonyl (L)</option>
+      <option value="Carbonyl (Q)">Carbonyl (Q)</option>
+      <option value="Carbonyl (R)">Carbonyl (R)</option>
+      <option value="Carbonyl (S)">Carbonyl (S)</option>
+      <option value="Carbonyl (V)">Carbonyl (V)</option>
+      <option value="Carboxy (D)">Carboxy (D)</option>
+      <option value="Carboxy (E)">Carboxy (E)</option>
+      <option value="Carboxy (K)">Carboxy (K)</option>
+      <option value="Carboxy (Protein N-term M)">Carboxy (Protein N-term M)</option>
+      <option value="Carboxy (W)">Carboxy (W)</option>
+      <option value="Carboxy-&gt;Thiocarboxy (Protein C-term G)">Carboxy-&gt;Thiocarboxy (Protein C-term G)</option>
+      <option value="Carboxyethyl (H)">Carboxyethyl (H)</option>
+      <option value="Carboxyethyl (K)">Carboxyethyl (K)</option>
+      <option value="Carboxyethylpyrrole (K)">Carboxyethylpyrrole (K)</option>
+      <option value="Carboxymethyl (C)">Carboxymethyl (C)</option>
+      <option value="Carboxymethyl (K)">Carboxymethyl (K)</option>
+      <option value="Carboxymethyl (N-term)">Carboxymethyl (N-term)</option>
+      <option value="Carboxymethyl (U)">Carboxymethyl (U)</option>
+      <option value="Carboxymethyl (W)">Carboxymethyl (W)</option>
+      <option value="Carboxymethyl:13C(2) (C)">Carboxymethyl:13C(2) (C)</option>
+      <option value="CarboxymethylDMAP (N-term)">CarboxymethylDMAP (N-term)</option>
+      <option value="CarboxymethylDTT (C)">CarboxymethylDTT (C)</option>
+      <option value="Cation:Ag (C-term)">Cation:Ag (C-term)</option>
+      <option value="Cation:Ag (D)">Cation:Ag (D)</option>
+      <option value="Cation:Ag (E)">Cation:Ag (E)</option>
+      <option value="Cation:Al[III] (C-term)">Cation:Al[III] (C-term)</option>
+      <option value="Cation:Al[III] (D)">Cation:Al[III] (D)</option>
+      <option value="Cation:Al[III] (E)">Cation:Al[III] (E)</option>
+      <option value="Cation:Ca[II] (C-term)">Cation:Ca[II] (C-term)</option>
+      <option value="Cation:Ca[II] (D)">Cation:Ca[II] (D)</option>
+      <option value="Cation:Ca[II] (E)">Cation:Ca[II] (E)</option>
+      <option value="Cation:Cu[I] (C-term)">Cation:Cu[I] (C-term)</option>
+      <option value="Cation:Cu[I] (D)">Cation:Cu[I] (D)</option>
+      <option value="Cation:Cu[I] (E)">Cation:Cu[I] (E)</option>
+      <option value="Cation:Cu[I] (H)">Cation:Cu[I] (H)</option>
+      <option value="Cation:Fe[II] (C-term)">Cation:Fe[II] (C-term)</option>
+      <option value="Cation:Fe[II] (D)">Cation:Fe[II] (D)</option>
+      <option value="Cation:Fe[II] (E)">Cation:Fe[II] (E)</option>
+      <option value="Cation:Fe[III] (C-term)">Cation:Fe[III] (C-term)</option>
+      <option value="Cation:Fe[III] (D)">Cation:Fe[III] (D)</option>
+      <option value="Cation:Fe[III] (E)">Cation:Fe[III] (E)</option>
+      <option value="Cation:K (C-term)">Cation:K (C-term)</option>
+      <option value="Cation:K (D)">Cation:K (D)</option>
+      <option value="Cation:K (E)">Cation:K (E)</option>
+      <option value="Cation:Li (C-term)">Cation:Li (C-term)</option>
+      <option value="Cation:Li (D)">Cation:Li (D)</option>
+      <option value="Cation:Li (E)">Cation:Li (E)</option>
+      <option value="Cation:Mg[II] (C-term)">Cation:Mg[II] (C-term)</option>
+      <option value="Cation:Mg[II] (D)">Cation:Mg[II] (D)</option>
+      <option value="Cation:Mg[II] (E)">Cation:Mg[II] (E)</option>
+      <option value="Cation:Na (C-term)">Cation:Na (C-term)</option>
+      <option value="Cation:Na (D)">Cation:Na (D)</option>
+      <option value="Cation:Na (E)">Cation:Na (E)</option>
+      <option value="Cation:Ni[II] (C-term)">Cation:Ni[II] (C-term)</option>
+      <option value="Cation:Ni[II] (D)">Cation:Ni[II] (D)</option>
+      <option value="Cation:Ni[II] (E)">Cation:Ni[II] (E)</option>
+      <option value="Cation:Zn[II] (C-term)">Cation:Zn[II] (C-term)</option>
+      <option value="Cation:Zn[II] (D)">Cation:Zn[II] (D)</option>
+      <option value="Cation:Zn[II] (E)">Cation:Zn[II] (E)</option>
+      <option value="Cation:Zn[II] (H)">Cation:Zn[II] (H)</option>
+      <option value="cGMP (C)">cGMP (C)</option>
+      <option value="cGMP (S)">cGMP (S)</option>
+      <option value="cGMP+RMP-loss (C)">cGMP+RMP-loss (C)</option>
+      <option value="cGMP+RMP-loss (S)">cGMP+RMP-loss (S)</option>
+      <option value="CHDH (D)">CHDH (D)</option>
+      <option value="Chlorination (W)">Chlorination (W)</option>
+      <option value="Chlorination (Y)">Chlorination (Y)</option>
+      <option value="Cholesterol (Protein C-term)">Cholesterol (Protein C-term)</option>
+      <option value="CIGG (K)">CIGG (K)</option>
+      <option value="CLIP_TRAQ_2 (K)">CLIP_TRAQ_2 (K)</option>
+      <option value="CLIP_TRAQ_2 (N-term)">CLIP_TRAQ_2 (N-term)</option>
+      <option value="CLIP_TRAQ_2 (Y)">CLIP_TRAQ_2 (Y)</option>
+      <option value="CLIP_TRAQ_3 (K)">CLIP_TRAQ_3 (K)</option>
+      <option value="CLIP_TRAQ_3 (N-term)">CLIP_TRAQ_3 (N-term)</option>
+      <option value="CLIP_TRAQ_3 (Y)">CLIP_TRAQ_3 (Y)</option>
+      <option value="CLIP_TRAQ_4 (K)">CLIP_TRAQ_4 (K)</option>
+      <option value="CLIP_TRAQ_4 (N-term)">CLIP_TRAQ_4 (N-term)</option>
+      <option value="CLIP_TRAQ_4 (Y)">CLIP_TRAQ_4 (Y)</option>
+      <option value="CoenzymeA (C)">CoenzymeA (C)</option>
+      <option value="Cresylphosphate (H)">Cresylphosphate (H)</option>
+      <option value="Cresylphosphate (K)">Cresylphosphate (K)</option>
+      <option value="Cresylphosphate (R)">Cresylphosphate (R)</option>
+      <option value="Cresylphosphate (S)">Cresylphosphate (S)</option>
+      <option value="Cresylphosphate (T)">Cresylphosphate (T)</option>
+      <option value="Cresylphosphate (Y)">Cresylphosphate (Y)</option>
+      <option value="CresylSaligeninPhosphate (H)">CresylSaligeninPhosphate (H)</option>
+      <option value="CresylSaligeninPhosphate (K)">CresylSaligeninPhosphate (K)</option>
+      <option value="CresylSaligeninPhosphate (R)">CresylSaligeninPhosphate (R)</option>
+      <option value="CresylSaligeninPhosphate (S)">CresylSaligeninPhosphate (S)</option>
+      <option value="CresylSaligeninPhosphate (T)">CresylSaligeninPhosphate (T)</option>
+      <option value="CresylSaligeninPhosphate (Y)">CresylSaligeninPhosphate (Y)</option>
+      <option value="Crotonaldehyde (C)">Crotonaldehyde (C)</option>
+      <option value="Crotonaldehyde (H)">Crotonaldehyde (H)</option>
+      <option value="Crotonaldehyde (K)">Crotonaldehyde (K)</option>
+      <option value="Crotonyl (K)">Crotonyl (K)</option>
+      <option value="CuSMo (C)">CuSMo (C)</option>
+      <option value="CUSTOM0 (A)">CUSTOM0 (A)</option>
+      <option value="CUSTOM0 (C)">CUSTOM0 (C)</option>
+      <option value="CUSTOM0 (C-term)">CUSTOM0 (C-term)</option>
+      <option value="CUSTOM0 (D)">CUSTOM0 (D)</option>
+      <option value="CUSTOM0 (E)">CUSTOM0 (E)</option>
+      <option value="CUSTOM0 (F)">CUSTOM0 (F)</option>
+      <option value="CUSTOM0 (G)">CUSTOM0 (G)</option>
+      <option value="CUSTOM0 (H)">CUSTOM0 (H)</option>
+      <option value="CUSTOM0 (I)">CUSTOM0 (I)</option>
+      <option value="CUSTOM0 (K)">CUSTOM0 (K)</option>
+      <option value="CUSTOM0 (L)">CUSTOM0 (L)</option>
+      <option value="CUSTOM0 (M)">CUSTOM0 (M)</option>
+      <option value="CUSTOM0 (N)">CUSTOM0 (N)</option>
+      <option value="CUSTOM0 (N-term)">CUSTOM0 (N-term)</option>
+      <option value="CUSTOM0 (P)">CUSTOM0 (P)</option>
+      <option value="CUSTOM0 (Q)">CUSTOM0 (Q)</option>
+      <option value="CUSTOM0 (R)">CUSTOM0 (R)</option>
+      <option value="CUSTOM0 (S)">CUSTOM0 (S)</option>
+      <option value="CUSTOM0 (T)">CUSTOM0 (T)</option>
+      <option value="CUSTOM0 (V)">CUSTOM0 (V)</option>
+      <option value="CUSTOM0 (W)">CUSTOM0 (W)</option>
+      <option value="CUSTOM0 (Y)">CUSTOM0 (Y)</option>
+      <option value="CUSTOM1 (A)">CUSTOM1 (A)</option>
+      <option value="CUSTOM1 (C)">CUSTOM1 (C)</option>
+      <option value="CUSTOM1 (C-term)">CUSTOM1 (C-term)</option>
+      <option value="CUSTOM1 (D)">CUSTOM1 (D)</option>
+      <option value="CUSTOM1 (E)">CUSTOM1 (E)</option>
+      <option value="CUSTOM1 (F)">CUSTOM1 (F)</option>
+      <option value="CUSTOM1 (G)">CUSTOM1 (G)</option>
+      <option value="CUSTOM1 (H)">CUSTOM1 (H)</option>
+      <option value="CUSTOM1 (I)">CUSTOM1 (I)</option>
+      <option value="CUSTOM1 (K)">CUSTOM1 (K)</option>
+      <option value="CUSTOM1 (L)">CUSTOM1 (L)</option>
+      <option value="CUSTOM1 (M)">CUSTOM1 (M)</option>
+      <option value="CUSTOM1 (N)">CUSTOM1 (N)</option>
+      <option value="CUSTOM1 (N-term)">CUSTOM1 (N-term)</option>
+      <option value="CUSTOM1 (P)">CUSTOM1 (P)</option>
+      <option value="CUSTOM1 (Q)">CUSTOM1 (Q)</option>
+      <option value="CUSTOM1 (R)">CUSTOM1 (R)</option>
+      <option value="CUSTOM1 (S)">CUSTOM1 (S)</option>
+      <option value="CUSTOM1 (T)">CUSTOM1 (T)</option>
+      <option value="CUSTOM1 (V)">CUSTOM1 (V)</option>
+      <option value="CUSTOM1 (W)">CUSTOM1 (W)</option>
+      <option value="CUSTOM1 (Y)">CUSTOM1 (Y)</option>
+      <option value="CUSTOM2 (A)">CUSTOM2 (A)</option>
+      <option value="CUSTOM2 (C)">CUSTOM2 (C)</option>
+      <option value="CUSTOM2 (C-term)">CUSTOM2 (C-term)</option>
+      <option value="CUSTOM2 (D)">CUSTOM2 (D)</option>
+      <option value="CUSTOM2 (E)">CUSTOM2 (E)</option>
+      <option value="CUSTOM2 (F)">CUSTOM2 (F)</option>
+      <option value="CUSTOM2 (G)">CUSTOM2 (G)</option>
+      <option value="CUSTOM2 (H)">CUSTOM2 (H)</option>
+      <option value="CUSTOM2 (I)">CUSTOM2 (I)</option>
+      <option value="CUSTOM2 (K)">CUSTOM2 (K)</option>
+      <option value="CUSTOM2 (L)">CUSTOM2 (L)</option>
+      <option value="CUSTOM2 (M)">CUSTOM2 (M)</option>
+      <option value="CUSTOM2 (N)">CUSTOM2 (N)</option>
+      <option value="CUSTOM2 (N-term)">CUSTOM2 (N-term)</option>
+      <option value="CUSTOM2 (P)">CUSTOM2 (P)</option>
+      <option value="CUSTOM2 (Q)">CUSTOM2 (Q)</option>
+      <option value="CUSTOM2 (R)">CUSTOM2 (R)</option>
+      <option value="CUSTOM2 (S)">CUSTOM2 (S)</option>
+      <option value="CUSTOM2 (T)">CUSTOM2 (T)</option>
+      <option value="CUSTOM2 (V)">CUSTOM2 (V)</option>
+      <option value="CUSTOM2 (W)">CUSTOM2 (W)</option>
+      <option value="CUSTOM2 (Y)">CUSTOM2 (Y)</option>
+      <option value="CUSTOM3 (A)">CUSTOM3 (A)</option>
+      <option value="CUSTOM3 (C)">CUSTOM3 (C)</option>
+      <option value="CUSTOM3 (C-term)">CUSTOM3 (C-term)</option>
+      <option value="CUSTOM3 (D)">CUSTOM3 (D)</option>
+      <option value="CUSTOM3 (E)">CUSTOM3 (E)</option>
+      <option value="CUSTOM3 (F)">CUSTOM3 (F)</option>
+      <option value="CUSTOM3 (G)">CUSTOM3 (G)</option>
+      <option value="CUSTOM3 (H)">CUSTOM3 (H)</option>
+      <option value="CUSTOM3 (I)">CUSTOM3 (I)</option>
+      <option value="CUSTOM3 (K)">CUSTOM3 (K)</option>
+      <option value="CUSTOM3 (L)">CUSTOM3 (L)</option>
+      <option value="CUSTOM3 (M)">CUSTOM3 (M)</option>
+      <option value="CUSTOM3 (N)">CUSTOM3 (N)</option>
+      <option value="CUSTOM3 (N-term)">CUSTOM3 (N-term)</option>
+      <option value="CUSTOM3 (P)">CUSTOM3 (P)</option>
+      <option value="CUSTOM3 (Q)">CUSTOM3 (Q)</option>
+      <option value="CUSTOM3 (R)">CUSTOM3 (R)</option>
+      <option value="CUSTOM3 (S)">CUSTOM3 (S)</option>
+      <option value="CUSTOM3 (T)">CUSTOM3 (T)</option>
+      <option value="CUSTOM3 (V)">CUSTOM3 (V)</option>
+      <option value="CUSTOM3 (W)">CUSTOM3 (W)</option>
+      <option value="CUSTOM3 (Y)">CUSTOM3 (Y)</option>
+      <option value="CUSTOM4 (A)">CUSTOM4 (A)</option>
+      <option value="CUSTOM4 (C)">CUSTOM4 (C)</option>
+      <option value="CUSTOM4 (C-term)">CUSTOM4 (C-term)</option>
+      <option value="CUSTOM4 (D)">CUSTOM4 (D)</option>
+      <option value="CUSTOM4 (E)">CUSTOM4 (E)</option>
+      <option value="CUSTOM4 (F)">CUSTOM4 (F)</option>
+      <option value="CUSTOM4 (G)">CUSTOM4 (G)</option>
+      <option value="CUSTOM4 (H)">CUSTOM4 (H)</option>
+      <option value="CUSTOM4 (I)">CUSTOM4 (I)</option>
+      <option value="CUSTOM4 (K)">CUSTOM4 (K)</option>
+      <option value="CUSTOM4 (L)">CUSTOM4 (L)</option>
+      <option value="CUSTOM4 (M)">CUSTOM4 (M)</option>
+      <option value="CUSTOM4 (N)">CUSTOM4 (N)</option>
+      <option value="CUSTOM4 (N-term)">CUSTOM4 (N-term)</option>
+      <option value="CUSTOM4 (P)">CUSTOM4 (P)</option>
+      <option value="CUSTOM4 (Q)">CUSTOM4 (Q)</option>
+      <option value="CUSTOM4 (R)">CUSTOM4 (R)</option>
+      <option value="CUSTOM4 (S)">CUSTOM4 (S)</option>
+      <option value="CUSTOM4 (T)">CUSTOM4 (T)</option>
+      <option value="CUSTOM4 (V)">CUSTOM4 (V)</option>
+      <option value="CUSTOM4 (W)">CUSTOM4 (W)</option>
+      <option value="CUSTOM4 (Y)">CUSTOM4 (Y)</option>
+      <option value="CUSTOM5 (A)">CUSTOM5 (A)</option>
+      <option value="CUSTOM5 (C)">CUSTOM5 (C)</option>
+      <option value="CUSTOM5 (C-term)">CUSTOM5 (C-term)</option>
+      <option value="CUSTOM5 (D)">CUSTOM5 (D)</option>
+      <option value="CUSTOM5 (E)">CUSTOM5 (E)</option>
+      <option value="CUSTOM5 (F)">CUSTOM5 (F)</option>
+      <option value="CUSTOM5 (G)">CUSTOM5 (G)</option>
+      <option value="CUSTOM5 (H)">CUSTOM5 (H)</option>
+      <option value="CUSTOM5 (I)">CUSTOM5 (I)</option>
+      <option value="CUSTOM5 (K)">CUSTOM5 (K)</option>
+      <option value="CUSTOM5 (L)">CUSTOM5 (L)</option>
+      <option value="CUSTOM5 (M)">CUSTOM5 (M)</option>
+      <option value="CUSTOM5 (N)">CUSTOM5 (N)</option>
+      <option value="CUSTOM5 (N-term)">CUSTOM5 (N-term)</option>
+      <option value="CUSTOM5 (P)">CUSTOM5 (P)</option>
+      <option value="CUSTOM5 (Q)">CUSTOM5 (Q)</option>
+      <option value="CUSTOM5 (R)">CUSTOM5 (R)</option>
+      <option value="CUSTOM5 (S)">CUSTOM5 (S)</option>
+      <option value="CUSTOM5 (T)">CUSTOM5 (T)</option>
+      <option value="CUSTOM5 (V)">CUSTOM5 (V)</option>
+      <option value="CUSTOM5 (W)">CUSTOM5 (W)</option>
+      <option value="CUSTOM5 (Y)">CUSTOM5 (Y)</option>
+      <option value="CUSTOM6 (A)">CUSTOM6 (A)</option>
+      <option value="CUSTOM6 (C)">CUSTOM6 (C)</option>
+      <option value="CUSTOM6 (C-term)">CUSTOM6 (C-term)</option>
+      <option value="CUSTOM6 (D)">CUSTOM6 (D)</option>
+      <option value="CUSTOM6 (E)">CUSTOM6 (E)</option>
+      <option value="CUSTOM6 (F)">CUSTOM6 (F)</option>
+      <option value="CUSTOM6 (G)">CUSTOM6 (G)</option>
+      <option value="CUSTOM6 (H)">CUSTOM6 (H)</option>
+      <option value="CUSTOM6 (I)">CUSTOM6 (I)</option>
+      <option value="CUSTOM6 (K)">CUSTOM6 (K)</option>
+      <option value="CUSTOM6 (L)">CUSTOM6 (L)</option>
+      <option value="CUSTOM6 (M)">CUSTOM6 (M)</option>
+      <option value="CUSTOM6 (N)">CUSTOM6 (N)</option>
+      <option value="CUSTOM6 (N-term)">CUSTOM6 (N-term)</option>
+      <option value="CUSTOM6 (P)">CUSTOM6 (P)</option>
+      <option value="CUSTOM6 (Q)">CUSTOM6 (Q)</option>
+      <option value="CUSTOM6 (R)">CUSTOM6 (R)</option>
+      <option value="CUSTOM6 (S)">CUSTOM6 (S)</option>
+      <option value="CUSTOM6 (T)">CUSTOM6 (T)</option>
+      <option value="CUSTOM6 (V)">CUSTOM6 (V)</option>
+      <option value="CUSTOM6 (W)">CUSTOM6 (W)</option>
+      <option value="CUSTOM6 (Y)">CUSTOM6 (Y)</option>
+      <option value="CUSTOM7 (A)">CUSTOM7 (A)</option>
+      <option value="CUSTOM7 (C)">CUSTOM7 (C)</option>
+      <option value="CUSTOM7 (C-term)">CUSTOM7 (C-term)</option>
+      <option value="CUSTOM7 (D)">CUSTOM7 (D)</option>
+      <option value="CUSTOM7 (E)">CUSTOM7 (E)</option>
+      <option value="CUSTOM7 (F)">CUSTOM7 (F)</option>
+      <option value="CUSTOM7 (G)">CUSTOM7 (G)</option>
+      <option value="CUSTOM7 (H)">CUSTOM7 (H)</option>
+      <option value="CUSTOM7 (I)">CUSTOM7 (I)</option>
+      <option value="CUSTOM7 (K)">CUSTOM7 (K)</option>
+      <option value="CUSTOM7 (L)">CUSTOM7 (L)</option>
+      <option value="CUSTOM7 (M)">CUSTOM7 (M)</option>
+      <option value="CUSTOM7 (N)">CUSTOM7 (N)</option>
+      <option value="CUSTOM7 (N-term)">CUSTOM7 (N-term)</option>
+      <option value="CUSTOM7 (P)">CUSTOM7 (P)</option>
+      <option value="CUSTOM7 (Q)">CUSTOM7 (Q)</option>
+      <option value="CUSTOM7 (R)">CUSTOM7 (R)</option>
+      <option value="CUSTOM7 (S)">CUSTOM7 (S)</option>
+      <option value="CUSTOM7 (T)">CUSTOM7 (T)</option>
+      <option value="CUSTOM7 (V)">CUSTOM7 (V)</option>
+      <option value="CUSTOM7 (W)">CUSTOM7 (W)</option>
+      <option value="CUSTOM7 (Y)">CUSTOM7 (Y)</option>
+      <option value="CUSTOM8 (A)">CUSTOM8 (A)</option>
+      <option value="CUSTOM8 (C)">CUSTOM8 (C)</option>
+      <option value="CUSTOM8 (C-term)">CUSTOM8 (C-term)</option>
+      <option value="CUSTOM8 (D)">CUSTOM8 (D)</option>
+      <option value="CUSTOM8 (E)">CUSTOM8 (E)</option>
+      <option value="CUSTOM8 (F)">CUSTOM8 (F)</option>
+      <option value="CUSTOM8 (G)">CUSTOM8 (G)</option>
+      <option value="CUSTOM8 (H)">CUSTOM8 (H)</option>
+      <option value="CUSTOM8 (I)">CUSTOM8 (I)</option>
+      <option value="CUSTOM8 (K)">CUSTOM8 (K)</option>
+      <option value="CUSTOM8 (L)">CUSTOM8 (L)</option>
+      <option value="CUSTOM8 (M)">CUSTOM8 (M)</option>
+      <option value="CUSTOM8 (N)">CUSTOM8 (N)</option>
+      <option value="CUSTOM8 (N-term)">CUSTOM8 (N-term)</option>
+      <option value="CUSTOM8 (P)">CUSTOM8 (P)</option>
+      <option value="CUSTOM8 (Q)">CUSTOM8 (Q)</option>
+      <option value="CUSTOM8 (R)">CUSTOM8 (R)</option>
+      <option value="CUSTOM8 (S)">CUSTOM8 (S)</option>
+      <option value="CUSTOM8 (T)">CUSTOM8 (T)</option>
+      <option value="CUSTOM8 (V)">CUSTOM8 (V)</option>
+      <option value="CUSTOM8 (W)">CUSTOM8 (W)</option>
+      <option value="CUSTOM8 (Y)">CUSTOM8 (Y)</option>
+      <option value="CUSTOM9 (A)">CUSTOM9 (A)</option>
+      <option value="CUSTOM9 (C)">CUSTOM9 (C)</option>
+      <option value="CUSTOM9 (C-term)">CUSTOM9 (C-term)</option>
+      <option value="CUSTOM9 (D)">CUSTOM9 (D)</option>
+      <option value="CUSTOM9 (E)">CUSTOM9 (E)</option>
+      <option value="CUSTOM9 (F)">CUSTOM9 (F)</option>
+      <option value="CUSTOM9 (G)">CUSTOM9 (G)</option>
+      <option value="CUSTOM9 (H)">CUSTOM9 (H)</option>
+      <option value="CUSTOM9 (I)">CUSTOM9 (I)</option>
+      <option value="CUSTOM9 (K)">CUSTOM9 (K)</option>
+      <option value="CUSTOM9 (L)">CUSTOM9 (L)</option>
+      <option value="CUSTOM9 (M)">CUSTOM9 (M)</option>
+      <option value="CUSTOM9 (N)">CUSTOM9 (N)</option>
+      <option value="CUSTOM9 (N-term)">CUSTOM9 (N-term)</option>
+      <option value="CUSTOM9 (P)">CUSTOM9 (P)</option>
+      <option value="CUSTOM9 (Q)">CUSTOM9 (Q)</option>
+      <option value="CUSTOM9 (R)">CUSTOM9 (R)</option>
+      <option value="CUSTOM9 (S)">CUSTOM9 (S)</option>
+      <option value="CUSTOM9 (T)">CUSTOM9 (T)</option>
+      <option value="CUSTOM9 (V)">CUSTOM9 (V)</option>
+      <option value="CUSTOM9 (W)">CUSTOM9 (W)</option>
+      <option value="CUSTOM9 (Y)">CUSTOM9 (Y)</option>
+      <option value="Cy3-maleimide (C)">Cy3-maleimide (C)</option>
+      <option value="Cy3b-maleimide (C)">Cy3b-maleimide (C)</option>
+      <option value="Cyano (C)">Cyano (C)</option>
+      <option value="CyDye-Cy3 (C)">CyDye-Cy3 (C)</option>
+      <option value="CyDye-Cy5 (C)">CyDye-Cy5 (C)</option>
+      <option value="Cys-&gt;Ala (C)">Cys-&gt;Ala (C)</option>
+      <option value="Cys-&gt;Arg (C)">Cys-&gt;Arg (C)</option>
+      <option value="Cys-&gt;Asn (C)">Cys-&gt;Asn (C)</option>
+      <option value="Cys-&gt;Asp (C)">Cys-&gt;Asp (C)</option>
+      <option value="Cys-&gt;CamSec (C)">Cys-&gt;CamSec (C)</option>
+      <option value="Cys-&gt;Dha (C)">Cys-&gt;Dha (C)</option>
+      <option value="Cys-&gt;ethylaminoAla (C)">Cys-&gt;ethylaminoAla (C)</option>
+      <option value="Cys-&gt;Gln (C)">Cys-&gt;Gln (C)</option>
+      <option value="Cys-&gt;Glu (C)">Cys-&gt;Glu (C)</option>
+      <option value="Cys-&gt;Gly (C)">Cys-&gt;Gly (C)</option>
+      <option value="Cys-&gt;His (C)">Cys-&gt;His (C)</option>
+      <option value="Cys-&gt;Lys (C)">Cys-&gt;Lys (C)</option>
+      <option value="Cys-&gt;Met (C)">Cys-&gt;Met (C)</option>
+      <option value="Cys-&gt;methylaminoAla (C)">Cys-&gt;methylaminoAla (C)</option>
+      <option value="Cys-&gt;Oxoalanine (C)">Cys-&gt;Oxoalanine (C)</option>
+      <option value="Cys-&gt;Phe (C)">Cys-&gt;Phe (C)</option>
+      <option value="Cys-&gt;Pro (C)">Cys-&gt;Pro (C)</option>
+      <option value="Cys-&gt;PyruvicAcid (Protein N-term C)">Cys-&gt;PyruvicAcid (Protein N-term C)</option>
+      <option value="Cys-&gt;SecNEM (C)">Cys-&gt;SecNEM (C)</option>
+      <option value="Cys-&gt;SecNEM:2H(5) (C)">Cys-&gt;SecNEM:2H(5) (C)</option>
+      <option value="Cys-&gt;Ser (C)">Cys-&gt;Ser (C)</option>
+      <option value="Cys-&gt;Thr (C)">Cys-&gt;Thr (C)</option>
+      <option value="Cys-&gt;Trp (C)">Cys-&gt;Trp (C)</option>
+      <option value="Cys-&gt;Tyr (C)">Cys-&gt;Tyr (C)</option>
+      <option value="Cys-&gt;Val (C)">Cys-&gt;Val (C)</option>
+      <option value="Cys-&gt;Xle (C)">Cys-&gt;Xle (C)</option>
+      <option value="Cysteinyl (C)">Cysteinyl (C)</option>
+      <option value="cysTMT (C)">cysTMT (C)</option>
+      <option value="cysTMT6plex (C)">cysTMT6plex (C)</option>
+      <option value="Cytopiloyne (C)">Cytopiloyne (C)</option>
+      <option value="Cytopiloyne (K)">Cytopiloyne (K)</option>
+      <option value="Cytopiloyne (N-term)">Cytopiloyne (N-term)</option>
+      <option value="Cytopiloyne (P)">Cytopiloyne (P)</option>
+      <option value="Cytopiloyne (R)">Cytopiloyne (R)</option>
+      <option value="Cytopiloyne (S)">Cytopiloyne (S)</option>
+      <option value="Cytopiloyne (Y)">Cytopiloyne (Y)</option>
+      <option value="Cytopiloyne+water (C)">Cytopiloyne+water (C)</option>
+      <option value="Cytopiloyne+water (K)">Cytopiloyne+water (K)</option>
+      <option value="Cytopiloyne+water (N-term)">Cytopiloyne+water (N-term)</option>
+      <option value="Cytopiloyne+water (R)">Cytopiloyne+water (R)</option>
+      <option value="Cytopiloyne+water (S)">Cytopiloyne+water (S)</option>
+      <option value="Cytopiloyne+water (T)">Cytopiloyne+water (T)</option>
+      <option value="Cytopiloyne+water (Y)">Cytopiloyne+water (Y)</option>
+      <option value="DAET (S)">DAET (S)</option>
+      <option value="DAET (T)">DAET (T)</option>
+      <option value="Dansyl (K)">Dansyl (K)</option>
+      <option value="Dansyl (N-term)">Dansyl (N-term)</option>
+      <option value="Dap-DSP (A)">Dap-DSP (A)</option>
+      <option value="Dap-DSP (E)">Dap-DSP (E)</option>
+      <option value="Dap-DSP (K)">Dap-DSP (K)</option>
+      <option value="Deamidated (N)">Deamidated (N)</option>
+      <option value="Deamidated (Protein N-term F)">Deamidated (Protein N-term F)</option>
+      <option value="Deamidated (Q)">Deamidated (Q)</option>
+      <option value="Deamidated (R)">Deamidated (R)</option>
+      <option value="Deamidated:18O(1) (N)">Deamidated:18O(1) (N)</option>
+      <option value="Deamidated:18O(1) (Q)">Deamidated:18O(1) (Q)</option>
+      <option value="Decanoyl (S)">Decanoyl (S)</option>
+      <option value="Decanoyl (T)">Decanoyl (T)</option>
+      <option value="Decarboxylation (D)">Decarboxylation (D)</option>
+      <option value="Decarboxylation (E)">Decarboxylation (E)</option>
+      <option value="DEDGFLYMVYASQETFG (K)">DEDGFLYMVYASQETFG (K)</option>
+      <option value="Dehydrated (D)">Dehydrated (D)</option>
+      <option value="Dehydrated (N-term C)">Dehydrated (N-term C)</option>
+      <option value="Dehydrated (Protein C-term N)">Dehydrated (Protein C-term N)</option>
+      <option value="Dehydrated (Protein C-term Q)">Dehydrated (Protein C-term Q)</option>
+      <option value="Dehydrated (S)">Dehydrated (S)</option>
+      <option value="Dehydrated (T)">Dehydrated (T)</option>
+      <option value="Dehydrated (Y)">Dehydrated (Y)</option>
+      <option value="Dehydro (C)">Dehydro (C)</option>
+      <option value="Delta:H(-4)O(2) (W)">Delta:H(-4)O(2) (W)</option>
+      <option value="Delta:H(-4)O(3) (W)">Delta:H(-4)O(3) (W)</option>
+      <option value="Delta:H(1)N(-1)18O(1) (N)">Delta:H(1)N(-1)18O(1) (N)</option>
+      <option value="Delta:H(10)C(8)O(1) (K)">Delta:H(10)C(8)O(1) (K)</option>
+      <option value="Delta:H(2)C(2) (H)">Delta:H(2)C(2) (H)</option>
+      <option value="Delta:H(2)C(2) (K)">Delta:H(2)C(2) (K)</option>
+      <option value="Delta:H(2)C(2) (N-term)">Delta:H(2)C(2) (N-term)</option>
+      <option value="Delta:H(2)C(2) (Protein N-term)">Delta:H(2)C(2) (Protein N-term)</option>
+      <option value="Delta:H(2)C(3) (K)">Delta:H(2)C(3) (K)</option>
+      <option value="Delta:H(2)C(3)O(1) (K)">Delta:H(2)C(3)O(1) (K)</option>
+      <option value="Delta:H(2)C(3)O(1) (R)">Delta:H(2)C(3)O(1) (R)</option>
+      <option value="Delta:H(2)C(5) (K)">Delta:H(2)C(5) (K)</option>
+      <option value="Delta:H(3)C(3)O(2) (K)">Delta:H(3)C(3)O(2) (K)</option>
+      <option value="Delta:H(4)C(2) (H)">Delta:H(4)C(2) (H)</option>
+      <option value="Delta:H(4)C(2) (K)">Delta:H(4)C(2) (K)</option>
+      <option value="Delta:H(4)C(2) (N-term)">Delta:H(4)C(2) (N-term)</option>
+      <option value="Delta:H(4)C(2)O(-1)S(1) (S)">Delta:H(4)C(2)O(-1)S(1) (S)</option>
+      <option value="Delta:H(4)C(3) (H)">Delta:H(4)C(3) (H)</option>
+      <option value="Delta:H(4)C(3) (K)">Delta:H(4)C(3) (K)</option>
+      <option value="Delta:H(4)C(3) (Protein N-term)">Delta:H(4)C(3) (Protein N-term)</option>
+      <option value="Delta:H(4)C(3)O(1) (C)">Delta:H(4)C(3)O(1) (C)</option>
+      <option value="Delta:H(4)C(3)O(1) (H)">Delta:H(4)C(3)O(1) (H)</option>
+      <option value="Delta:H(4)C(3)O(1) (K)">Delta:H(4)C(3)O(1) (K)</option>
+      <option value="Delta:H(4)C(3)O(1) (R)">Delta:H(4)C(3)O(1) (R)</option>
+      <option value="Delta:H(4)C(5)O(1) (R)">Delta:H(4)C(5)O(1) (R)</option>
+      <option value="Delta:H(4)C(6) (K)">Delta:H(4)C(6) (K)</option>
+      <option value="Delta:H(5)C(2) (P)">Delta:H(5)C(2) (P)</option>
+      <option value="Delta:H(6)C(3)O(1) (C)">Delta:H(6)C(3)O(1) (C)</option>
+      <option value="Delta:H(6)C(3)O(1) (H)">Delta:H(6)C(3)O(1) (H)</option>
+      <option value="Delta:H(6)C(3)O(1) (K)">Delta:H(6)C(3)O(1) (K)</option>
+      <option value="Delta:H(6)C(3)O(1) (Protein N-term)">Delta:H(6)C(3)O(1) (Protein N-term)</option>
+      <option value="Delta:H(6)C(6)O(1) (K)">Delta:H(6)C(6)O(1) (K)</option>
+      <option value="Delta:H(6)C(7)O(4) (R)">Delta:H(6)C(7)O(4) (R)</option>
+      <option value="Delta:H(8)C(6)O(1) (K)">Delta:H(8)C(6)O(1) (K)</option>
+      <option value="Delta:H(8)C(6)O(1) (Protein N-term)">Delta:H(8)C(6)O(1) (Protein N-term)</option>
+      <option value="Delta:H(8)C(6)O(2) (K)">Delta:H(8)C(6)O(2) (K)</option>
+      <option value="Delta:Hg(1) (C)">Delta:Hg(1) (C)</option>
+      <option value="Delta:O(4) (W)">Delta:O(4) (W)</option>
+      <option value="Delta:S(-1)Se(1) (C)">Delta:S(-1)Se(1) (C)</option>
+      <option value="Delta:S(-1)Se(1) (M)">Delta:S(-1)Se(1) (M)</option>
+      <option value="Delta:Se(1) (C)">Delta:Se(1) (C)</option>
+      <option value="Deoxy (D)">Deoxy (D)</option>
+      <option value="Deoxy (S)">Deoxy (S)</option>
+      <option value="Deoxy (T)">Deoxy (T)</option>
+      <option value="Deoxyhypusine (K)">Deoxyhypusine (K)</option>
+      <option value="Deoxyhypusine (Q)">Deoxyhypusine (Q)</option>
+      <option value="DeStreak (C)">DeStreak (C)</option>
+      <option value="Dethiomethyl (M)">Dethiomethyl (M)</option>
+      <option value="dHex (N)">dHex (N)</option>
+      <option value="dHex (S)">dHex (S)</option>
+      <option value="dHex (T)">dHex (T)</option>
+      <option value="dHex(1)Hex(1) (S)">dHex(1)Hex(1) (S)</option>
+      <option value="dHex(1)Hex(1) (T)">dHex(1)Hex(1) (T)</option>
+      <option value="dHex(1)Hex(1)HexA(1)HexNAc(3) (S)">dHex(1)Hex(1)HexA(1)HexNAc(3) (S)</option>
+      <option value="dHex(1)Hex(1)HexA(1)HexNAc(3) (T)">dHex(1)Hex(1)HexA(1)HexNAc(3) (T)</option>
+      <option value="dHex(1)Hex(1)HexNAc(1)Kdn(1) (S)">dHex(1)Hex(1)HexNAc(1)Kdn(1) (S)</option>
+      <option value="dHex(1)Hex(1)HexNAc(1)Kdn(1) (T)">dHex(1)Hex(1)HexNAc(1)Kdn(1) (T)</option>
+      <option value="dHex(1)Hex(1)HexNAc(1)NeuAc(1) (S)">dHex(1)Hex(1)HexNAc(1)NeuAc(1) (S)</option>
+      <option value="dHex(1)Hex(1)HexNAc(1)NeuAc(1) (T)">dHex(1)Hex(1)HexNAc(1)NeuAc(1) (T)</option>
+      <option value="dHex(1)Hex(1)HexNAc(1)NeuGc(1) (S)">dHex(1)Hex(1)HexNAc(1)NeuGc(1) (S)</option>
+      <option value="dHex(1)Hex(1)HexNAc(1)NeuGc(1) (T)">dHex(1)Hex(1)HexNAc(1)NeuGc(1) (T)</option>
+      <option value="dHex(1)Hex(1)HexNAc(2)Kdn(1) (S)">dHex(1)Hex(1)HexNAc(2)Kdn(1) (S)</option>
+      <option value="dHex(1)Hex(1)HexNAc(2)Kdn(1) (T)">dHex(1)Hex(1)HexNAc(2)Kdn(1) (T)</option>
+      <option value="dHex(1)Hex(1)HexNAc(2)NeuAc(1) (S)">dHex(1)Hex(1)HexNAc(2)NeuAc(1) (S)</option>
+      <option value="dHex(1)Hex(1)HexNAc(2)NeuAc(1) (T)">dHex(1)Hex(1)HexNAc(2)NeuAc(1) (T)</option>
+      <option value="dHex(1)Hex(1)HexNAc(2)NeuAc(1)Sulf(1) (S)">dHex(1)Hex(1)HexNAc(2)NeuAc(1)Sulf(1) (S)</option>
+      <option value="dHex(1)Hex(1)HexNAc(2)NeuAc(1)Sulf(1) (T)">dHex(1)Hex(1)HexNAc(2)NeuAc(1)Sulf(1) (T)</option>
+      <option value="dHex(1)Hex(1)HexNAc(2)NeuAc(2) (S)">dHex(1)Hex(1)HexNAc(2)NeuAc(2) (S)</option>
+      <option value="dHex(1)Hex(1)HexNAc(2)NeuAc(2) (T)">dHex(1)Hex(1)HexNAc(2)NeuAc(2) (T)</option>
+      <option value="dHex(1)Hex(1)HexNAc(2)Sulf(1) (S)">dHex(1)Hex(1)HexNAc(2)Sulf(1) (S)</option>
+      <option value="dHex(1)Hex(1)HexNAc(2)Sulf(1) (T)">dHex(1)Hex(1)HexNAc(2)Sulf(1) (T)</option>
+      <option value="dHex(1)Hex(1)HexNAc(3) (S)">dHex(1)Hex(1)HexNAc(3) (S)</option>
+      <option value="dHex(1)Hex(1)HexNAc(3) (T)">dHex(1)Hex(1)HexNAc(3) (T)</option>
+      <option value="dHex(1)Hex(1)HexNAc(3)NeuAc(1) (S)">dHex(1)Hex(1)HexNAc(3)NeuAc(1) (S)</option>
+      <option value="dHex(1)Hex(1)HexNAc(3)NeuAc(1) (T)">dHex(1)Hex(1)HexNAc(3)NeuAc(1) (T)</option>
+      <option value="dHex(1)Hex(1)HexNAc(3)NeuAc(1)Sulf(1) (S)">dHex(1)Hex(1)HexNAc(3)NeuAc(1)Sulf(1) (S)</option>
+      <option value="dHex(1)Hex(1)HexNAc(3)NeuAc(1)Sulf(1) (T)">dHex(1)Hex(1)HexNAc(3)NeuAc(1)Sulf(1) (T)</option>
+      <option value="dHex(1)Hex(1)HexNAc(3)NeuGc(1) (S)">dHex(1)Hex(1)HexNAc(3)NeuGc(1) (S)</option>
+      <option value="dHex(1)Hex(1)HexNAc(3)NeuGc(1) (T)">dHex(1)Hex(1)HexNAc(3)NeuGc(1) (T)</option>
+      <option value="dHex(1)Hex(1)HexNAc(3)Sulf(1) (S)">dHex(1)Hex(1)HexNAc(3)Sulf(1) (S)</option>
+      <option value="dHex(1)Hex(1)HexNAc(3)Sulf(1) (T)">dHex(1)Hex(1)HexNAc(3)Sulf(1) (T)</option>
+      <option value="dHex(1)Hex(1)HexNAc(4) (S)">dHex(1)Hex(1)HexNAc(4) (S)</option>
+      <option value="dHex(1)Hex(1)HexNAc(4) (T)">dHex(1)Hex(1)HexNAc(4) (T)</option>
+      <option value="dHex(1)Hex(2) (S)">dHex(1)Hex(2) (S)</option>
+      <option value="dHex(1)Hex(2) (T)">dHex(1)Hex(2) (T)</option>
+      <option value="dHex(1)Hex(2)HexA(1) (S)">dHex(1)Hex(2)HexA(1) (S)</option>
+      <option value="dHex(1)Hex(2)HexA(1) (T)">dHex(1)Hex(2)HexA(1) (T)</option>
+      <option value="dHex(1)Hex(2)HexA(1)HexNAc(1) (S)">dHex(1)Hex(2)HexA(1)HexNAc(1) (S)</option>
+      <option value="dHex(1)Hex(2)HexA(1)HexNAc(1) (T)">dHex(1)Hex(2)HexA(1)HexNAc(1) (T)</option>
+      <option value="dHex(1)Hex(2)HexA(1)HexNAc(1)Sulf(1) (S)">dHex(1)Hex(2)HexA(1)HexNAc(1)Sulf(1) (S)</option>
+      <option value="dHex(1)Hex(2)HexA(1)HexNAc(1)Sulf(1) (T)">dHex(1)Hex(2)HexA(1)HexNAc(1)Sulf(1) (T)</option>
+      <option value="dHex(1)Hex(2)HexA(1)HexNAc(2) (S)">dHex(1)Hex(2)HexA(1)HexNAc(2) (S)</option>
+      <option value="dHex(1)Hex(2)HexA(1)HexNAc(2) (T)">dHex(1)Hex(2)HexA(1)HexNAc(2) (T)</option>
+      <option value="dHex(1)Hex(2)HexNAc(1) (S)">dHex(1)Hex(2)HexNAc(1) (S)</option>
+      <option value="dHex(1)Hex(2)HexNAc(1) (T)">dHex(1)Hex(2)HexNAc(1) (T)</option>
+      <option value="dHex(1)Hex(2)HexNAc(1)NeuAc(2) (S)">dHex(1)Hex(2)HexNAc(1)NeuAc(2) (S)</option>
+      <option value="dHex(1)Hex(2)HexNAc(1)NeuAc(2) (T)">dHex(1)Hex(2)HexNAc(1)NeuAc(2) (T)</option>
+      <option value="dHex(1)Hex(2)HexNAc(1)Sulf(1) (S)">dHex(1)Hex(2)HexNAc(1)Sulf(1) (S)</option>
+      <option value="dHex(1)Hex(2)HexNAc(1)Sulf(1) (T)">dHex(1)Hex(2)HexNAc(1)Sulf(1) (T)</option>
+      <option value="dHex(1)Hex(2)HexNAc(2)NeuAc(1)Sulf(1) (S)">dHex(1)Hex(2)HexNAc(2)NeuAc(1)Sulf(1) (S)</option>
+      <option value="dHex(1)Hex(2)HexNAc(2)NeuAc(1)Sulf(1) (T)">dHex(1)Hex(2)HexNAc(2)NeuAc(1)Sulf(1) (T)</option>
+      <option value="dHex(1)Hex(2)HexNAc(2)NeuAc(2) (S)">dHex(1)Hex(2)HexNAc(2)NeuAc(2) (S)</option>
+      <option value="dHex(1)Hex(2)HexNAc(2)NeuAc(2) (T)">dHex(1)Hex(2)HexNAc(2)NeuAc(2) (T)</option>
+      <option value="dHex(1)Hex(2)HexNAc(2)NeuAc(2)Sulf(1) (S)">dHex(1)Hex(2)HexNAc(2)NeuAc(2)Sulf(1) (S)</option>
+      <option value="dHex(1)Hex(2)HexNAc(2)NeuAc(2)Sulf(1) (T)">dHex(1)Hex(2)HexNAc(2)NeuAc(2)Sulf(1) (T)</option>
+      <option value="dHex(1)Hex(2)HexNAc(2)NeuGc(1) (N)">dHex(1)Hex(2)HexNAc(2)NeuGc(1) (N)</option>
+      <option value="dHex(1)Hex(2)HexNAc(2)NeuGc(1) (S)">dHex(1)Hex(2)HexNAc(2)NeuGc(1) (S)</option>
+      <option value="dHex(1)Hex(2)HexNAc(2)NeuGc(1) (T)">dHex(1)Hex(2)HexNAc(2)NeuGc(1) (T)</option>
+      <option value="dHex(1)Hex(2)HexNAc(2)NeuGc(2) (S)">dHex(1)Hex(2)HexNAc(2)NeuGc(2) (S)</option>
+      <option value="dHex(1)Hex(2)HexNAc(2)NeuGc(2) (T)">dHex(1)Hex(2)HexNAc(2)NeuGc(2) (T)</option>
+      <option value="dHex(1)Hex(2)HexNAc(2)NeuGc(3) (S)">dHex(1)Hex(2)HexNAc(2)NeuGc(3) (S)</option>
+      <option value="dHex(1)Hex(2)HexNAc(2)NeuGc(3) (T)">dHex(1)Hex(2)HexNAc(2)NeuGc(3) (T)</option>
+      <option value="dHex(1)Hex(2)HexNAc(2)Pent(1) (N)">dHex(1)Hex(2)HexNAc(2)Pent(1) (N)</option>
+      <option value="dHex(1)Hex(2)HexNAc(2)Sulf(1) (S)">dHex(1)Hex(2)HexNAc(2)Sulf(1) (S)</option>
+      <option value="dHex(1)Hex(2)HexNAc(2)Sulf(1) (T)">dHex(1)Hex(2)HexNAc(2)Sulf(1) (T)</option>
+      <option value="dHex(1)Hex(2)HexNAc(3) (N)">dHex(1)Hex(2)HexNAc(3) (N)</option>
+      <option value="dHex(1)Hex(2)HexNAc(3) (S)">dHex(1)Hex(2)HexNAc(3) (S)</option>
+      <option value="dHex(1)Hex(2)HexNAc(3) (T)">dHex(1)Hex(2)HexNAc(3) (T)</option>
+      <option value="dHex(1)Hex(2)HexNAc(3)NeuAc(1) (S)">dHex(1)Hex(2)HexNAc(3)NeuAc(1) (S)</option>
+      <option value="dHex(1)Hex(2)HexNAc(3)NeuAc(1) (T)">dHex(1)Hex(2)HexNAc(3)NeuAc(1) (T)</option>
+      <option value="dHex(1)Hex(2)HexNAc(3)NeuAc(1)Sulf(1) (S)">dHex(1)Hex(2)HexNAc(3)NeuAc(1)Sulf(1) (S)</option>
+      <option value="dHex(1)Hex(2)HexNAc(3)NeuAc(1)Sulf(1) (T)">dHex(1)Hex(2)HexNAc(3)NeuAc(1)Sulf(1) (T)</option>
+      <option value="dHex(1)Hex(2)HexNAc(3)Sulf(1) (S)">dHex(1)Hex(2)HexNAc(3)Sulf(1) (S)</option>
+      <option value="dHex(1)Hex(2)HexNAc(3)Sulf(1) (T)">dHex(1)Hex(2)HexNAc(3)Sulf(1) (T)</option>
+      <option value="dHex(1)Hex(2)HexNAc(4) (N)">dHex(1)Hex(2)HexNAc(4) (N)</option>
+      <option value="dHex(1)Hex(2)HexNAc(4) (S)">dHex(1)Hex(2)HexNAc(4) (S)</option>
+      <option value="dHex(1)Hex(2)HexNAc(4) (T)">dHex(1)Hex(2)HexNAc(4) (T)</option>
+      <option value="dHex(1)Hex(2)HexNAc(4)NeuAc(1) (S)">dHex(1)Hex(2)HexNAc(4)NeuAc(1) (S)</option>
+      <option value="dHex(1)Hex(2)HexNAc(4)NeuAc(1) (T)">dHex(1)Hex(2)HexNAc(4)NeuAc(1) (T)</option>
+      <option value="dHex(1)Hex(2)HexNAc(4)NeuAc(2) (S)">dHex(1)Hex(2)HexNAc(4)NeuAc(2) (S)</option>
+      <option value="dHex(1)Hex(2)HexNAc(4)NeuAc(2) (T)">dHex(1)Hex(2)HexNAc(4)NeuAc(2) (T)</option>
+      <option value="dHex(1)Hex(2)HexNAc(4)Sulf(2) (S)">dHex(1)Hex(2)HexNAc(4)Sulf(2) (S)</option>
+      <option value="dHex(1)Hex(2)HexNAc(4)Sulf(2) (T)">dHex(1)Hex(2)HexNAc(4)Sulf(2) (T)</option>
+      <option value="dHex(1)Hex(3) (S)">dHex(1)Hex(3) (S)</option>
+      <option value="dHex(1)Hex(3) (T)">dHex(1)Hex(3) (T)</option>
+      <option value="dHex(1)Hex(3)HexA(1)HexNAc(1) (S)">dHex(1)Hex(3)HexA(1)HexNAc(1) (S)</option>
+      <option value="dHex(1)Hex(3)HexA(1)HexNAc(1) (T)">dHex(1)Hex(3)HexA(1)HexNAc(1) (T)</option>
+      <option value="dHex(1)Hex(3)HexA(1)HexNAc(1)Sulf(1) (S)">dHex(1)Hex(3)HexA(1)HexNAc(1)Sulf(1) (S)</option>
+      <option value="dHex(1)Hex(3)HexA(1)HexNAc(1)Sulf(1) (T)">dHex(1)Hex(3)HexA(1)HexNAc(1)Sulf(1) (T)</option>
+      <option value="dHex(1)Hex(3)HexA(1)HexNAc(2) (S)">dHex(1)Hex(3)HexA(1)HexNAc(2) (S)</option>
+      <option value="dHex(1)Hex(3)HexA(1)HexNAc(2) (T)">dHex(1)Hex(3)HexA(1)HexNAc(2) (T)</option>
+      <option value="dHex(1)Hex(3)HexA(1)HexNAc(2)Sulf(1) (S)">dHex(1)Hex(3)HexA(1)HexNAc(2)Sulf(1) (S)</option>
+      <option value="dHex(1)Hex(3)HexA(1)HexNAc(2)Sulf(1) (T)">dHex(1)Hex(3)HexA(1)HexNAc(2)Sulf(1) (T)</option>
+      <option value="dHex(1)Hex(3)HexA(1)HexNAc(3)Sulf(1) (S)">dHex(1)Hex(3)HexA(1)HexNAc(3)Sulf(1) (S)</option>
+      <option value="dHex(1)Hex(3)HexA(1)HexNAc(3)Sulf(1) (T)">dHex(1)Hex(3)HexA(1)HexNAc(3)Sulf(1) (T)</option>
+      <option value="dHex(1)Hex(3)HexA(2)HexNAc(2) (S)">dHex(1)Hex(3)HexA(2)HexNAc(2) (S)</option>
+      <option value="dHex(1)Hex(3)HexA(2)HexNAc(2) (T)">dHex(1)Hex(3)HexA(2)HexNAc(2) (T)</option>
+      <option value="dHex(1)Hex(3)HexNAc(1) (S)">dHex(1)Hex(3)HexNAc(1) (S)</option>
+      <option value="dHex(1)Hex(3)HexNAc(1) (T)">dHex(1)Hex(3)HexNAc(1) (T)</option>
+      <option value="dHex(1)Hex(3)HexNAc(1)Sulf(1) (S)">dHex(1)Hex(3)HexNAc(1)Sulf(1) (S)</option>
+      <option value="dHex(1)Hex(3)HexNAc(1)Sulf(1) (T)">dHex(1)Hex(3)HexNAc(1)Sulf(1) (T)</option>
+      <option value="dHex(1)Hex(3)HexNAc(2) (N)">dHex(1)Hex(3)HexNAc(2) (N)</option>
+      <option value="dHex(1)Hex(3)HexNAc(2) (S)">dHex(1)Hex(3)HexNAc(2) (S)</option>
+      <option value="dHex(1)Hex(3)HexNAc(2) (T)">dHex(1)Hex(3)HexNAc(2) (T)</option>
+      <option value="dHex(1)Hex(3)HexNAc(2)NeuGc(1) (S)">dHex(1)Hex(3)HexNAc(2)NeuGc(1) (S)</option>
+      <option value="dHex(1)Hex(3)HexNAc(2)NeuGc(1) (T)">dHex(1)Hex(3)HexNAc(2)NeuGc(1) (T)</option>
+      <option value="dHex(1)Hex(3)HexNAc(2)Pent(1) (N)">dHex(1)Hex(3)HexNAc(2)Pent(1) (N)</option>
+      <option value="dHex(1)Hex(3)HexNAc(2)Sulf(1) (N)">dHex(1)Hex(3)HexNAc(2)Sulf(1) (N)</option>
+      <option value="dHex(1)Hex(3)HexNAc(2)Sulf(1) (S)">dHex(1)Hex(3)HexNAc(2)Sulf(1) (S)</option>
+      <option value="dHex(1)Hex(3)HexNAc(2)Sulf(1) (T)">dHex(1)Hex(3)HexNAc(2)Sulf(1) (T)</option>
+      <option value="dHex(1)Hex(3)HexNAc(3) (N)">dHex(1)Hex(3)HexNAc(3) (N)</option>
+      <option value="dHex(1)Hex(3)HexNAc(3) (S)">dHex(1)Hex(3)HexNAc(3) (S)</option>
+      <option value="dHex(1)Hex(3)HexNAc(3) (T)">dHex(1)Hex(3)HexNAc(3) (T)</option>
+      <option value="dHex(1)Hex(3)HexNAc(3)NeuAc(2) (S)">dHex(1)Hex(3)HexNAc(3)NeuAc(2) (S)</option>
+      <option value="dHex(1)Hex(3)HexNAc(3)NeuAc(2) (T)">dHex(1)Hex(3)HexNAc(3)NeuAc(2) (T)</option>
+      <option value="dHex(1)Hex(3)HexNAc(3)Pent(1) (N)">dHex(1)Hex(3)HexNAc(3)Pent(1) (N)</option>
+      <option value="dHex(1)Hex(3)HexNAc(3)Pent(2) (N)">dHex(1)Hex(3)HexNAc(3)Pent(2) (N)</option>
+      <option value="dHex(1)Hex(3)HexNAc(3)Pent(3) (N)">dHex(1)Hex(3)HexNAc(3)Pent(3) (N)</option>
+      <option value="dHex(1)Hex(3)HexNAc(3)Sulf(1) (S)">dHex(1)Hex(3)HexNAc(3)Sulf(1) (S)</option>
+      <option value="dHex(1)Hex(3)HexNAc(3)Sulf(1) (T)">dHex(1)Hex(3)HexNAc(3)Sulf(1) (T)</option>
+      <option value="dHex(1)Hex(3)HexNAc(4) (N)">dHex(1)Hex(3)HexNAc(4) (N)</option>
+      <option value="dHex(1)Hex(3)HexNAc(4) (S)">dHex(1)Hex(3)HexNAc(4) (S)</option>
+      <option value="dHex(1)Hex(3)HexNAc(4) (T)">dHex(1)Hex(3)HexNAc(4) (T)</option>
+      <option value="dHex(1)Hex(3)HexNAc(4)NeuAc(1) (N)">dHex(1)Hex(3)HexNAc(4)NeuAc(1) (N)</option>
+      <option value="dHex(1)Hex(3)HexNAc(4)Pent(1) (N)">dHex(1)Hex(3)HexNAc(4)Pent(1) (N)</option>
+      <option value="dHex(1)Hex(3)HexNAc(4)Pent(2) (N)">dHex(1)Hex(3)HexNAc(4)Pent(2) (N)</option>
+      <option value="dHex(1)Hex(3)HexNAc(4)Pent(3) (N)">dHex(1)Hex(3)HexNAc(4)Pent(3) (N)</option>
+      <option value="dHex(1)Hex(3)HexNAc(4)Sulf(1) (N)">dHex(1)Hex(3)HexNAc(4)Sulf(1) (N)</option>
+      <option value="dHex(1)Hex(3)HexNAc(5) (N)">dHex(1)Hex(3)HexNAc(5) (N)</option>
+      <option value="dHex(1)Hex(3)HexNAc(5) (S)">dHex(1)Hex(3)HexNAc(5) (S)</option>
+      <option value="dHex(1)Hex(3)HexNAc(5) (T)">dHex(1)Hex(3)HexNAc(5) (T)</option>
+      <option value="dHex(1)Hex(3)HexNAc(5)NeuAc(1) (N)">dHex(1)Hex(3)HexNAc(5)NeuAc(1) (N)</option>
+      <option value="dHex(1)Hex(3)HexNAc(5)NeuAc(1) (S)">dHex(1)Hex(3)HexNAc(5)NeuAc(1) (S)</option>
+      <option value="dHex(1)Hex(3)HexNAc(5)NeuAc(1) (T)">dHex(1)Hex(3)HexNAc(5)NeuAc(1) (T)</option>
+      <option value="dHex(1)Hex(3)HexNAc(5)Sulf(1) (N)">dHex(1)Hex(3)HexNAc(5)Sulf(1) (N)</option>
+      <option value="dHex(1)Hex(3)HexNAc(6) (N)">dHex(1)Hex(3)HexNAc(6) (N)</option>
+      <option value="dHex(1)Hex(3)HexNAc(6) (S)">dHex(1)Hex(3)HexNAc(6) (S)</option>
+      <option value="dHex(1)Hex(3)HexNAc(6) (T)">dHex(1)Hex(3)HexNAc(6) (T)</option>
+      <option value="dHex(1)Hex(3)HexNAc(6)Sulf(1) (N)">dHex(1)Hex(3)HexNAc(6)Sulf(1) (N)</option>
+      <option value="dHex(1)Hex(4) (S)">dHex(1)Hex(4) (S)</option>
+      <option value="dHex(1)Hex(4) (T)">dHex(1)Hex(4) (T)</option>
+      <option value="dHex(1)Hex(4)HexA(1) (S)">dHex(1)Hex(4)HexA(1) (S)</option>
+      <option value="dHex(1)Hex(4)HexA(1) (T)">dHex(1)Hex(4)HexA(1) (T)</option>
+      <option value="dHex(1)Hex(4)HexA(1)HexNAc(2) (S)">dHex(1)Hex(4)HexA(1)HexNAc(2) (S)</option>
+      <option value="dHex(1)Hex(4)HexA(1)HexNAc(2) (T)">dHex(1)Hex(4)HexA(1)HexNAc(2) (T)</option>
+      <option value="dHex(1)Hex(4)HexA(1)HexNAc(3)Sulf(1) (S)">dHex(1)Hex(4)HexA(1)HexNAc(3)Sulf(1) (S)</option>
+      <option value="dHex(1)Hex(4)HexA(1)HexNAc(3)Sulf(1) (T)">dHex(1)Hex(4)HexA(1)HexNAc(3)Sulf(1) (T)</option>
+      <option value="dHex(1)Hex(4)HexNAc(1)Pent(1) (N)">dHex(1)Hex(4)HexNAc(1)Pent(1) (N)</option>
+      <option value="dHex(1)Hex(4)HexNAc(2) (N)">dHex(1)Hex(4)HexNAc(2) (N)</option>
+      <option value="dHex(1)Hex(4)HexNAc(2) (S)">dHex(1)Hex(4)HexNAc(2) (S)</option>
+      <option value="dHex(1)Hex(4)HexNAc(2) (T)">dHex(1)Hex(4)HexNAc(2) (T)</option>
+      <option value="dHex(1)Hex(4)HexNAc(2)Pent(1) (N)">dHex(1)Hex(4)HexNAc(2)Pent(1) (N)</option>
+      <option value="dHex(1)Hex(4)HexNAc(3) (N)">dHex(1)Hex(4)HexNAc(3) (N)</option>
+      <option value="dHex(1)Hex(4)HexNAc(3)NeuAc(1) (N)">dHex(1)Hex(4)HexNAc(3)NeuAc(1) (N)</option>
+      <option value="dHex(1)Hex(4)HexNAc(3)NeuAc(1) (S)">dHex(1)Hex(4)HexNAc(3)NeuAc(1) (S)</option>
+      <option value="dHex(1)Hex(4)HexNAc(3)NeuAc(1) (T)">dHex(1)Hex(4)HexNAc(3)NeuAc(1) (T)</option>
+      <option value="dHex(1)Hex(4)HexNAc(3)NeuAc(1)Sulf(1) (N)">dHex(1)Hex(4)HexNAc(3)NeuAc(1)Sulf(1) (N)</option>
+      <option value="dHex(1)Hex(4)HexNAc(3)NeuGc(1) (N)">dHex(1)Hex(4)HexNAc(3)NeuGc(1) (N)</option>
+      <option value="dHex(1)Hex(4)HexNAc(3)Pent(1) (N)">dHex(1)Hex(4)HexNAc(3)Pent(1) (N)</option>
+      <option value="dHex(1)Hex(4)HexNAc(3)Sulf(1) (N)">dHex(1)Hex(4)HexNAc(3)Sulf(1) (N)</option>
+      <option value="dHex(1)Hex(4)HexNAc(4) (N)">dHex(1)Hex(4)HexNAc(4) (N)</option>
+      <option value="dHex(1)Hex(4)HexNAc(4) (S)">dHex(1)Hex(4)HexNAc(4) (S)</option>
+      <option value="dHex(1)Hex(4)HexNAc(4) (T)">dHex(1)Hex(4)HexNAc(4) (T)</option>
+      <option value="dHex(1)Hex(4)HexNAc(4)NeuAc(1) (N)">dHex(1)Hex(4)HexNAc(4)NeuAc(1) (N)</option>
+      <option value="dHex(1)Hex(4)HexNAc(4)NeuAc(1) (S)">dHex(1)Hex(4)HexNAc(4)NeuAc(1) (S)</option>
+      <option value="dHex(1)Hex(4)HexNAc(4)NeuAc(1) (T)">dHex(1)Hex(4)HexNAc(4)NeuAc(1) (T)</option>
+      <option value="dHex(1)Hex(4)HexNAc(4)NeuAc(1)Sulf(1) (N)">dHex(1)Hex(4)HexNAc(4)NeuAc(1)Sulf(1) (N)</option>
+      <option value="dHex(1)Hex(4)HexNAc(4)Pent(1) (N)">dHex(1)Hex(4)HexNAc(4)Pent(1) (N)</option>
+      <option value="dHex(1)Hex(4)HexNAc(4)Sulf(1) (N)">dHex(1)Hex(4)HexNAc(4)Sulf(1) (N)</option>
+      <option value="dHex(1)Hex(4)HexNAc(5) (N)">dHex(1)Hex(4)HexNAc(5) (N)</option>
+      <option value="dHex(1)Hex(4)HexNAc(5)Sulf(1) (N)">dHex(1)Hex(4)HexNAc(5)Sulf(1) (N)</option>
+      <option value="dHex(1)Hex(5) (S)">dHex(1)Hex(5) (S)</option>
+      <option value="dHex(1)Hex(5) (T)">dHex(1)Hex(5) (T)</option>
+      <option value="dHex(1)Hex(5)HexA(1)HexNAc(3)Sulf(1) (N)">dHex(1)Hex(5)HexA(1)HexNAc(3)Sulf(1) (N)</option>
+      <option value="dHex(1)Hex(5)HexA(1)HexNAc(3)Sulf(2) (N)">dHex(1)Hex(5)HexA(1)HexNAc(3)Sulf(2) (N)</option>
+      <option value="dHex(1)Hex(5)HexNAc(2) (N)">dHex(1)Hex(5)HexNAc(2) (N)</option>
+      <option value="dHex(1)Hex(5)HexNAc(2)Pent(1) (N)">dHex(1)Hex(5)HexNAc(2)Pent(1) (N)</option>
+      <option value="dHex(1)Hex(5)HexNAc(3) (N)">dHex(1)Hex(5)HexNAc(3) (N)</option>
+      <option value="dHex(1)Hex(5)HexNAc(3)NeuAc(1) (N)">dHex(1)Hex(5)HexNAc(3)NeuAc(1) (N)</option>
+      <option value="dHex(1)Hex(5)HexNAc(3)NeuAc(1)Sulf(1) (N)">dHex(1)Hex(5)HexNAc(3)NeuAc(1)Sulf(1) (N)</option>
+      <option value="dHex(1)Hex(5)HexNAc(3)NeuGc(1) (N)">dHex(1)Hex(5)HexNAc(3)NeuGc(1) (N)</option>
+      <option value="dHex(1)Hex(5)HexNAc(3)NeuGc(1)Sulf(1) (N)">dHex(1)Hex(5)HexNAc(3)NeuGc(1)Sulf(1) (N)</option>
+      <option value="dHex(1)Hex(5)HexNAc(3)Sulf(1) (N)">dHex(1)Hex(5)HexNAc(3)Sulf(1) (N)</option>
+      <option value="dHex(1)Hex(5)HexNAc(4) (N)">dHex(1)Hex(5)HexNAc(4) (N)</option>
+      <option value="dHex(1)Hex(5)HexNAc(4)Me(2)Pent(1) (N)">dHex(1)Hex(5)HexNAc(4)Me(2)Pent(1) (N)</option>
+      <option value="dHex(1)Hex(5)HexNAc(4)NeuAc(1) (N)">dHex(1)Hex(5)HexNAc(4)NeuAc(1) (N)</option>
+      <option value="dHex(1)Hex(5)HexNAc(4)NeuAc(2) (N)">dHex(1)Hex(5)HexNAc(4)NeuAc(2) (N)</option>
+      <option value="dHex(1)Hex(5)HexNAc(4)Pent(1) (N)">dHex(1)Hex(5)HexNAc(4)Pent(1) (N)</option>
+      <option value="dHex(1)Hex(5)HexNAc(4)Sulf(1) (N)">dHex(1)Hex(5)HexNAc(4)Sulf(1) (N)</option>
+      <option value="dHex(1)Hex(5)HexNAc(4)Sulf(2) (N)">dHex(1)Hex(5)HexNAc(4)Sulf(2) (N)</option>
+      <option value="dHex(1)Hex(5)HexNAc(5) (N)">dHex(1)Hex(5)HexNAc(5) (N)</option>
+      <option value="dHex(1)Hex(6) (S)">dHex(1)Hex(6) (S)</option>
+      <option value="dHex(1)Hex(6) (T)">dHex(1)Hex(6) (T)</option>
+      <option value="dHex(1)Hex(6)HexNAc(2) (N)">dHex(1)Hex(6)HexNAc(2) (N)</option>
+      <option value="dHex(1)Hex(6)HexNAc(3) (N)">dHex(1)Hex(6)HexNAc(3) (N)</option>
+      <option value="dHex(1)Hex(6)HexNAc(3)Sulf(1) (N)">dHex(1)Hex(6)HexNAc(3)Sulf(1) (N)</option>
+      <option value="dHex(1)Hex(6)HexNAc(4) (N)">dHex(1)Hex(6)HexNAc(4) (N)</option>
+      <option value="dHex(1)Hex(7)HexNAc(2) (N)">dHex(1)Hex(7)HexNAc(2) (N)</option>
+      <option value="dHex(1)Hex(7)HexNAc(3) (N)">dHex(1)Hex(7)HexNAc(3) (N)</option>
+      <option value="dHex(1)Hex(7)HexNAc(3)Phos(1) (N)">dHex(1)Hex(7)HexNAc(3)Phos(1) (N)</option>
+      <option value="dHex(1)Hex(7)HexNAc(3)Sulf(1) (N)">dHex(1)Hex(7)HexNAc(3)Sulf(1) (N)</option>
+      <option value="dHex(1)Hex(7)HexNAc(4) (N)">dHex(1)Hex(7)HexNAc(4) (N)</option>
+      <option value="dHex(1)Hex(8)HexNAc(2) (N)">dHex(1)Hex(8)HexNAc(2) (N)</option>
+      <option value="dHex(1)HexNAc(3) (S)">dHex(1)HexNAc(3) (S)</option>
+      <option value="dHex(1)HexNAc(3) (T)">dHex(1)HexNAc(3) (T)</option>
+      <option value="dHex(1)HexNAc(4) (S)">dHex(1)HexNAc(4) (S)</option>
+      <option value="dHex(1)HexNAc(4) (T)">dHex(1)HexNAc(4) (T)</option>
+      <option value="dHex(1)HexNAc(5) (S)">dHex(1)HexNAc(5) (S)</option>
+      <option value="dHex(1)HexNAc(5) (T)">dHex(1)HexNAc(5) (T)</option>
+      <option value="dHex(2)Hex(1)HexNAc(1)Kdn(1) (S)">dHex(2)Hex(1)HexNAc(1)Kdn(1) (S)</option>
+      <option value="dHex(2)Hex(1)HexNAc(1)Kdn(1) (T)">dHex(2)Hex(1)HexNAc(1)Kdn(1) (T)</option>
+      <option value="dHex(2)Hex(1)HexNAc(2)Kdn(1) (S)">dHex(2)Hex(1)HexNAc(2)Kdn(1) (S)</option>
+      <option value="dHex(2)Hex(1)HexNAc(2)Kdn(1) (T)">dHex(2)Hex(1)HexNAc(2)Kdn(1) (T)</option>
+      <option value="dHex(2)Hex(1)HexNAc(2)NeuAc(1) (S)">dHex(2)Hex(1)HexNAc(2)NeuAc(1) (S)</option>
+      <option value="dHex(2)Hex(1)HexNAc(2)NeuAc(1) (T)">dHex(2)Hex(1)HexNAc(2)NeuAc(1) (T)</option>
+      <option value="dHex(2)Hex(1)HexNAc(2)NeuGc(1) (S)">dHex(2)Hex(1)HexNAc(2)NeuGc(1) (S)</option>
+      <option value="dHex(2)Hex(1)HexNAc(2)NeuGc(1) (T)">dHex(2)Hex(1)HexNAc(2)NeuGc(1) (T)</option>
+      <option value="dHex(2)Hex(1)HexNAc(3) (S)">dHex(2)Hex(1)HexNAc(3) (S)</option>
+      <option value="dHex(2)Hex(1)HexNAc(3) (T)">dHex(2)Hex(1)HexNAc(3) (T)</option>
+      <option value="dHex(2)Hex(1)HexNAc(4)Sulf(1) (S)">dHex(2)Hex(1)HexNAc(4)Sulf(1) (S)</option>
+      <option value="dHex(2)Hex(1)HexNAc(4)Sulf(1) (T)">dHex(2)Hex(1)HexNAc(4)Sulf(1) (T)</option>
+      <option value="dHex(2)Hex(2) (S)">dHex(2)Hex(2) (S)</option>
+      <option value="dHex(2)Hex(2) (T)">dHex(2)Hex(2) (T)</option>
+      <option value="dHex(2)Hex(2)HexA(1) (S)">dHex(2)Hex(2)HexA(1) (S)</option>
+      <option value="dHex(2)Hex(2)HexA(1) (T)">dHex(2)Hex(2)HexA(1) (T)</option>
+      <option value="dHex(2)Hex(2)HexA(1)HexNAc(1) (S)">dHex(2)Hex(2)HexA(1)HexNAc(1) (S)</option>
+      <option value="dHex(2)Hex(2)HexA(1)HexNAc(1) (T)">dHex(2)Hex(2)HexA(1)HexNAc(1) (T)</option>
+      <option value="dHex(2)Hex(2)HexA(1)HexNAc(2)Sulf(1) (S)">dHex(2)Hex(2)HexA(1)HexNAc(2)Sulf(1) (S)</option>
+      <option value="dHex(2)Hex(2)HexA(1)HexNAc(2)Sulf(1) (T)">dHex(2)Hex(2)HexA(1)HexNAc(2)Sulf(1) (T)</option>
+      <option value="dHex(2)Hex(2)HexNAc(1) (S)">dHex(2)Hex(2)HexNAc(1) (S)</option>
+      <option value="dHex(2)Hex(2)HexNAc(1) (T)">dHex(2)Hex(2)HexNAc(1) (T)</option>
+      <option value="dHex(2)Hex(2)HexNAc(2) (N)">dHex(2)Hex(2)HexNAc(2) (N)</option>
+      <option value="dHex(2)Hex(2)HexNAc(2) (S)">dHex(2)Hex(2)HexNAc(2) (S)</option>
+      <option value="dHex(2)Hex(2)HexNAc(2) (T)">dHex(2)Hex(2)HexNAc(2) (T)</option>
+      <option value="dHex(2)Hex(2)HexNAc(2)Kdn(1) (S)">dHex(2)Hex(2)HexNAc(2)Kdn(1) (S)</option>
+      <option value="dHex(2)Hex(2)HexNAc(2)Kdn(1) (T)">dHex(2)Hex(2)HexNAc(2)Kdn(1) (T)</option>
+      <option value="dHex(2)Hex(2)HexNAc(2)NeuAc(1) (S)">dHex(2)Hex(2)HexNAc(2)NeuAc(1) (S)</option>
+      <option value="dHex(2)Hex(2)HexNAc(2)NeuAc(1) (T)">dHex(2)Hex(2)HexNAc(2)NeuAc(1) (T)</option>
+      <option value="dHex(2)Hex(2)HexNAc(2)NeuAc(1)Sulf(1) (S)">dHex(2)Hex(2)HexNAc(2)NeuAc(1)Sulf(1) (S)</option>
+      <option value="dHex(2)Hex(2)HexNAc(2)NeuAc(1)Sulf(1) (T)">dHex(2)Hex(2)HexNAc(2)NeuAc(1)Sulf(1) (T)</option>
+      <option value="dHex(2)Hex(2)HexNAc(2)NeuGc(1) (S)">dHex(2)Hex(2)HexNAc(2)NeuGc(1) (S)</option>
+      <option value="dHex(2)Hex(2)HexNAc(2)NeuGc(1) (T)">dHex(2)Hex(2)HexNAc(2)NeuGc(1) (T)</option>
+      <option value="dHex(2)Hex(2)HexNAc(2)Sulf(1) (S)">dHex(2)Hex(2)HexNAc(2)Sulf(1) (S)</option>
+      <option value="dHex(2)Hex(2)HexNAc(2)Sulf(1) (T)">dHex(2)Hex(2)HexNAc(2)Sulf(1) (T)</option>
+      <option value="dHex(2)Hex(2)HexNAc(2)Sulf(2) (S)">dHex(2)Hex(2)HexNAc(2)Sulf(2) (S)</option>
+      <option value="dHex(2)Hex(2)HexNAc(2)Sulf(2) (T)">dHex(2)Hex(2)HexNAc(2)Sulf(2) (T)</option>
+      <option value="dHex(2)Hex(2)HexNAc(3) (N)">dHex(2)Hex(2)HexNAc(3) (N)</option>
+      <option value="dHex(2)Hex(2)HexNAc(3) (S)">dHex(2)Hex(2)HexNAc(3) (S)</option>
+      <option value="dHex(2)Hex(2)HexNAc(3) (T)">dHex(2)Hex(2)HexNAc(3) (T)</option>
+      <option value="dHex(2)Hex(2)HexNAc(3)NeuAc(1) (S)">dHex(2)Hex(2)HexNAc(3)NeuAc(1) (S)</option>
+      <option value="dHex(2)Hex(2)HexNAc(3)NeuAc(1) (T)">dHex(2)Hex(2)HexNAc(3)NeuAc(1) (T)</option>
+      <option value="dHex(2)Hex(2)HexNAc(3)NeuGc(1) (S)">dHex(2)Hex(2)HexNAc(3)NeuGc(1) (S)</option>
+      <option value="dHex(2)Hex(2)HexNAc(3)NeuGc(1) (T)">dHex(2)Hex(2)HexNAc(3)NeuGc(1) (T)</option>
+      <option value="dHex(2)Hex(2)HexNAc(3)Sulf(1) (S)">dHex(2)Hex(2)HexNAc(3)Sulf(1) (S)</option>
+      <option value="dHex(2)Hex(2)HexNAc(3)Sulf(1) (T)">dHex(2)Hex(2)HexNAc(3)Sulf(1) (T)</option>
+      <option value="dHex(2)Hex(2)HexNAc(4) (S)">dHex(2)Hex(2)HexNAc(4) (S)</option>
+      <option value="dHex(2)Hex(2)HexNAc(4) (T)">dHex(2)Hex(2)HexNAc(4) (T)</option>
+      <option value="dHex(2)Hex(2)HexNAc(4)Sulf(2) (S)">dHex(2)Hex(2)HexNAc(4)Sulf(2) (S)</option>
+      <option value="dHex(2)Hex(2)HexNAc(4)Sulf(2) (T)">dHex(2)Hex(2)HexNAc(4)Sulf(2) (T)</option>
+      <option value="dHex(2)Hex(2)HexNAc(5) (S)">dHex(2)Hex(2)HexNAc(5) (S)</option>
+      <option value="dHex(2)Hex(2)HexNAc(5) (T)">dHex(2)Hex(2)HexNAc(5) (T)</option>
+      <option value="dHex(2)Hex(2)HexNAc(6)Sulf(1) (S)">dHex(2)Hex(2)HexNAc(6)Sulf(1) (S)</option>
+      <option value="dHex(2)Hex(2)HexNAc(6)Sulf(1) (T)">dHex(2)Hex(2)HexNAc(6)Sulf(1) (T)</option>
+      <option value="dHex(2)Hex(3) (S)">dHex(2)Hex(3) (S)</option>
+      <option value="dHex(2)Hex(3) (T)">dHex(2)Hex(3) (T)</option>
+      <option value="dHex(2)Hex(3)HexA(1)HexNAc(1)Sulf(1) (S)">dHex(2)Hex(3)HexA(1)HexNAc(1)Sulf(1) (S)</option>
+      <option value="dHex(2)Hex(3)HexA(1)HexNAc(1)Sulf(1) (T)">dHex(2)Hex(3)HexA(1)HexNAc(1)Sulf(1) (T)</option>
+      <option value="dHex(2)Hex(3)HexA(1)HexNAc(2)Sulf(1) (S)">dHex(2)Hex(3)HexA(1)HexNAc(2)Sulf(1) (S)</option>
+      <option value="dHex(2)Hex(3)HexA(1)HexNAc(2)Sulf(1) (T)">dHex(2)Hex(3)HexA(1)HexNAc(2)Sulf(1) (T)</option>
+      <option value="dHex(2)Hex(3)HexA(1)HexNAc(3)Sulf(1) (S)">dHex(2)Hex(3)HexA(1)HexNAc(3)Sulf(1) (S)</option>
+      <option value="dHex(2)Hex(3)HexA(1)HexNAc(3)Sulf(1) (T)">dHex(2)Hex(3)HexA(1)HexNAc(3)Sulf(1) (T)</option>
+      <option value="dHex(2)Hex(3)HexNAc(1)Sulf(1) (S)">dHex(2)Hex(3)HexNAc(1)Sulf(1) (S)</option>
+      <option value="dHex(2)Hex(3)HexNAc(1)Sulf(1) (T)">dHex(2)Hex(3)HexNAc(1)Sulf(1) (T)</option>
+      <option value="dHex(2)Hex(3)HexNAc(2) (N)">dHex(2)Hex(3)HexNAc(2) (N)</option>
+      <option value="dHex(2)Hex(3)HexNAc(2) (S)">dHex(2)Hex(3)HexNAc(2) (S)</option>
+      <option value="dHex(2)Hex(3)HexNAc(2) (T)">dHex(2)Hex(3)HexNAc(2) (T)</option>
+      <option value="dHex(2)Hex(3)HexNAc(2)NeuGc(1) (S)">dHex(2)Hex(3)HexNAc(2)NeuGc(1) (S)</option>
+      <option value="dHex(2)Hex(3)HexNAc(2)NeuGc(1) (T)">dHex(2)Hex(3)HexNAc(2)NeuGc(1) (T)</option>
+      <option value="dHex(2)Hex(3)HexNAc(2)Sulf(1) (S)">dHex(2)Hex(3)HexNAc(2)Sulf(1) (S)</option>
+      <option value="dHex(2)Hex(3)HexNAc(2)Sulf(1) (T)">dHex(2)Hex(3)HexNAc(2)Sulf(1) (T)</option>
+      <option value="dHex(2)Hex(3)HexNAc(3) (N)">dHex(2)Hex(3)HexNAc(3) (N)</option>
+      <option value="dHex(2)Hex(3)HexNAc(3) (S)">dHex(2)Hex(3)HexNAc(3) (S)</option>
+      <option value="dHex(2)Hex(3)HexNAc(3) (T)">dHex(2)Hex(3)HexNAc(3) (T)</option>
+      <option value="dHex(2)Hex(3)HexNAc(3)NeuAc(1) (S)">dHex(2)Hex(3)HexNAc(3)NeuAc(1) (S)</option>
+      <option value="dHex(2)Hex(3)HexNAc(3)NeuAc(1) (T)">dHex(2)Hex(3)HexNAc(3)NeuAc(1) (T)</option>
+      <option value="dHex(2)Hex(3)HexNAc(3)NeuAc(2) (S)">dHex(2)Hex(3)HexNAc(3)NeuAc(2) (S)</option>
+      <option value="dHex(2)Hex(3)HexNAc(3)NeuAc(2) (T)">dHex(2)Hex(3)HexNAc(3)NeuAc(2) (T)</option>
+      <option value="dHex(2)Hex(3)HexNAc(3)Pent(1) (N)">dHex(2)Hex(3)HexNAc(3)Pent(1) (N)</option>
+      <option value="dHex(2)Hex(3)HexNAc(3)Pent(2) (N)">dHex(2)Hex(3)HexNAc(3)Pent(2) (N)</option>
+      <option value="dHex(2)Hex(3)HexNAc(3)Sulf(1) (S)">dHex(2)Hex(3)HexNAc(3)Sulf(1) (S)</option>
+      <option value="dHex(2)Hex(3)HexNAc(3)Sulf(1) (T)">dHex(2)Hex(3)HexNAc(3)Sulf(1) (T)</option>
+      <option value="dHex(2)Hex(3)HexNAc(4) (N)">dHex(2)Hex(3)HexNAc(4) (N)</option>
+      <option value="dHex(2)Hex(3)HexNAc(4) (S)">dHex(2)Hex(3)HexNAc(4) (S)</option>
+      <option value="dHex(2)Hex(3)HexNAc(4) (T)">dHex(2)Hex(3)HexNAc(4) (T)</option>
+      <option value="dHex(2)Hex(3)HexNAc(4)NeuAc(1) (N)">dHex(2)Hex(3)HexNAc(4)NeuAc(1) (N)</option>
+      <option value="dHex(2)Hex(3)HexNAc(4)Pent(1) (N)">dHex(2)Hex(3)HexNAc(4)Pent(1) (N)</option>
+      <option value="dHex(2)Hex(3)HexNAc(4)Pent(2) (N)">dHex(2)Hex(3)HexNAc(4)Pent(2) (N)</option>
+      <option value="dHex(2)Hex(3)HexNAc(5) (N)">dHex(2)Hex(3)HexNAc(5) (N)</option>
+      <option value="dHex(2)Hex(3)HexNAc(5) (S)">dHex(2)Hex(3)HexNAc(5) (S)</option>
+      <option value="dHex(2)Hex(3)HexNAc(5) (T)">dHex(2)Hex(3)HexNAc(5) (T)</option>
+      <option value="dHex(2)Hex(3)HexNAc(6) (N)">dHex(2)Hex(3)HexNAc(6) (N)</option>
+      <option value="dHex(2)Hex(4) (S)">dHex(2)Hex(4) (S)</option>
+      <option value="dHex(2)Hex(4) (T)">dHex(2)Hex(4) (T)</option>
+      <option value="dHex(2)Hex(4)HexA(1)HexNAc(3)Sulf(1) (S)">dHex(2)Hex(4)HexA(1)HexNAc(3)Sulf(1) (S)</option>
+      <option value="dHex(2)Hex(4)HexA(1)HexNAc(3)Sulf(1) (T)">dHex(2)Hex(4)HexA(1)HexNAc(3)Sulf(1) (T)</option>
+      <option value="dHex(2)Hex(4)HexNAc(1) (S)">dHex(2)Hex(4)HexNAc(1) (S)</option>
+      <option value="dHex(2)Hex(4)HexNAc(1) (T)">dHex(2)Hex(4)HexNAc(1) (T)</option>
+      <option value="dHex(2)Hex(4)HexNAc(2) (N)">dHex(2)Hex(4)HexNAc(2) (N)</option>
+      <option value="dHex(2)Hex(4)HexNAc(2) (S)">dHex(2)Hex(4)HexNAc(2) (S)</option>
+      <option value="dHex(2)Hex(4)HexNAc(2) (T)">dHex(2)Hex(4)HexNAc(2) (T)</option>
+      <option value="dHex(2)Hex(4)HexNAc(3) (N)">dHex(2)Hex(4)HexNAc(3) (N)</option>
+      <option value="dHex(2)Hex(4)HexNAc(3)NeuAc(1)Sulf(1) (N)">dHex(2)Hex(4)HexNAc(3)NeuAc(1)Sulf(1) (N)</option>
+      <option value="dHex(2)Hex(4)HexNAc(3)Pent(1) (N)">dHex(2)Hex(4)HexNAc(3)Pent(1) (N)</option>
+      <option value="dHex(2)Hex(4)HexNAc(4) (N)">dHex(2)Hex(4)HexNAc(4) (N)</option>
+      <option value="dHex(2)Hex(4)HexNAc(4) (S)">dHex(2)Hex(4)HexNAc(4) (S)</option>
+      <option value="dHex(2)Hex(4)HexNAc(4) (T)">dHex(2)Hex(4)HexNAc(4) (T)</option>
+      <option value="dHex(2)Hex(4)HexNAc(4)Pent(1) (N)">dHex(2)Hex(4)HexNAc(4)Pent(1) (N)</option>
+      <option value="dHex(2)Hex(4)HexNAc(4)Sulf(1) (N)">dHex(2)Hex(4)HexNAc(4)Sulf(1) (N)</option>
+      <option value="dHex(2)Hex(4)HexNAc(5) (N)">dHex(2)Hex(4)HexNAc(5) (N)</option>
+      <option value="dHex(2)Hex(4)HexNAc(5) (S)">dHex(2)Hex(4)HexNAc(5) (S)</option>
+      <option value="dHex(2)Hex(4)HexNAc(5) (T)">dHex(2)Hex(4)HexNAc(5) (T)</option>
+      <option value="dHex(2)Hex(5)HexNAc(2)Me(1) (S)">dHex(2)Hex(5)HexNAc(2)Me(1) (S)</option>
+      <option value="dHex(2)Hex(5)HexNAc(2)Me(1) (T)">dHex(2)Hex(5)HexNAc(2)Me(1) (T)</option>
+      <option value="dHex(2)Hex(5)HexNAc(3)Pent(1) (N)">dHex(2)Hex(5)HexNAc(3)Pent(1) (N)</option>
+      <option value="dHex(2)Hex(5)HexNAc(4) (N)">dHex(2)Hex(5)HexNAc(4) (N)</option>
+      <option value="dHex(2)HexNAc(2)Kdn(1) (S)">dHex(2)HexNAc(2)Kdn(1) (S)</option>
+      <option value="dHex(2)HexNAc(2)Kdn(1) (T)">dHex(2)HexNAc(2)Kdn(1) (T)</option>
+      <option value="dHex(2)HexNAc(5) (S)">dHex(2)HexNAc(5) (S)</option>
+      <option value="dHex(2)HexNAc(5) (T)">dHex(2)HexNAc(5) (T)</option>
+      <option value="dHex(2)HexNAc(7) (S)">dHex(2)HexNAc(7) (S)</option>
+      <option value="dHex(2)HexNAc(7) (T)">dHex(2)HexNAc(7) (T)</option>
+      <option value="dHex(3)Hex(1)HexNAc(2)Kdn(1) (S)">dHex(3)Hex(1)HexNAc(2)Kdn(1) (S)</option>
+      <option value="dHex(3)Hex(1)HexNAc(2)Kdn(1) (T)">dHex(3)Hex(1)HexNAc(2)Kdn(1) (T)</option>
+      <option value="dHex(3)Hex(1)HexNAc(3)Kdn(1) (S)">dHex(3)Hex(1)HexNAc(3)Kdn(1) (S)</option>
+      <option value="dHex(3)Hex(1)HexNAc(3)Kdn(1) (T)">dHex(3)Hex(1)HexNAc(3)Kdn(1) (T)</option>
+      <option value="dHex(3)Hex(2)HexA(1)HexNAc(2)Sulf(1) (S)">dHex(3)Hex(2)HexA(1)HexNAc(2)Sulf(1) (S)</option>
+      <option value="dHex(3)Hex(2)HexA(1)HexNAc(2)Sulf(1) (T)">dHex(3)Hex(2)HexA(1)HexNAc(2)Sulf(1) (T)</option>
+      <option value="dHex(3)Hex(2)HexNAc(2) (S)">dHex(3)Hex(2)HexNAc(2) (S)</option>
+      <option value="dHex(3)Hex(2)HexNAc(2) (T)">dHex(3)Hex(2)HexNAc(2) (T)</option>
+      <option value="dHex(3)Hex(2)HexNAc(2)Kdn(1) (S)">dHex(3)Hex(2)HexNAc(2)Kdn(1) (S)</option>
+      <option value="dHex(3)Hex(2)HexNAc(2)Kdn(1) (T)">dHex(3)Hex(2)HexNAc(2)Kdn(1) (T)</option>
+      <option value="dHex(3)Hex(2)HexNAc(3) (S)">dHex(3)Hex(2)HexNAc(3) (S)</option>
+      <option value="dHex(3)Hex(2)HexNAc(3) (T)">dHex(3)Hex(2)HexNAc(3) (T)</option>
+      <option value="dHex(3)Hex(2)HexNAc(3)Kdn(1) (S)">dHex(3)Hex(2)HexNAc(3)Kdn(1) (S)</option>
+      <option value="dHex(3)Hex(2)HexNAc(3)Kdn(1) (T)">dHex(3)Hex(2)HexNAc(3)Kdn(1) (T)</option>
+      <option value="dHex(3)Hex(2)HexNAc(4) (S)">dHex(3)Hex(2)HexNAc(4) (S)</option>
+      <option value="dHex(3)Hex(2)HexNAc(4) (T)">dHex(3)Hex(2)HexNAc(4) (T)</option>
+      <option value="dHex(3)Hex(2)HexNAc(4)Sulf(2) (S)">dHex(3)Hex(2)HexNAc(4)Sulf(2) (S)</option>
+      <option value="dHex(3)Hex(2)HexNAc(4)Sulf(2) (T)">dHex(3)Hex(2)HexNAc(4)Sulf(2) (T)</option>
+      <option value="dHex(3)Hex(3)HexNAc(1) (S)">dHex(3)Hex(3)HexNAc(1) (S)</option>
+      <option value="dHex(3)Hex(3)HexNAc(1) (T)">dHex(3)Hex(3)HexNAc(1) (T)</option>
+      <option value="dHex(3)Hex(3)HexNAc(2) (S)">dHex(3)Hex(3)HexNAc(2) (S)</option>
+      <option value="dHex(3)Hex(3)HexNAc(2) (T)">dHex(3)Hex(3)HexNAc(2) (T)</option>
+      <option value="dHex(3)Hex(3)HexNAc(3) (S)">dHex(3)Hex(3)HexNAc(3) (S)</option>
+      <option value="dHex(3)Hex(3)HexNAc(3) (T)">dHex(3)Hex(3)HexNAc(3) (T)</option>
+      <option value="dHex(3)Hex(3)HexNAc(3)NeuAc(1) (S)">dHex(3)Hex(3)HexNAc(3)NeuAc(1) (S)</option>
+      <option value="dHex(3)Hex(3)HexNAc(3)NeuAc(1) (T)">dHex(3)Hex(3)HexNAc(3)NeuAc(1) (T)</option>
+      <option value="dHex(3)Hex(3)HexNAc(3)Pent(1) (N)">dHex(3)Hex(3)HexNAc(3)Pent(1) (N)</option>
+      <option value="dHex(3)Hex(3)HexNAc(4) (N)">dHex(3)Hex(3)HexNAc(4) (N)</option>
+      <option value="dHex(3)Hex(3)HexNAc(4)Pent(1) (N)">dHex(3)Hex(3)HexNAc(4)Pent(1) (N)</option>
+      <option value="dHex(3)Hex(4)HexNAc(4) (N)">dHex(3)Hex(4)HexNAc(4) (N)</option>
+      <option value="dHex(3)Hex(4)HexNAc(4) (S)">dHex(3)Hex(4)HexNAc(4) (S)</option>
+      <option value="dHex(3)Hex(4)HexNAc(4) (T)">dHex(3)Hex(4)HexNAc(4) (T)</option>
+      <option value="dHex(3)Hex(4)HexNAc(4)Sulf(1) (N)">dHex(3)Hex(4)HexNAc(4)Sulf(1) (N)</option>
+      <option value="dHex(3)HexNAc(3)Kdn(1) (S)">dHex(3)HexNAc(3)Kdn(1) (S)</option>
+      <option value="dHex(3)HexNAc(3)Kdn(1) (T)">dHex(3)HexNAc(3)Kdn(1) (T)</option>
+      <option value="dHex(4)Hex(1)HexNAc(1)Kdn(2) (S)">dHex(4)Hex(1)HexNAc(1)Kdn(2) (S)</option>
+      <option value="dHex(4)Hex(1)HexNAc(1)Kdn(2) (T)">dHex(4)Hex(1)HexNAc(1)Kdn(2) (T)</option>
+      <option value="dHex(4)Hex(1)HexNAc(2)Kdn(1) (S)">dHex(4)Hex(1)HexNAc(2)Kdn(1) (S)</option>
+      <option value="dHex(4)Hex(1)HexNAc(2)Kdn(1) (T)">dHex(4)Hex(1)HexNAc(2)Kdn(1) (T)</option>
+      <option value="dHex(4)Hex(1)HexNAc(3)Kdn(1) (S)">dHex(4)Hex(1)HexNAc(3)Kdn(1) (S)</option>
+      <option value="dHex(4)Hex(1)HexNAc(3)Kdn(1) (T)">dHex(4)Hex(1)HexNAc(3)Kdn(1) (T)</option>
+      <option value="dHex(4)Hex(2)HexNAc(2)Kdn(1) (S)">dHex(4)Hex(2)HexNAc(2)Kdn(1) (S)</option>
+      <option value="dHex(4)Hex(2)HexNAc(2)Kdn(1) (T)">dHex(4)Hex(2)HexNAc(2)Kdn(1) (T)</option>
+      <option value="dHex(4)Hex(2)HexNAc(3) (S)">dHex(4)Hex(2)HexNAc(3) (S)</option>
+      <option value="dHex(4)Hex(2)HexNAc(3) (T)">dHex(4)Hex(2)HexNAc(3) (T)</option>
+      <option value="dHex(4)Hex(3)HexNAc(2)NeuAc(1) (S)">dHex(4)Hex(3)HexNAc(2)NeuAc(1) (S)</option>
+      <option value="dHex(4)Hex(3)HexNAc(2)NeuAc(1) (T)">dHex(4)Hex(3)HexNAc(2)NeuAc(1) (T)</option>
+      <option value="dHex(4)Hex(3)HexNAc(3) (S)">dHex(4)Hex(3)HexNAc(3) (S)</option>
+      <option value="dHex(4)Hex(3)HexNAc(3) (T)">dHex(4)Hex(3)HexNAc(3) (T)</option>
+      <option value="dHex(4)HexNAc(3)Kdn(1) (S)">dHex(4)HexNAc(3)Kdn(1) (S)</option>
+      <option value="dHex(4)HexNAc(3)Kdn(1) (T)">dHex(4)HexNAc(3)Kdn(1) (T)</option>
+      <option value="DHP (C)">DHP (C)</option>
+      <option value="Diacylglycerol (C)">Diacylglycerol (C)</option>
+      <option value="DiART6plex (K)">DiART6plex (K)</option>
+      <option value="DiART6plex (N-term)">DiART6plex (N-term)</option>
+      <option value="DiART6plex (Protein N-term)">DiART6plex (Protein N-term)</option>
+      <option value="DiART6plex (Y)">DiART6plex (Y)</option>
+      <option value="DiART6plex115 (K)">DiART6plex115 (K)</option>
+      <option value="DiART6plex115 (N-term)">DiART6plex115 (N-term)</option>
+      <option value="DiART6plex115 (Protein N-term)">DiART6plex115 (Protein N-term)</option>
+      <option value="DiART6plex115 (Y)">DiART6plex115 (Y)</option>
+      <option value="DiART6plex116/119 (K)">DiART6plex116/119 (K)</option>
+      <option value="DiART6plex116/119 (N-term)">DiART6plex116/119 (N-term)</option>
+      <option value="DiART6plex116/119 (Protein N-term)">DiART6plex116/119 (Protein N-term)</option>
+      <option value="DiART6plex116/119 (Y)">DiART6plex116/119 (Y)</option>
+      <option value="DiART6plex117 (K)">DiART6plex117 (K)</option>
+      <option value="DiART6plex117 (N-term)">DiART6plex117 (N-term)</option>
+      <option value="DiART6plex117 (Protein N-term)">DiART6plex117 (Protein N-term)</option>
+      <option value="DiART6plex117 (Y)">DiART6plex117 (Y)</option>
+      <option value="DiART6plex118 (K)">DiART6plex118 (K)</option>
+      <option value="DiART6plex118 (N-term)">DiART6plex118 (N-term)</option>
+      <option value="DiART6plex118 (Protein N-term)">DiART6plex118 (Protein N-term)</option>
+      <option value="DiART6plex118 (Y)">DiART6plex118 (Y)</option>
+      <option value="Dibromo (Y)">Dibromo (Y)</option>
+      <option value="Dicarbamidomethyl (C)">Dicarbamidomethyl (C)</option>
+      <option value="Dicarbamidomethyl (H)">Dicarbamidomethyl (H)</option>
+      <option value="Dicarbamidomethyl (K)">Dicarbamidomethyl (K)</option>
+      <option value="Dicarbamidomethyl (N-term)">Dicarbamidomethyl (N-term)</option>
+      <option value="Dicarbamidomethyl (R)">Dicarbamidomethyl (R)</option>
+      <option value="dichlorination (C)">dichlorination (C)</option>
+      <option value="dichlorination (Y)">dichlorination (Y)</option>
+      <option value="Didehydro (C-term K)">Didehydro (C-term K)</option>
+      <option value="Didehydro (S)">Didehydro (S)</option>
+      <option value="Didehydro (T)">Didehydro (T)</option>
+      <option value="Didehydro (Y)">Didehydro (Y)</option>
+      <option value="Didehydroretinylidene (K)">Didehydroretinylidene (K)</option>
+      <option value="Diethyl (K)">Diethyl (K)</option>
+      <option value="Diethyl (N-term)">Diethyl (N-term)</option>
+      <option value="Diethylphosphate (C)">Diethylphosphate (C)</option>
+      <option value="Diethylphosphate (H)">Diethylphosphate (H)</option>
+      <option value="Diethylphosphate (K)">Diethylphosphate (K)</option>
+      <option value="Diethylphosphate (N-term)">Diethylphosphate (N-term)</option>
+      <option value="Diethylphosphate (S)">Diethylphosphate (S)</option>
+      <option value="Diethylphosphate (T)">Diethylphosphate (T)</option>
+      <option value="Diethylphosphate (Y)">Diethylphosphate (Y)</option>
+      <option value="Diethylphosphothione (C)">Diethylphosphothione (C)</option>
+      <option value="Diethylphosphothione (H)">Diethylphosphothione (H)</option>
+      <option value="Diethylphosphothione (K)">Diethylphosphothione (K)</option>
+      <option value="Diethylphosphothione (S)">Diethylphosphothione (S)</option>
+      <option value="Diethylphosphothione (T)">Diethylphosphothione (T)</option>
+      <option value="Diethylphosphothione (Y)">Diethylphosphothione (Y)</option>
+      <option value="Difuran (Y)">Difuran (Y)</option>
+      <option value="Dihydroxyimidazolidine (R)">Dihydroxyimidazolidine (R)</option>
+      <option value="Diiodo (H)">Diiodo (H)</option>
+      <option value="Diiodo (Y)">Diiodo (Y)</option>
+      <option value="Diironsubcluster (C)">Diironsubcluster (C)</option>
+      <option value="Diisopropylphosphate (K)">Diisopropylphosphate (K)</option>
+      <option value="Diisopropylphosphate (N-term)">Diisopropylphosphate (N-term)</option>
+      <option value="Diisopropylphosphate (S)">Diisopropylphosphate (S)</option>
+      <option value="Diisopropylphosphate (T)">Diisopropylphosphate (T)</option>
+      <option value="Diisopropylphosphate (Y)">Diisopropylphosphate (Y)</option>
+      <option value="DiLeu4plex (K)">DiLeu4plex (K)</option>
+      <option value="DiLeu4plex (N-term)">DiLeu4plex (N-term)</option>
+      <option value="DiLeu4plex (Y)">DiLeu4plex (Y)</option>
+      <option value="DiLeu4plex115 (K)">DiLeu4plex115 (K)</option>
+      <option value="DiLeu4plex115 (N-term)">DiLeu4plex115 (N-term)</option>
+      <option value="DiLeu4plex115 (Y)">DiLeu4plex115 (Y)</option>
+      <option value="DiLeu4plex117 (K)">DiLeu4plex117 (K)</option>
+      <option value="DiLeu4plex117 (N-term)">DiLeu4plex117 (N-term)</option>
+      <option value="DiLeu4plex117 (Y)">DiLeu4plex117 (Y)</option>
+      <option value="DiLeu4plex118 (K)">DiLeu4plex118 (K)</option>
+      <option value="DiLeu4plex118 (N-term)">DiLeu4plex118 (N-term)</option>
+      <option value="DiLeu4plex118 (Y)">DiLeu4plex118 (Y)</option>
+      <option value="Dimethyl (K)">Dimethyl (K)</option>
+      <option value="Dimethyl (N)">Dimethyl (N)</option>
+      <option value="Dimethyl (N-term)">Dimethyl (N-term)</option>
+      <option value="Dimethyl (Protein N-term P)">Dimethyl (Protein N-term P)</option>
+      <option value="Dimethyl (Protein N-term)">Dimethyl (Protein N-term)</option>
+      <option value="Dimethyl (R)">Dimethyl (R)</option>
+      <option value="Dimethyl:2H(2)13C (K)">Dimethyl:2H(2)13C (K)</option>
+      <option value="Dimethyl:2H(2)13C (N)">Dimethyl:2H(2)13C (N)</option>
+      <option value="Dimethyl:2H(2)13C (N-term)">Dimethyl:2H(2)13C (N-term)</option>
+      <option value="Dimethyl:2H(2)13C (Protein N-term P)">Dimethyl:2H(2)13C (Protein N-term P)</option>
+      <option value="Dimethyl:2H(2)13C (R)">Dimethyl:2H(2)13C (R)</option>
+      <option value="Dimethyl:2H(4) (K)">Dimethyl:2H(4) (K)</option>
+      <option value="Dimethyl:2H(4) (N-term)">Dimethyl:2H(4) (N-term)</option>
+      <option value="Dimethyl:2H(4) (Protein N-term)">Dimethyl:2H(4) (Protein N-term)</option>
+      <option value="Dimethyl:2H(4) (R)">Dimethyl:2H(4) (R)</option>
+      <option value="Dimethyl:2H(4)13C(2) (K)">Dimethyl:2H(4)13C(2) (K)</option>
+      <option value="Dimethyl:2H(4)13C(2) (N-term)">Dimethyl:2H(4)13C(2) (N-term)</option>
+      <option value="Dimethyl:2H(4)13C(2) (Protein N-term)">Dimethyl:2H(4)13C(2) (Protein N-term)</option>
+      <option value="Dimethyl:2H(4)13C(2) (R)">Dimethyl:2H(4)13C(2) (R)</option>
+      <option value="Dimethyl:2H(6) (K)">Dimethyl:2H(6) (K)</option>
+      <option value="Dimethyl:2H(6) (N-term)">Dimethyl:2H(6) (N-term)</option>
+      <option value="Dimethyl:2H(6) (R)">Dimethyl:2H(6) (R)</option>
+      <option value="Dimethyl:2H(6)13C(2) (K)">Dimethyl:2H(6)13C(2) (K)</option>
+      <option value="Dimethyl:2H(6)13C(2) (N-term)">Dimethyl:2H(6)13C(2) (N-term)</option>
+      <option value="Dimethyl:2H(6)13C(2) (Protein N-term)">Dimethyl:2H(6)13C(2) (Protein N-term)</option>
+      <option value="Dimethyl:2H(6)13C(2) (R)">Dimethyl:2H(6)13C(2) (R)</option>
+      <option value="DimethylamineGMBS (C)">DimethylamineGMBS (C)</option>
+      <option value="Dimethylaminoethyl (C)">Dimethylaminoethyl (C)</option>
+      <option value="DimethylArsino (C)">DimethylArsino (C)</option>
+      <option value="Dimethylphosphothione (C)">Dimethylphosphothione (C)</option>
+      <option value="Dimethylphosphothione (H)">Dimethylphosphothione (H)</option>
+      <option value="Dimethylphosphothione (K)">Dimethylphosphothione (K)</option>
+      <option value="Dimethylphosphothione (S)">Dimethylphosphothione (S)</option>
+      <option value="Dimethylphosphothione (T)">Dimethylphosphothione (T)</option>
+      <option value="Dimethylphosphothione (Y)">Dimethylphosphothione (Y)</option>
+      <option value="DimethylpyrroleAdduct (K)">DimethylpyrroleAdduct (K)</option>
+      <option value="Dioxidation (C)">Dioxidation (C)</option>
+      <option value="Dioxidation (E)">Dioxidation (E)</option>
+      <option value="Dioxidation (F)">Dioxidation (F)</option>
+      <option value="Dioxidation (I)">Dioxidation (I)</option>
+      <option value="Dioxidation (K)">Dioxidation (K)</option>
+      <option value="Dioxidation (L)">Dioxidation (L)</option>
+      <option value="Dioxidation (M)">Dioxidation (M)</option>
+      <option value="Dioxidation (P)">Dioxidation (P)</option>
+      <option value="Dioxidation (R)">Dioxidation (R)</option>
+      <option value="Dioxidation (U)">Dioxidation (U)</option>
+      <option value="Dioxidation (V)">Dioxidation (V)</option>
+      <option value="Dioxidation (W)">Dioxidation (W)</option>
+      <option value="Dioxidation (Y)">Dioxidation (Y)</option>
+      <option value="Diphthamide (H)">Diphthamide (H)</option>
+      <option value="Dipyridyl (C)">Dipyridyl (C)</option>
+      <option value="Dipyrrolylmethanemethyl (C)">Dipyrrolylmethanemethyl (C)</option>
+      <option value="DMPO (C)">DMPO (C)</option>
+      <option value="DMPO (H)">DMPO (H)</option>
+      <option value="DMPO (Y)">DMPO (Y)</option>
+      <option value="DNCB_hapten (C)">DNCB_hapten (C)</option>
+      <option value="DNCB_hapten (H)">DNCB_hapten (H)</option>
+      <option value="DNCB_hapten (K)">DNCB_hapten (K)</option>
+      <option value="DNCB_hapten (Y)">DNCB_hapten (Y)</option>
+      <option value="dNIC (K)">dNIC (K)</option>
+      <option value="dNIC (N-term)">dNIC (N-term)</option>
+      <option value="DNPS (C)">DNPS (C)</option>
+      <option value="DNPS (W)">DNPS (W)</option>
+      <option value="DTT (C)">DTT (C)</option>
+      <option value="DyLight-maleimide (C)">DyLight-maleimide (C)</option>
+      <option value="DYn-2 (C)">DYn-2 (C)</option>
+      <option value="EDEDTIDVFQQQTGG (K)">EDEDTIDVFQQQTGG (K)</option>
+      <option value="EDT-iodoacetyl-PEO-biotin (S)">EDT-iodoacetyl-PEO-biotin (S)</option>
+      <option value="EDT-iodoacetyl-PEO-biotin (T)">EDT-iodoacetyl-PEO-biotin (T)</option>
+      <option value="EDT-maleimide-PEO-biotin (S)">EDT-maleimide-PEO-biotin (S)</option>
+      <option value="EDT-maleimide-PEO-biotin (T)">EDT-maleimide-PEO-biotin (T)</option>
+      <option value="EEEDVIEVYQEQTGG (K)">EEEDVIEVYQEQTGG (K)</option>
+      <option value="EGCG1 (C)">EGCG1 (C)</option>
+      <option value="EGCG2 (C)">EGCG2 (C)</option>
+      <option value="EHD-diphenylpentanone (C)">EHD-diphenylpentanone (C)</option>
+      <option value="EHD-diphenylpentanone (M)">EHD-diphenylpentanone (M)</option>
+      <option value="EQAT (C)">EQAT (C)</option>
+      <option value="EQAT:2H(5) (C)">EQAT:2H(5) (C)</option>
+      <option value="EQIGG (K)">EQIGG (K)</option>
+      <option value="ESP (K)">ESP (K)</option>
+      <option value="ESP (N-term)">ESP (N-term)</option>
+      <option value="ESP:2H(10) (K)">ESP:2H(10) (K)</option>
+      <option value="ESP:2H(10) (N-term)">ESP:2H(10) (N-term)</option>
+      <option value="Ethanedithiol (S)">Ethanedithiol (S)</option>
+      <option value="Ethanedithiol (T)">Ethanedithiol (T)</option>
+      <option value="Ethanolamine (C)">Ethanolamine (C)</option>
+      <option value="Ethanolamine (C-term)">Ethanolamine (C-term)</option>
+      <option value="Ethanolamine (D)">Ethanolamine (D)</option>
+      <option value="Ethanolamine (E)">Ethanolamine (E)</option>
+      <option value="Ethanolyl (C)">Ethanolyl (C)</option>
+      <option value="Ethanolyl (K)">Ethanolyl (K)</option>
+      <option value="Ethanolyl (R)">Ethanolyl (R)</option>
+      <option value="Ethoxyformyl (H)">Ethoxyformyl (H)</option>
+      <option value="Ethyl (C-term)">Ethyl (C-term)</option>
+      <option value="Ethyl (D)">Ethyl (D)</option>
+      <option value="Ethyl (E)">Ethyl (E)</option>
+      <option value="Ethyl (K)">Ethyl (K)</option>
+      <option value="Ethyl (N-term)">Ethyl (N-term)</option>
+      <option value="Ethyl (Protein N-term)">Ethyl (Protein N-term)</option>
+      <option value="Ethyl+Deamidated (N)">Ethyl+Deamidated (N)</option>
+      <option value="Ethyl+Deamidated (Q)">Ethyl+Deamidated (Q)</option>
+      <option value="ethylamino (S)">ethylamino (S)</option>
+      <option value="ethylamino (T)">ethylamino (T)</option>
+      <option value="Ethylphosphate (K)">Ethylphosphate (K)</option>
+      <option value="Ethylphosphate (N-term)">Ethylphosphate (N-term)</option>
+      <option value="Ethylphosphate (S)">Ethylphosphate (S)</option>
+      <option value="Ethylphosphate (T)">Ethylphosphate (T)</option>
+      <option value="Ethylphosphate (Y)">Ethylphosphate (Y)</option>
+      <option value="ethylsulfonylethyl (C)">ethylsulfonylethyl (C)</option>
+      <option value="ethylsulfonylethyl (H)">ethylsulfonylethyl (H)</option>
+      <option value="ethylsulfonylethyl (K)">ethylsulfonylethyl (K)</option>
+      <option value="ExacTagAmine (K)">ExacTagAmine (K)</option>
+      <option value="ExacTagThiol (C)">ExacTagThiol (C)</option>
+      <option value="FAD (C)">FAD (C)</option>
+      <option value="FAD (H)">FAD (H)</option>
+      <option value="FAD (Y)">FAD (Y)</option>
+      <option value="Farnesyl (C)">Farnesyl (C)</option>
+      <option value="Fluorescein (C)">Fluorescein (C)</option>
+      <option value="Fluorescein-tyramine (Y)">Fluorescein-tyramine (Y)</option>
+      <option value="Fluoro (A)">Fluoro (A)</option>
+      <option value="Fluoro (F)">Fluoro (F)</option>
+      <option value="Fluoro (W)">Fluoro (W)</option>
+      <option value="Fluoro (Y)">Fluoro (Y)</option>
+      <option value="FMN (S)">FMN (S)</option>
+      <option value="FMN (T)">FMN (T)</option>
+      <option value="FMNC (C)">FMNC (C)</option>
+      <option value="FMNH (C)">FMNH (C)</option>
+      <option value="FMNH (H)">FMNH (H)</option>
+      <option value="FNEM (C)">FNEM (C)</option>
+      <option value="Formyl (K)">Formyl (K)</option>
+      <option value="Formyl (N-term)">Formyl (N-term)</option>
+      <option value="Formyl (Protein N-term)">Formyl (Protein N-term)</option>
+      <option value="Formyl (S)">Formyl (S)</option>
+      <option value="Formyl (T)">Formyl (T)</option>
+      <option value="Formylasparagine (H)">Formylasparagine (H)</option>
+      <option value="FormylMet (Protein N-term)">FormylMet (Protein N-term)</option>
+      <option value="FP-Biotin (K)">FP-Biotin (K)</option>
+      <option value="FP-Biotin (S)">FP-Biotin (S)</option>
+      <option value="FP-Biotin (T)">FP-Biotin (T)</option>
+      <option value="FP-Biotin (Y)">FP-Biotin (Y)</option>
+      <option value="FTC (C)">FTC (C)</option>
+      <option value="FTC (K)">FTC (K)</option>
+      <option value="FTC (P)">FTC (P)</option>
+      <option value="FTC (R)">FTC (R)</option>
+      <option value="FTC (S)">FTC (S)</option>
+      <option value="Furan (Y)">Furan (Y)</option>
+      <option value="G-H1 (R)">G-H1 (R)</option>
+      <option value="Galactosyl (K)">Galactosyl (K)</option>
+      <option value="Galactosyl (N-term)">Galactosyl (N-term)</option>
+      <option value="GEE (Q)">GEE (Q)</option>
+      <option value="GeranylGeranyl (C)">GeranylGeranyl (C)</option>
+      <option value="GG (C)">GG (C)</option>
+      <option value="GG (K)">GG (K)</option>
+      <option value="GG (Protein N-term)">GG (Protein N-term)</option>
+      <option value="GG (S)">GG (S)</option>
+      <option value="GG (T)">GG (T)</option>
+      <option value="GGQ (K)">GGQ (K)</option>
+      <option value="GIST-Quat (K)">GIST-Quat (K)</option>
+      <option value="GIST-Quat (N-term)">GIST-Quat (N-term)</option>
+      <option value="GIST-Quat:2H(3) (K)">GIST-Quat:2H(3) (K)</option>
+      <option value="GIST-Quat:2H(3) (N-term)">GIST-Quat:2H(3) (N-term)</option>
+      <option value="GIST-Quat:2H(6) (K)">GIST-Quat:2H(6) (K)</option>
+      <option value="GIST-Quat:2H(6) (N-term)">GIST-Quat:2H(6) (N-term)</option>
+      <option value="GIST-Quat:2H(9) (K)">GIST-Quat:2H(9) (K)</option>
+      <option value="GIST-Quat:2H(9) (N-term)">GIST-Quat:2H(9) (N-term)</option>
+      <option value="Gln-&gt;Ala (Q)">Gln-&gt;Ala (Q)</option>
+      <option value="Gln-&gt;Arg (Q)">Gln-&gt;Arg (Q)</option>
+      <option value="Gln-&gt;Asn (Q)">Gln-&gt;Asn (Q)</option>
+      <option value="Gln-&gt;Asp (Q)">Gln-&gt;Asp (Q)</option>
+      <option value="Gln-&gt;Cys (Q)">Gln-&gt;Cys (Q)</option>
+      <option value="Gln-&gt;Glu (Q)">Gln-&gt;Glu (Q)</option>
+      <option value="Gln-&gt;Gly (Q)">Gln-&gt;Gly (Q)</option>
+      <option value="Gln-&gt;His (Q)">Gln-&gt;His (Q)</option>
+      <option value="Gln-&gt;Lys (Q)">Gln-&gt;Lys (Q)</option>
+      <option value="Gln-&gt;Met (Q)">Gln-&gt;Met (Q)</option>
+      <option value="Gln-&gt;Phe (Q)">Gln-&gt;Phe (Q)</option>
+      <option value="Gln-&gt;Pro (Q)">Gln-&gt;Pro (Q)</option>
+      <option value="Gln-&gt;pyro-Glu (N-term Q)">Gln-&gt;pyro-Glu (N-term Q)</option>
+      <option value="Gln-&gt;Ser (Q)">Gln-&gt;Ser (Q)</option>
+      <option value="Gln-&gt;Thr (Q)">Gln-&gt;Thr (Q)</option>
+      <option value="Gln-&gt;Trp (Q)">Gln-&gt;Trp (Q)</option>
+      <option value="Gln-&gt;Tyr (Q)">Gln-&gt;Tyr (Q)</option>
+      <option value="Gln-&gt;Val (Q)">Gln-&gt;Val (Q)</option>
+      <option value="Gln-&gt;Xle (Q)">Gln-&gt;Xle (Q)</option>
+      <option value="Glu (E)">Glu (E)</option>
+      <option value="Glu (Protein C-term)">Glu (Protein C-term)</option>
+      <option value="Glu-&gt;Ala (E)">Glu-&gt;Ala (E)</option>
+      <option value="Glu-&gt;Arg (E)">Glu-&gt;Arg (E)</option>
+      <option value="Glu-&gt;Asn (E)">Glu-&gt;Asn (E)</option>
+      <option value="Glu-&gt;Asp (E)">Glu-&gt;Asp (E)</option>
+      <option value="Glu-&gt;Cys (E)">Glu-&gt;Cys (E)</option>
+      <option value="Glu-&gt;Gln (E)">Glu-&gt;Gln (E)</option>
+      <option value="Glu-&gt;Gly (E)">Glu-&gt;Gly (E)</option>
+      <option value="Glu-&gt;His (E)">Glu-&gt;His (E)</option>
+      <option value="Glu-&gt;Lys (E)">Glu-&gt;Lys (E)</option>
+      <option value="Glu-&gt;Met (E)">Glu-&gt;Met (E)</option>
+      <option value="Glu-&gt;Phe (E)">Glu-&gt;Phe (E)</option>
+      <option value="Glu-&gt;Pro (E)">Glu-&gt;Pro (E)</option>
+      <option value="Glu-&gt;pyro-Glu (N-term E)">Glu-&gt;pyro-Glu (N-term E)</option>
+      <option value="Glu-&gt;pyro-Glu+Methyl (N-term E)">Glu-&gt;pyro-Glu+Methyl (N-term E)</option>
+      <option value="Glu-&gt;pyro-Glu+Methyl (N-term E)">Glu-&gt;pyro-Glu+Methyl (N-term E)</option>
+      <option value="Glu-&gt;pyro-Glu+Methyl:2H(2)13C (N-term E)">Glu-&gt;pyro-Glu+Methyl:2H(2)13C (N-term E)</option>
+      <option value="Glu-&gt;pyro-Glu+Methyl:2H(2)13C(1) (N-term E)">Glu-&gt;pyro-Glu+Methyl:2H(2)13C(1) (N-term E)</option>
+      <option value="Glu-&gt;Ser (E)">Glu-&gt;Ser (E)</option>
+      <option value="Glu-&gt;Thr (E)">Glu-&gt;Thr (E)</option>
+      <option value="Glu-&gt;Trp (E)">Glu-&gt;Trp (E)</option>
+      <option value="Glu-&gt;Tyr (E)">Glu-&gt;Tyr (E)</option>
+      <option value="Glu-&gt;Val (E)">Glu-&gt;Val (E)</option>
+      <option value="Glu-&gt;Xle (E)">Glu-&gt;Xle (E)</option>
+      <option value="glucosone (R)">glucosone (R)</option>
+      <option value="Glucosylgalactosyl (K)">Glucosylgalactosyl (K)</option>
+      <option value="Glucuronyl (Protein N-term)">Glucuronyl (Protein N-term)</option>
+      <option value="Glucuronyl (S)">Glucuronyl (S)</option>
+      <option value="Glucuronyl (T)">Glucuronyl (T)</option>
+      <option value="GluGlu (E)">GluGlu (E)</option>
+      <option value="GluGlu (Protein C-term)">GluGlu (Protein C-term)</option>
+      <option value="GluGluGlu (E)">GluGluGlu (E)</option>
+      <option value="GluGluGlu (Protein C-term)">GluGluGlu (Protein C-term)</option>
+      <option value="GluGluGluGlu (E)">GluGluGluGlu (E)</option>
+      <option value="GluGluGluGlu (Protein C-term)">GluGluGluGlu (Protein C-term)</option>
+      <option value="Gluratylation (K)">Gluratylation (K)</option>
+      <option value="Glutathione (C)">Glutathione (C)</option>
+      <option value="Gly (K)">Gly (K)</option>
+      <option value="Gly (S)">Gly (S)</option>
+      <option value="Gly (T)">Gly (T)</option>
+      <option value="Gly-&gt;Ala (G)">Gly-&gt;Ala (G)</option>
+      <option value="Gly-&gt;Arg (G)">Gly-&gt;Arg (G)</option>
+      <option value="Gly-&gt;Asn (G)">Gly-&gt;Asn (G)</option>
+      <option value="Gly-&gt;Asp (G)">Gly-&gt;Asp (G)</option>
+      <option value="Gly-&gt;Cys (G)">Gly-&gt;Cys (G)</option>
+      <option value="Gly-&gt;Gln (G)">Gly-&gt;Gln (G)</option>
+      <option value="Gly-&gt;Glu (G)">Gly-&gt;Glu (G)</option>
+      <option value="Gly-&gt;His (G)">Gly-&gt;His (G)</option>
+      <option value="Gly-&gt;Lys (G)">Gly-&gt;Lys (G)</option>
+      <option value="Gly-&gt;Met (G)">Gly-&gt;Met (G)</option>
+      <option value="Gly-&gt;Phe (G)">Gly-&gt;Phe (G)</option>
+      <option value="Gly-&gt;Pro (G)">Gly-&gt;Pro (G)</option>
+      <option value="Gly-&gt;Ser (G)">Gly-&gt;Ser (G)</option>
+      <option value="Gly-&gt;Thr (G)">Gly-&gt;Thr (G)</option>
+      <option value="Gly-&gt;Trp (G)">Gly-&gt;Trp (G)</option>
+      <option value="Gly-&gt;Tyr (G)">Gly-&gt;Tyr (G)</option>
+      <option value="Gly-&gt;Val (G)">Gly-&gt;Val (G)</option>
+      <option value="Gly-&gt;Xle (G)">Gly-&gt;Xle (G)</option>
+      <option value="Gly-loss+Amide (C-term G)">Gly-loss+Amide (C-term G)</option>
+      <option value="Glycerophospho (S)">Glycerophospho (S)</option>
+      <option value="GlycerylPE (E)">GlycerylPE (E)</option>
+      <option value="glycidamide (K)">glycidamide (K)</option>
+      <option value="glycidamide (N-term)">glycidamide (N-term)</option>
+      <option value="Glycosyl (P)">Glycosyl (P)</option>
+      <option value="glyoxalAGE (R)">glyoxalAGE (R)</option>
+      <option value="GNLLFLACYCIGG (K)">GNLLFLACYCIGG (K)</option>
+      <option value="GPIanchor (Protein C-term)">GPIanchor (Protein C-term)</option>
+      <option value="Guanidinyl (K)">Guanidinyl (K)</option>
+      <option value="Guanidinyl (N-term)">Guanidinyl (N-term)</option>
+      <option value="Haloxon (C)">Haloxon (C)</option>
+      <option value="Haloxon (H)">Haloxon (H)</option>
+      <option value="Haloxon (K)">Haloxon (K)</option>
+      <option value="Haloxon (S)">Haloxon (S)</option>
+      <option value="Haloxon (T)">Haloxon (T)</option>
+      <option value="Haloxon (Y)">Haloxon (Y)</option>
+      <option value="HCysteinyl (C)">HCysteinyl (C)</option>
+      <option value="HCysThiolactone (K)">HCysThiolactone (K)</option>
+      <option value="Heme (C)">Heme (C)</option>
+      <option value="Heme (H)">Heme (H)</option>
+      <option value="Hep (K)">Hep (K)</option>
+      <option value="Hep (N)">Hep (N)</option>
+      <option value="Hep (Q)">Hep (Q)</option>
+      <option value="Hep (R)">Hep (R)</option>
+      <option value="Hep (S)">Hep (S)</option>
+      <option value="Hep (T)">Hep (T)</option>
+      <option value="Hex (C)">Hex (C)</option>
+      <option value="Hex (K)">Hex (K)</option>
+      <option value="Hex (N)">Hex (N)</option>
+      <option value="Hex (N-term)">Hex (N-term)</option>
+      <option value="Hex (R)">Hex (R)</option>
+      <option value="Hex (S)">Hex (S)</option>
+      <option value="Hex (T)">Hex (T)</option>
+      <option value="Hex (W)">Hex (W)</option>
+      <option value="Hex (Y)">Hex (Y)</option>
+      <option value="Hex(1)HexA(1) (S)">Hex(1)HexA(1) (S)</option>
+      <option value="Hex(1)HexA(1) (T)">Hex(1)HexA(1) (T)</option>
+      <option value="Hex(1)HexA(1)HexNAc(1) (S)">Hex(1)HexA(1)HexNAc(1) (S)</option>
+      <option value="Hex(1)HexA(1)HexNAc(1) (T)">Hex(1)HexA(1)HexNAc(1) (T)</option>
+      <option value="Hex(1)HexA(1)HexNAc(2) (S)">Hex(1)HexA(1)HexNAc(2) (S)</option>
+      <option value="Hex(1)HexA(1)HexNAc(2) (T)">Hex(1)HexA(1)HexNAc(2) (T)</option>
+      <option value="Hex(1)HexNAc(1) (N)">Hex(1)HexNAc(1) (N)</option>
+      <option value="Hex(1)HexNAc(1) (S)">Hex(1)HexNAc(1) (S)</option>
+      <option value="Hex(1)HexNAc(1) (T)">Hex(1)HexNAc(1) (T)</option>
+      <option value="Hex(1)HexNAc(1)dHex(1) (N)">Hex(1)HexNAc(1)dHex(1) (N)</option>
+      <option value="Hex(1)HexNAc(1)dHex(1) (S)">Hex(1)HexNAc(1)dHex(1) (S)</option>
+      <option value="Hex(1)HexNAc(1)dHex(1) (T)">Hex(1)HexNAc(1)dHex(1) (T)</option>
+      <option value="Hex(1)HexNAc(1)dHex(1)Me(1) (S)">Hex(1)HexNAc(1)dHex(1)Me(1) (S)</option>
+      <option value="Hex(1)HexNAc(1)dHex(1)Me(1) (T)">Hex(1)HexNAc(1)dHex(1)Me(1) (T)</option>
+      <option value="Hex(1)HexNAc(1)dHex(1)Me(2) (S)">Hex(1)HexNAc(1)dHex(1)Me(2) (S)</option>
+      <option value="Hex(1)HexNAc(1)dHex(1)Me(2) (T)">Hex(1)HexNAc(1)dHex(1)Me(2) (T)</option>
+      <option value="Hex(1)HexNAc(1)Kdn(1)Sulf(1) (S)">Hex(1)HexNAc(1)Kdn(1)Sulf(1) (S)</option>
+      <option value="Hex(1)HexNAc(1)Kdn(1)Sulf(1) (T)">Hex(1)HexNAc(1)Kdn(1)Sulf(1) (T)</option>
+      <option value="Hex(1)HexNAc(1)NeuAc(1) (N)">Hex(1)HexNAc(1)NeuAc(1) (N)</option>
+      <option value="Hex(1)HexNAc(1)NeuAc(1) (S)">Hex(1)HexNAc(1)NeuAc(1) (S)</option>
+      <option value="Hex(1)HexNAc(1)NeuAc(1) (T)">Hex(1)HexNAc(1)NeuAc(1) (T)</option>
+      <option value="Hex(1)HexNAc(1)NeuAc(1)Ac(1) (S)">Hex(1)HexNAc(1)NeuAc(1)Ac(1) (S)</option>
+      <option value="Hex(1)HexNAc(1)NeuAc(1)Ac(1) (T)">Hex(1)HexNAc(1)NeuAc(1)Ac(1) (T)</option>
+      <option value="Hex(1)HexNAc(1)NeuAc(1)NeuGc(1) (S)">Hex(1)HexNAc(1)NeuAc(1)NeuGc(1) (S)</option>
+      <option value="Hex(1)HexNAc(1)NeuAc(1)NeuGc(1) (T)">Hex(1)HexNAc(1)NeuAc(1)NeuGc(1) (T)</option>
+      <option value="Hex(1)HexNAc(1)NeuAc(1)Sulf(1) (S)">Hex(1)HexNAc(1)NeuAc(1)Sulf(1) (S)</option>
+      <option value="Hex(1)HexNAc(1)NeuAc(1)Sulf(1) (T)">Hex(1)HexNAc(1)NeuAc(1)Sulf(1) (T)</option>
+      <option value="Hex(1)HexNAc(1)NeuAc(2) (N)">Hex(1)HexNAc(1)NeuAc(2) (N)</option>
+      <option value="Hex(1)HexNAc(1)NeuAc(2) (S)">Hex(1)HexNAc(1)NeuAc(2) (S)</option>
+      <option value="Hex(1)HexNAc(1)NeuAc(2) (T)">Hex(1)HexNAc(1)NeuAc(2) (T)</option>
+      <option value="Hex(1)HexNAc(1)NeuAc(2)Ac(1) (S)">Hex(1)HexNAc(1)NeuAc(2)Ac(1) (S)</option>
+      <option value="Hex(1)HexNAc(1)NeuAc(2)Ac(1) (T)">Hex(1)HexNAc(1)NeuAc(2)Ac(1) (T)</option>
+      <option value="Hex(1)HexNAc(1)NeuAc(2)Ac(2) (S)">Hex(1)HexNAc(1)NeuAc(2)Ac(2) (S)</option>
+      <option value="Hex(1)HexNAc(1)NeuAc(2)Ac(2) (T)">Hex(1)HexNAc(1)NeuAc(2)Ac(2) (T)</option>
+      <option value="Hex(1)HexNAc(1)NeuAc(3) (S)">Hex(1)HexNAc(1)NeuAc(3) (S)</option>
+      <option value="Hex(1)HexNAc(1)NeuAc(3) (T)">Hex(1)HexNAc(1)NeuAc(3) (T)</option>
+      <option value="Hex(1)HexNAc(1)NeuGc(1) (S)">Hex(1)HexNAc(1)NeuGc(1) (S)</option>
+      <option value="Hex(1)HexNAc(1)NeuGc(1) (T)">Hex(1)HexNAc(1)NeuGc(1) (T)</option>
+      <option value="Hex(1)HexNAc(1)NeuGc(2) (S)">Hex(1)HexNAc(1)NeuGc(2) (S)</option>
+      <option value="Hex(1)HexNAc(1)NeuGc(2) (T)">Hex(1)HexNAc(1)NeuGc(2) (T)</option>
+      <option value="Hex(1)HexNAc(1)NeuGc(3) (S)">Hex(1)HexNAc(1)NeuGc(3) (S)</option>
+      <option value="Hex(1)HexNAc(1)NeuGc(3) (T)">Hex(1)HexNAc(1)NeuGc(3) (T)</option>
+      <option value="Hex(1)HexNAc(1)NeuGc(4) (S)">Hex(1)HexNAc(1)NeuGc(4) (S)</option>
+      <option value="Hex(1)HexNAc(1)NeuGc(4) (T)">Hex(1)HexNAc(1)NeuGc(4) (T)</option>
+      <option value="Hex(1)HexNAc(1)NeuGc(5) (S)">Hex(1)HexNAc(1)NeuGc(5) (S)</option>
+      <option value="Hex(1)HexNAc(1)NeuGc(5) (T)">Hex(1)HexNAc(1)NeuGc(5) (T)</option>
+      <option value="Hex(1)HexNAc(1)Phos(1) (S)">Hex(1)HexNAc(1)Phos(1) (S)</option>
+      <option value="Hex(1)HexNAc(1)Phos(1) (T)">Hex(1)HexNAc(1)Phos(1) (T)</option>
+      <option value="Hex(1)HexNAc(1)Sulf(1) (S)">Hex(1)HexNAc(1)Sulf(1) (S)</option>
+      <option value="Hex(1)HexNAc(1)Sulf(1) (T)">Hex(1)HexNAc(1)Sulf(1) (T)</option>
+      <option value="Hex(1)HexNAc(2) (N)">Hex(1)HexNAc(2) (N)</option>
+      <option value="Hex(1)HexNAc(2) (S)">Hex(1)HexNAc(2) (S)</option>
+      <option value="Hex(1)HexNAc(2) (T)">Hex(1)HexNAc(2) (T)</option>
+      <option value="Hex(1)HexNAc(2)dHex(1) (N)">Hex(1)HexNAc(2)dHex(1) (N)</option>
+      <option value="Hex(1)HexNAc(2)dHex(1) (S)">Hex(1)HexNAc(2)dHex(1) (S)</option>
+      <option value="Hex(1)HexNAc(2)dHex(1) (T)">Hex(1)HexNAc(2)dHex(1) (T)</option>
+      <option value="Hex(1)HexNAc(2)dHex(1)Pent(1) (N)">Hex(1)HexNAc(2)dHex(1)Pent(1) (N)</option>
+      <option value="Hex(1)HexNAc(2)dHex(2) (N)">Hex(1)HexNAc(2)dHex(2) (N)</option>
+      <option value="Hex(1)HexNAc(2)dHex(2) (S)">Hex(1)HexNAc(2)dHex(2) (S)</option>
+      <option value="Hex(1)HexNAc(2)dHex(2) (T)">Hex(1)HexNAc(2)dHex(2) (T)</option>
+      <option value="Hex(1)HexNAc(2)dHex(2)Sulf(1) (S)">Hex(1)HexNAc(2)dHex(2)Sulf(1) (S)</option>
+      <option value="Hex(1)HexNAc(2)dHex(2)Sulf(1) (T)">Hex(1)HexNAc(2)dHex(2)Sulf(1) (T)</option>
+      <option value="Hex(1)HexNAc(2)NeuAc(1) (S)">Hex(1)HexNAc(2)NeuAc(1) (S)</option>
+      <option value="Hex(1)HexNAc(2)NeuAc(1) (T)">Hex(1)HexNAc(2)NeuAc(1) (T)</option>
+      <option value="Hex(1)HexNAc(2)NeuAc(1)Sulf(1) (S)">Hex(1)HexNAc(2)NeuAc(1)Sulf(1) (S)</option>
+      <option value="Hex(1)HexNAc(2)NeuAc(1)Sulf(1) (T)">Hex(1)HexNAc(2)NeuAc(1)Sulf(1) (T)</option>
+      <option value="Hex(1)HexNAc(2)NeuAc(2) (S)">Hex(1)HexNAc(2)NeuAc(2) (S)</option>
+      <option value="Hex(1)HexNAc(2)NeuAc(2) (T)">Hex(1)HexNAc(2)NeuAc(2) (T)</option>
+      <option value="Hex(1)HexNAc(2)NeuAc(2)Sulf(1) (S)">Hex(1)HexNAc(2)NeuAc(2)Sulf(1) (S)</option>
+      <option value="Hex(1)HexNAc(2)NeuAc(2)Sulf(1) (T)">Hex(1)HexNAc(2)NeuAc(2)Sulf(1) (T)</option>
+      <option value="Hex(1)HexNAc(2)NeuGc(1) (S)">Hex(1)HexNAc(2)NeuGc(1) (S)</option>
+      <option value="Hex(1)HexNAc(2)NeuGc(1) (T)">Hex(1)HexNAc(2)NeuGc(1) (T)</option>
+      <option value="Hex(1)HexNAc(2)Pent(1) (N)">Hex(1)HexNAc(2)Pent(1) (N)</option>
+      <option value="Hex(1)HexNAc(2)Sulf(1) (S)">Hex(1)HexNAc(2)Sulf(1) (S)</option>
+      <option value="Hex(1)HexNAc(2)Sulf(1) (T)">Hex(1)HexNAc(2)Sulf(1) (T)</option>
+      <option value="Hex(1)HexNAc(3) (S)">Hex(1)HexNAc(3) (S)</option>
+      <option value="Hex(1)HexNAc(3) (T)">Hex(1)HexNAc(3) (T)</option>
+      <option value="Hex(1)HexNAc(3)NeuAc(1) (S)">Hex(1)HexNAc(3)NeuAc(1) (S)</option>
+      <option value="Hex(1)HexNAc(3)NeuAc(1) (T)">Hex(1)HexNAc(3)NeuAc(1) (T)</option>
+      <option value="Hex(1)HexNAc(3)NeuAc(2) (S)">Hex(1)HexNAc(3)NeuAc(2) (S)</option>
+      <option value="Hex(1)HexNAc(3)NeuAc(2) (T)">Hex(1)HexNAc(3)NeuAc(2) (T)</option>
+      <option value="Hex(1)HexNAc(3)NeuGc(1) (S)">Hex(1)HexNAc(3)NeuGc(1) (S)</option>
+      <option value="Hex(1)HexNAc(3)NeuGc(1) (T)">Hex(1)HexNAc(3)NeuGc(1) (T)</option>
+      <option value="Hex(1)HexNAc(3)Sulf(1) (S)">Hex(1)HexNAc(3)Sulf(1) (S)</option>
+      <option value="Hex(1)HexNAc(3)Sulf(1) (T)">Hex(1)HexNAc(3)Sulf(1) (T)</option>
+      <option value="Hex(1)HexNAc(4)dHex(1)Sulf(1) (S)">Hex(1)HexNAc(4)dHex(1)Sulf(1) (S)</option>
+      <option value="Hex(1)HexNAc(4)dHex(1)Sulf(1) (T)">Hex(1)HexNAc(4)dHex(1)Sulf(1) (T)</option>
+      <option value="Hex(1)NeuAc(1) (S)">Hex(1)NeuAc(1) (S)</option>
+      <option value="Hex(1)NeuAc(1) (T)">Hex(1)NeuAc(1) (T)</option>
+      <option value="Hex(1)NeuAc(1)Pent(1) (S)">Hex(1)NeuAc(1)Pent(1) (S)</option>
+      <option value="Hex(1)NeuAc(1)Pent(1) (T)">Hex(1)NeuAc(1)Pent(1) (T)</option>
+      <option value="Hex(1)NeuGc(1) (S)">Hex(1)NeuGc(1) (S)</option>
+      <option value="Hex(1)NeuGc(1) (T)">Hex(1)NeuGc(1) (T)</option>
+      <option value="Hex(1)Pent(1) (S)">Hex(1)Pent(1) (S)</option>
+      <option value="Hex(1)Pent(1) (T)">Hex(1)Pent(1) (T)</option>
+      <option value="Hex(1)Pent(2) (S)">Hex(1)Pent(2) (S)</option>
+      <option value="Hex(1)Pent(2) (T)">Hex(1)Pent(2) (T)</option>
+      <option value="Hex(1)Pent(2)Me(1) (S)">Hex(1)Pent(2)Me(1) (S)</option>
+      <option value="Hex(1)Pent(2)Me(1) (T)">Hex(1)Pent(2)Me(1) (T)</option>
+      <option value="Hex(1)Pent(3) (S)">Hex(1)Pent(3) (S)</option>
+      <option value="Hex(1)Pent(3) (T)">Hex(1)Pent(3) (T)</option>
+      <option value="Hex(1)Pent(3)Me(1) (S)">Hex(1)Pent(3)Me(1) (S)</option>
+      <option value="Hex(1)Pent(3)Me(1) (T)">Hex(1)Pent(3)Me(1) (T)</option>
+      <option value="Hex(10)HexNAc(1) (N)">Hex(10)HexNAc(1) (N)</option>
+      <option value="Hex(10)Phos(3) (S)">Hex(10)Phos(3) (S)</option>
+      <option value="Hex(10)Phos(3) (T)">Hex(10)Phos(3) (T)</option>
+      <option value="Hex(2) (K)">Hex(2) (K)</option>
+      <option value="Hex(2) (R)">Hex(2) (R)</option>
+      <option value="Hex(2) (S)">Hex(2) (S)</option>
+      <option value="Hex(2) (T)">Hex(2) (T)</option>
+      <option value="Hex(2)HexA(1)HexNAc(1)Sulf(1) (S)">Hex(2)HexA(1)HexNAc(1)Sulf(1) (S)</option>
+      <option value="Hex(2)HexA(1)HexNAc(1)Sulf(1) (T)">Hex(2)HexA(1)HexNAc(1)Sulf(1) (T)</option>
+      <option value="Hex(2)HexA(1)NeuAc(1)Pent(1)Sulf(1) (S)">Hex(2)HexA(1)NeuAc(1)Pent(1)Sulf(1) (S)</option>
+      <option value="Hex(2)HexA(1)NeuAc(1)Pent(1)Sulf(1) (T)">Hex(2)HexA(1)NeuAc(1)Pent(1)Sulf(1) (T)</option>
+      <option value="Hex(2)HexA(1)Pent(1)Sulf(1) (S)">Hex(2)HexA(1)Pent(1)Sulf(1) (S)</option>
+      <option value="Hex(2)HexA(1)Pent(1)Sulf(1) (T)">Hex(2)HexA(1)Pent(1)Sulf(1) (T)</option>
+      <option value="Hex(2)HexNAc(1) (N)">Hex(2)HexNAc(1) (N)</option>
+      <option value="Hex(2)HexNAc(1) (S)">Hex(2)HexNAc(1) (S)</option>
+      <option value="Hex(2)HexNAc(1) (T)">Hex(2)HexNAc(1) (T)</option>
+      <option value="Hex(2)HexNAc(1)Me(1) (S)">Hex(2)HexNAc(1)Me(1) (S)</option>
+      <option value="Hex(2)HexNAc(1)Me(1) (T)">Hex(2)HexNAc(1)Me(1) (T)</option>
+      <option value="Hex(2)HexNAc(1)NeuGc(1) (S)">Hex(2)HexNAc(1)NeuGc(1) (S)</option>
+      <option value="Hex(2)HexNAc(1)NeuGc(1) (T)">Hex(2)HexNAc(1)NeuGc(1) (T)</option>
+      <option value="Hex(2)HexNAc(1)NeuGc(2) (S)">Hex(2)HexNAc(1)NeuGc(2) (S)</option>
+      <option value="Hex(2)HexNAc(1)NeuGc(2) (T)">Hex(2)HexNAc(1)NeuGc(2) (T)</option>
+      <option value="Hex(2)HexNAc(1)NeuGc(3) (S)">Hex(2)HexNAc(1)NeuGc(3) (S)</option>
+      <option value="Hex(2)HexNAc(1)NeuGc(3) (T)">Hex(2)HexNAc(1)NeuGc(3) (T)</option>
+      <option value="Hex(2)HexNAc(1)NeuGc(4) (S)">Hex(2)HexNAc(1)NeuGc(4) (S)</option>
+      <option value="Hex(2)HexNAc(1)NeuGc(4) (T)">Hex(2)HexNAc(1)NeuGc(4) (T)</option>
+      <option value="Hex(2)HexNAc(1)Pent(1)HexA(1) (S)">Hex(2)HexNAc(1)Pent(1)HexA(1) (S)</option>
+      <option value="Hex(2)HexNAc(1)Pent(1)HexA(1) (T)">Hex(2)HexNAc(1)Pent(1)HexA(1) (T)</option>
+      <option value="Hex(2)HexNAc(1)Sulf(1) (S)">Hex(2)HexNAc(1)Sulf(1) (S)</option>
+      <option value="Hex(2)HexNAc(1)Sulf(1) (T)">Hex(2)HexNAc(1)Sulf(1) (T)</option>
+      <option value="Hex(2)HexNAc(2) (N)">Hex(2)HexNAc(2) (N)</option>
+      <option value="Hex(2)HexNAc(2) (S)">Hex(2)HexNAc(2) (S)</option>
+      <option value="Hex(2)HexNAc(2) (T)">Hex(2)HexNAc(2) (T)</option>
+      <option value="Hex(2)HexNAc(2)dHex(1) (N)">Hex(2)HexNAc(2)dHex(1) (N)</option>
+      <option value="Hex(2)HexNAc(2)dHex(1) (S)">Hex(2)HexNAc(2)dHex(1) (S)</option>
+      <option value="Hex(2)HexNAc(2)dHex(1) (T)">Hex(2)HexNAc(2)dHex(1) (T)</option>
+      <option value="Hex(2)HexNAc(2)NeuAc(1) (N)">Hex(2)HexNAc(2)NeuAc(1) (N)</option>
+      <option value="Hex(2)HexNAc(2)NeuAc(1) (S)">Hex(2)HexNAc(2)NeuAc(1) (S)</option>
+      <option value="Hex(2)HexNAc(2)NeuAc(1) (T)">Hex(2)HexNAc(2)NeuAc(1) (T)</option>
+      <option value="Hex(2)HexNAc(2)NeuAc(1)Sulf(1) (S)">Hex(2)HexNAc(2)NeuAc(1)Sulf(1) (S)</option>
+      <option value="Hex(2)HexNAc(2)NeuAc(1)Sulf(1) (T)">Hex(2)HexNAc(2)NeuAc(1)Sulf(1) (T)</option>
+      <option value="Hex(2)HexNAc(2)NeuAc(2) (S)">Hex(2)HexNAc(2)NeuAc(2) (S)</option>
+      <option value="Hex(2)HexNAc(2)NeuAc(2) (T)">Hex(2)HexNAc(2)NeuAc(2) (T)</option>
+      <option value="Hex(2)HexNAc(2)NeuAc(2)Sulf(1) (S)">Hex(2)HexNAc(2)NeuAc(2)Sulf(1) (S)</option>
+      <option value="Hex(2)HexNAc(2)NeuAc(2)Sulf(1) (T)">Hex(2)HexNAc(2)NeuAc(2)Sulf(1) (T)</option>
+      <option value="Hex(2)HexNAc(2)NeuGc(1) (S)">Hex(2)HexNAc(2)NeuGc(1) (S)</option>
+      <option value="Hex(2)HexNAc(2)NeuGc(1) (T)">Hex(2)HexNAc(2)NeuGc(1) (T)</option>
+      <option value="Hex(2)HexNAc(2)Pent(1) (N)">Hex(2)HexNAc(2)Pent(1) (N)</option>
+      <option value="Hex(2)HexNAc(2)Sulf(1) (S)">Hex(2)HexNAc(2)Sulf(1) (S)</option>
+      <option value="Hex(2)HexNAc(2)Sulf(1) (T)">Hex(2)HexNAc(2)Sulf(1) (T)</option>
+      <option value="Hex(2)HexNAc(3) (N)">Hex(2)HexNAc(3) (N)</option>
+      <option value="Hex(2)HexNAc(3) (S)">Hex(2)HexNAc(3) (S)</option>
+      <option value="Hex(2)HexNAc(3) (T)">Hex(2)HexNAc(3) (T)</option>
+      <option value="Hex(2)HexNAc(3)NeuAc(1)NeuGc(1) (S)">Hex(2)HexNAc(3)NeuAc(1)NeuGc(1) (S)</option>
+      <option value="Hex(2)HexNAc(3)NeuAc(1)NeuGc(1) (T)">Hex(2)HexNAc(3)NeuAc(1)NeuGc(1) (T)</option>
+      <option value="Hex(2)HexNAc(3)NeuAc(1)Sulf(1) (S)">Hex(2)HexNAc(3)NeuAc(1)Sulf(1) (S)</option>
+      <option value="Hex(2)HexNAc(3)NeuAc(1)Sulf(1) (T)">Hex(2)HexNAc(3)NeuAc(1)Sulf(1) (T)</option>
+      <option value="Hex(2)HexNAc(3)NeuAc(2) (S)">Hex(2)HexNAc(3)NeuAc(2) (S)</option>
+      <option value="Hex(2)HexNAc(3)NeuAc(2) (T)">Hex(2)HexNAc(3)NeuAc(2) (T)</option>
+      <option value="Hex(2)HexNAc(3)NeuAc(3) (S)">Hex(2)HexNAc(3)NeuAc(3) (S)</option>
+      <option value="Hex(2)HexNAc(3)NeuAc(3) (T)">Hex(2)HexNAc(3)NeuAc(3) (T)</option>
+      <option value="Hex(2)HexNAc(3)NeuGc(1) (S)">Hex(2)HexNAc(3)NeuGc(1) (S)</option>
+      <option value="Hex(2)HexNAc(3)NeuGc(1) (T)">Hex(2)HexNAc(3)NeuGc(1) (T)</option>
+      <option value="Hex(2)HexNAc(3)NeuGc(2) (S)">Hex(2)HexNAc(3)NeuGc(2) (S)</option>
+      <option value="Hex(2)HexNAc(3)NeuGc(2) (T)">Hex(2)HexNAc(3)NeuGc(2) (T)</option>
+      <option value="Hex(2)HexNAc(3)NeuGc(3) (S)">Hex(2)HexNAc(3)NeuGc(3) (S)</option>
+      <option value="Hex(2)HexNAc(3)NeuGc(3) (T)">Hex(2)HexNAc(3)NeuGc(3) (T)</option>
+      <option value="Hex(2)HexNAc(3)Sulf(1) (S)">Hex(2)HexNAc(3)Sulf(1) (S)</option>
+      <option value="Hex(2)HexNAc(3)Sulf(1) (T)">Hex(2)HexNAc(3)Sulf(1) (T)</option>
+      <option value="Hex(2)HexNAc(4) (N)">Hex(2)HexNAc(4) (N)</option>
+      <option value="Hex(2)HexNAc(4) (S)">Hex(2)HexNAc(4) (S)</option>
+      <option value="Hex(2)HexNAc(4) (T)">Hex(2)HexNAc(4) (T)</option>
+      <option value="Hex(2)HexNAc(4)NeuAc(1) (S)">Hex(2)HexNAc(4)NeuAc(1) (S)</option>
+      <option value="Hex(2)HexNAc(4)NeuAc(1) (T)">Hex(2)HexNAc(4)NeuAc(1) (T)</option>
+      <option value="Hex(2)HexNAc(5) (S)">Hex(2)HexNAc(5) (S)</option>
+      <option value="Hex(2)HexNAc(5) (T)">Hex(2)HexNAc(5) (T)</option>
+      <option value="Hex(2)NeuAc(1) (S)">Hex(2)NeuAc(1) (S)</option>
+      <option value="Hex(2)NeuAc(1) (T)">Hex(2)NeuAc(1) (T)</option>
+      <option value="Hex(2)Pent(2) (S)">Hex(2)Pent(2) (S)</option>
+      <option value="Hex(2)Pent(2) (T)">Hex(2)Pent(2) (T)</option>
+      <option value="Hex(2)Pent(2)Me(1) (S)">Hex(2)Pent(2)Me(1) (S)</option>
+      <option value="Hex(2)Pent(2)Me(1) (T)">Hex(2)Pent(2)Me(1) (T)</option>
+      <option value="Hex(2)Sulf(1) (S)">Hex(2)Sulf(1) (S)</option>
+      <option value="Hex(2)Sulf(1) (T)">Hex(2)Sulf(1) (T)</option>
+      <option value="Hex(3) (N)">Hex(3) (N)</option>
+      <option value="Hex(3) (S)">Hex(3) (S)</option>
+      <option value="Hex(3) (T)">Hex(3) (T)</option>
+      <option value="Hex(3)HexNAc(1) (N)">Hex(3)HexNAc(1) (N)</option>
+      <option value="Hex(3)HexNAc(1) (S)">Hex(3)HexNAc(1) (S)</option>
+      <option value="Hex(3)HexNAc(1) (T)">Hex(3)HexNAc(1) (T)</option>
+      <option value="Hex(3)HexNAc(1)HexA(1) (S)">Hex(3)HexNAc(1)HexA(1) (S)</option>
+      <option value="Hex(3)HexNAc(1)HexA(1) (T)">Hex(3)HexNAc(1)HexA(1) (T)</option>
+      <option value="Hex(3)HexNAc(1)Me(1) (S)">Hex(3)HexNAc(1)Me(1) (S)</option>
+      <option value="Hex(3)HexNAc(1)Me(1) (T)">Hex(3)HexNAc(1)Me(1) (T)</option>
+      <option value="Hex(3)HexNAc(1)Pent(1) (N)">Hex(3)HexNAc(1)Pent(1) (N)</option>
+      <option value="Hex(3)HexNAc(2) (N)">Hex(3)HexNAc(2) (N)</option>
+      <option value="Hex(3)HexNAc(2) (S)">Hex(3)HexNAc(2) (S)</option>
+      <option value="Hex(3)HexNAc(2) (T)">Hex(3)HexNAc(2) (T)</option>
+      <option value="Hex(3)HexNAc(2)NeuAc(1) (N)">Hex(3)HexNAc(2)NeuAc(1) (N)</option>
+      <option value="Hex(3)HexNAc(2)NeuAc(2) (S)">Hex(3)HexNAc(2)NeuAc(2) (S)</option>
+      <option value="Hex(3)HexNAc(2)NeuAc(2) (T)">Hex(3)HexNAc(2)NeuAc(2) (T)</option>
+      <option value="Hex(3)HexNAc(2)Pent(1) (N)">Hex(3)HexNAc(2)Pent(1) (N)</option>
+      <option value="Hex(3)HexNAc(2)Phos(1) (N)">Hex(3)HexNAc(2)Phos(1) (N)</option>
+      <option value="Hex(3)HexNAc(3) (N)">Hex(3)HexNAc(3) (N)</option>
+      <option value="Hex(3)HexNAc(3) (S)">Hex(3)HexNAc(3) (S)</option>
+      <option value="Hex(3)HexNAc(3) (T)">Hex(3)HexNAc(3) (T)</option>
+      <option value="Hex(3)HexNAc(3)NeuAc(1) (S)">Hex(3)HexNAc(3)NeuAc(1) (S)</option>
+      <option value="Hex(3)HexNAc(3)NeuAc(1) (T)">Hex(3)HexNAc(3)NeuAc(1) (T)</option>
+      <option value="Hex(3)HexNAc(3)NeuAc(1)Sulf(1) (S)">Hex(3)HexNAc(3)NeuAc(1)Sulf(1) (S)</option>
+      <option value="Hex(3)HexNAc(3)NeuAc(1)Sulf(1) (T)">Hex(3)HexNAc(3)NeuAc(1)Sulf(1) (T)</option>
+      <option value="Hex(3)HexNAc(3)NeuAc(2) (S)">Hex(3)HexNAc(3)NeuAc(2) (S)</option>
+      <option value="Hex(3)HexNAc(3)NeuAc(2) (T)">Hex(3)HexNAc(3)NeuAc(2) (T)</option>
+      <option value="Hex(3)HexNAc(3)NeuAc(2)Sulf(1) (S)">Hex(3)HexNAc(3)NeuAc(2)Sulf(1) (S)</option>
+      <option value="Hex(3)HexNAc(3)NeuAc(2)Sulf(1) (T)">Hex(3)HexNAc(3)NeuAc(2)Sulf(1) (T)</option>
+      <option value="Hex(3)HexNAc(3)NeuAc(3) (S)">Hex(3)HexNAc(3)NeuAc(3) (S)</option>
+      <option value="Hex(3)HexNAc(3)NeuAc(3) (T)">Hex(3)HexNAc(3)NeuAc(3) (T)</option>
+      <option value="Hex(3)HexNAc(3)NeuGc(1) (S)">Hex(3)HexNAc(3)NeuGc(1) (S)</option>
+      <option value="Hex(3)HexNAc(3)NeuGc(1) (T)">Hex(3)HexNAc(3)NeuGc(1) (T)</option>
+      <option value="Hex(3)HexNAc(3)NeuGc(1)Sulf(1) (S)">Hex(3)HexNAc(3)NeuGc(1)Sulf(1) (S)</option>
+      <option value="Hex(3)HexNAc(3)NeuGc(1)Sulf(1) (T)">Hex(3)HexNAc(3)NeuGc(1)Sulf(1) (T)</option>
+      <option value="Hex(3)HexNAc(3)Pent(1) (N)">Hex(3)HexNAc(3)Pent(1) (N)</option>
+      <option value="Hex(3)HexNAc(3)Sulf(1) (N)">Hex(3)HexNAc(3)Sulf(1) (N)</option>
+      <option value="Hex(3)HexNAc(3)Sulf(1) (S)">Hex(3)HexNAc(3)Sulf(1) (S)</option>
+      <option value="Hex(3)HexNAc(3)Sulf(1) (T)">Hex(3)HexNAc(3)Sulf(1) (T)</option>
+      <option value="Hex(3)HexNAc(4) (N)">Hex(3)HexNAc(4) (N)</option>
+      <option value="Hex(3)HexNAc(4) (S)">Hex(3)HexNAc(4) (S)</option>
+      <option value="Hex(3)HexNAc(4) (T)">Hex(3)HexNAc(4) (T)</option>
+      <option value="Hex(3)HexNAc(4)NeuAc(1) (N)">Hex(3)HexNAc(4)NeuAc(1) (N)</option>
+      <option value="Hex(3)HexNAc(4)NeuAc(2) (N)">Hex(3)HexNAc(4)NeuAc(2) (N)</option>
+      <option value="Hex(3)HexNAc(4)Pent(1) (N)">Hex(3)HexNAc(4)Pent(1) (N)</option>
+      <option value="Hex(3)HexNAc(4)Sulf(1) (N)">Hex(3)HexNAc(4)Sulf(1) (N)</option>
+      <option value="Hex(3)HexNAc(5) (N)">Hex(3)HexNAc(5) (N)</option>
+      <option value="Hex(3)HexNAc(5) (S)">Hex(3)HexNAc(5) (S)</option>
+      <option value="Hex(3)HexNAc(5) (T)">Hex(3)HexNAc(5) (T)</option>
+      <option value="Hex(3)HexNAc(5)NeuAc(1) (N)">Hex(3)HexNAc(5)NeuAc(1) (N)</option>
+      <option value="Hex(3)HexNAc(5)Sulf(1) (N)">Hex(3)HexNAc(5)Sulf(1) (N)</option>
+      <option value="Hex(3)HexNAc(6) (N)">Hex(3)HexNAc(6) (N)</option>
+      <option value="Hex(3)HexNAc(6) (S)">Hex(3)HexNAc(6) (S)</option>
+      <option value="Hex(3)HexNAc(6) (T)">Hex(3)HexNAc(6) (T)</option>
+      <option value="Hex(3)HexNAc(6)NeuAc(1) (N)">Hex(3)HexNAc(6)NeuAc(1) (N)</option>
+      <option value="Hex(3)HexNAc(6)Sulf(1) (N)">Hex(3)HexNAc(6)Sulf(1) (N)</option>
+      <option value="Hex(3)HexNAc(6)Sulf(2) (N)">Hex(3)HexNAc(6)Sulf(2) (N)</option>
+      <option value="Hex(3)HexNAc(7) (N)">Hex(3)HexNAc(7) (N)</option>
+      <option value="Hex(3)HexNAc(7)Sulf(1) (N)">Hex(3)HexNAc(7)Sulf(1) (N)</option>
+      <option value="Hex(4) (S)">Hex(4) (S)</option>
+      <option value="Hex(4) (T)">Hex(4) (T)</option>
+      <option value="Hex(4)HexA(1) (S)">Hex(4)HexA(1) (S)</option>
+      <option value="Hex(4)HexA(1) (T)">Hex(4)HexA(1) (T)</option>
+      <option value="Hex(4)HexA(1)HexNAc(1) (S)">Hex(4)HexA(1)HexNAc(1) (S)</option>
+      <option value="Hex(4)HexA(1)HexNAc(1) (T)">Hex(4)HexA(1)HexNAc(1) (T)</option>
+      <option value="Hex(4)HexNAc(1) (N)">Hex(4)HexNAc(1) (N)</option>
+      <option value="Hex(4)HexNAc(1) (S)">Hex(4)HexNAc(1) (S)</option>
+      <option value="Hex(4)HexNAc(1) (T)">Hex(4)HexNAc(1) (T)</option>
+      <option value="Hex(4)HexNAc(2) (N)">Hex(4)HexNAc(2) (N)</option>
+      <option value="Hex(4)HexNAc(2)NeuAc(1) (N)">Hex(4)HexNAc(2)NeuAc(1) (N)</option>
+      <option value="Hex(4)HexNAc(2)NeuAc(1) (S)">Hex(4)HexNAc(2)NeuAc(1) (S)</option>
+      <option value="Hex(4)HexNAc(2)NeuAc(1) (T)">Hex(4)HexNAc(2)NeuAc(1) (T)</option>
+      <option value="Hex(4)HexNAc(2)Pent(1) (N)">Hex(4)HexNAc(2)Pent(1) (N)</option>
+      <option value="Hex(4)HexNAc(3) (N)">Hex(4)HexNAc(3) (N)</option>
+      <option value="Hex(4)HexNAc(3) (S)">Hex(4)HexNAc(3) (S)</option>
+      <option value="Hex(4)HexNAc(3) (T)">Hex(4)HexNAc(3) (T)</option>
+      <option value="Hex(4)HexNAc(3)NeuAc(1) (N)">Hex(4)HexNAc(3)NeuAc(1) (N)</option>
+      <option value="Hex(4)HexNAc(3)NeuAc(1) (S)">Hex(4)HexNAc(3)NeuAc(1) (S)</option>
+      <option value="Hex(4)HexNAc(3)NeuAc(1) (T)">Hex(4)HexNAc(3)NeuAc(1) (T)</option>
+      <option value="Hex(4)HexNAc(3)NeuAc(2) (N)">Hex(4)HexNAc(3)NeuAc(2) (N)</option>
+      <option value="Hex(4)HexNAc(3)NeuGc(1) (N)">Hex(4)HexNAc(3)NeuGc(1) (N)</option>
+      <option value="Hex(4)HexNAc(3)Pent(1) (N)">Hex(4)HexNAc(3)Pent(1) (N)</option>
+      <option value="Hex(4)HexNAc(4) (N)">Hex(4)HexNAc(4) (N)</option>
+      <option value="Hex(4)HexNAc(4) (S)">Hex(4)HexNAc(4) (S)</option>
+      <option value="Hex(4)HexNAc(4) (T)">Hex(4)HexNAc(4) (T)</option>
+      <option value="Hex(4)HexNAc(4)Me(2)Pent(1) (N)">Hex(4)HexNAc(4)Me(2)Pent(1) (N)</option>
+      <option value="Hex(4)HexNAc(4)NeuAc(1) (N)">Hex(4)HexNAc(4)NeuAc(1) (N)</option>
+      <option value="Hex(4)HexNAc(4)NeuAc(1) (S)">Hex(4)HexNAc(4)NeuAc(1) (S)</option>
+      <option value="Hex(4)HexNAc(4)NeuAc(1) (T)">Hex(4)HexNAc(4)NeuAc(1) (T)</option>
+      <option value="Hex(4)HexNAc(4)NeuAc(1)Sulf(2) (S)">Hex(4)HexNAc(4)NeuAc(1)Sulf(2) (S)</option>
+      <option value="Hex(4)HexNAc(4)NeuAc(1)Sulf(2) (T)">Hex(4)HexNAc(4)NeuAc(1)Sulf(2) (T)</option>
+      <option value="Hex(4)HexNAc(4)NeuAc(1)Sulf(3) (S)">Hex(4)HexNAc(4)NeuAc(1)Sulf(3) (S)</option>
+      <option value="Hex(4)HexNAc(4)NeuAc(1)Sulf(3) (T)">Hex(4)HexNAc(4)NeuAc(1)Sulf(3) (T)</option>
+      <option value="Hex(4)HexNAc(4)NeuGc(1) (N)">Hex(4)HexNAc(4)NeuGc(1) (N)</option>
+      <option value="Hex(4)HexNAc(4)NeuGc(1) (S)">Hex(4)HexNAc(4)NeuGc(1) (S)</option>
+      <option value="Hex(4)HexNAc(4)NeuGc(1) (T)">Hex(4)HexNAc(4)NeuGc(1) (T)</option>
+      <option value="Hex(4)HexNAc(4)NeuGc(1)Sulf(2) (S)">Hex(4)HexNAc(4)NeuGc(1)Sulf(2) (S)</option>
+      <option value="Hex(4)HexNAc(4)NeuGc(1)Sulf(2) (T)">Hex(4)HexNAc(4)NeuGc(1)Sulf(2) (T)</option>
+      <option value="Hex(4)HexNAc(4)Pent(1) (N)">Hex(4)HexNAc(4)Pent(1) (N)</option>
+      <option value="Hex(4)HexNAc(4)Sulf(1) (N)">Hex(4)HexNAc(4)Sulf(1) (N)</option>
+      <option value="Hex(4)HexNAc(4)Sulf(2) (S)">Hex(4)HexNAc(4)Sulf(2) (S)</option>
+      <option value="Hex(4)HexNAc(4)Sulf(2) (T)">Hex(4)HexNAc(4)Sulf(2) (T)</option>
+      <option value="Hex(4)HexNAc(5) (N)">Hex(4)HexNAc(5) (N)</option>
+      <option value="Hex(4)HexNAc(5)NeuAc(1) (N)">Hex(4)HexNAc(5)NeuAc(1) (N)</option>
+      <option value="Hex(4)HexNAc(5)Sulf(1) (N)">Hex(4)HexNAc(5)Sulf(1) (N)</option>
+      <option value="Hex(4)HexNAc(6) (N)">Hex(4)HexNAc(6) (N)</option>
+      <option value="Hex(4)Phos(1) (S)">Hex(4)Phos(1) (S)</option>
+      <option value="Hex(4)Phos(1) (T)">Hex(4)Phos(1) (T)</option>
+      <option value="Hex(5) (S)">Hex(5) (S)</option>
+      <option value="Hex(5) (T)">Hex(5) (T)</option>
+      <option value="Hex(5)HexA(1) (S)">Hex(5)HexA(1) (S)</option>
+      <option value="Hex(5)HexA(1) (T)">Hex(5)HexA(1) (T)</option>
+      <option value="Hex(5)HexNAc(1) (N)">Hex(5)HexNAc(1) (N)</option>
+      <option value="Hex(5)HexNAc(1) (S)">Hex(5)HexNAc(1) (S)</option>
+      <option value="Hex(5)HexNAc(1) (T)">Hex(5)HexNAc(1) (T)</option>
+      <option value="Hex(5)HexNAc(2) (N)">Hex(5)HexNAc(2) (N)</option>
+      <option value="Hex(5)HexNAc(2)Phos(1) (N)">Hex(5)HexNAc(2)Phos(1) (N)</option>
+      <option value="Hex(5)HexNAc(3) (N)">Hex(5)HexNAc(3) (N)</option>
+      <option value="Hex(5)HexNAc(3)Pent(1) (N)">Hex(5)HexNAc(3)Pent(1) (N)</option>
+      <option value="Hex(5)HexNAc(4) (N)">Hex(5)HexNAc(4) (N)</option>
+      <option value="Hex(5)HexNAc(4) (S)">Hex(5)HexNAc(4) (S)</option>
+      <option value="Hex(5)HexNAc(4) (T)">Hex(5)HexNAc(4) (T)</option>
+      <option value="Hex(5)HexNAc(4)Me(2)Pent(1) (N)">Hex(5)HexNAc(4)Me(2)Pent(1) (N)</option>
+      <option value="Hex(5)HexNAc(4)NeuAc(1) (N)">Hex(5)HexNAc(4)NeuAc(1) (N)</option>
+      <option value="Hex(5)HexNAc(4)NeuAc(1)Ac(1) (N)">Hex(5)HexNAc(4)NeuAc(1)Ac(1) (N)</option>
+      <option value="Hex(5)HexNAc(4)NeuAc(1)Ac(2) (N)">Hex(5)HexNAc(4)NeuAc(1)Ac(2) (N)</option>
+      <option value="Hex(5)HexNAc(4)NeuAc(1)Sulf(1) (N)">Hex(5)HexNAc(4)NeuAc(1)Sulf(1) (N)</option>
+      <option value="Hex(5)HexNAc(4)NeuAc(2) (N)">Hex(5)HexNAc(4)NeuAc(2) (N)</option>
+      <option value="Hex(5)HexNAc(4)NeuGc(1) (N)">Hex(5)HexNAc(4)NeuGc(1) (N)</option>
+      <option value="Hex(5)HexNAc(4)Sulf(1) (N)">Hex(5)HexNAc(4)Sulf(1) (N)</option>
+      <option value="Hex(5)HexNAc(5) (N)">Hex(5)HexNAc(5) (N)</option>
+      <option value="Hex(5)HexNAc(5) (S)">Hex(5)HexNAc(5) (S)</option>
+      <option value="Hex(5)HexNAc(5) (T)">Hex(5)HexNAc(5) (T)</option>
+      <option value="Hex(5)Phos(1) (S)">Hex(5)Phos(1) (S)</option>
+      <option value="Hex(5)Phos(1) (T)">Hex(5)Phos(1) (T)</option>
+      <option value="Hex(5)Phos(3) (S)">Hex(5)Phos(3) (S)</option>
+      <option value="Hex(5)Phos(3) (T)">Hex(5)Phos(3) (T)</option>
+      <option value="Hex(6)HexNAc(1) (N)">Hex(6)HexNAc(1) (N)</option>
+      <option value="Hex(6)HexNAc(2) (N)">Hex(6)HexNAc(2) (N)</option>
+      <option value="Hex(6)HexNAc(2)Phos(1) (N)">Hex(6)HexNAc(2)Phos(1) (N)</option>
+      <option value="Hex(6)HexNAc(3) (N)">Hex(6)HexNAc(3) (N)</option>
+      <option value="Hex(6)HexNAc(3)Phos(1) (N)">Hex(6)HexNAc(3)Phos(1) (N)</option>
+      <option value="Hex(6)HexNAc(4) (N)">Hex(6)HexNAc(4) (N)</option>
+      <option value="Hex(6)HexNAc(4) (S)">Hex(6)HexNAc(4) (S)</option>
+      <option value="Hex(6)HexNAc(4) (T)">Hex(6)HexNAc(4) (T)</option>
+      <option value="Hex(6)HexNAc(4)Me(3) (N)">Hex(6)HexNAc(4)Me(3) (N)</option>
+      <option value="Hex(6)HexNAc(4)Me(3)Pent(1) (N)">Hex(6)HexNAc(4)Me(3)Pent(1) (N)</option>
+      <option value="Hex(6)HexNAc(5) (N)">Hex(6)HexNAc(5) (N)</option>
+      <option value="Hex(6)Phos(1) (S)">Hex(6)Phos(1) (S)</option>
+      <option value="Hex(6)Phos(1) (T)">Hex(6)Phos(1) (T)</option>
+      <option value="Hex(6)Phos(3) (S)">Hex(6)Phos(3) (S)</option>
+      <option value="Hex(6)Phos(3) (T)">Hex(6)Phos(3) (T)</option>
+      <option value="Hex(7)HexNAc(1) (N)">Hex(7)HexNAc(1) (N)</option>
+      <option value="Hex(7)HexNAc(2) (N)">Hex(7)HexNAc(2) (N)</option>
+      <option value="Hex(7)HexNAc(2)Phos(1) (N)">Hex(7)HexNAc(2)Phos(1) (N)</option>
+      <option value="Hex(7)HexNAc(2)Phos(2) (N)">Hex(7)HexNAc(2)Phos(2) (N)</option>
+      <option value="Hex(7)HexNAc(3) (N)">Hex(7)HexNAc(3) (N)</option>
+      <option value="Hex(7)HexNAc(3)Phos(1) (N)">Hex(7)HexNAc(3)Phos(1) (N)</option>
+      <option value="Hex(7)HexNAc(4) (N)">Hex(7)HexNAc(4) (N)</option>
+      <option value="Hex(7)Phos(3) (S)">Hex(7)Phos(3) (S)</option>
+      <option value="Hex(7)Phos(3) (T)">Hex(7)Phos(3) (T)</option>
+      <option value="Hex(8)HexNAc(1) (N)">Hex(8)HexNAc(1) (N)</option>
+      <option value="Hex(8)HexNAc(2) (N)">Hex(8)HexNAc(2) (N)</option>
+      <option value="Hex(8)Phos(3) (S)">Hex(8)Phos(3) (S)</option>
+      <option value="Hex(8)Phos(3) (T)">Hex(8)Phos(3) (T)</option>
+      <option value="Hex(9) (N)">Hex(9) (N)</option>
+      <option value="Hex(9)HexNAc(1) (N)">Hex(9)HexNAc(1) (N)</option>
+      <option value="Hex(9)HexNAc(2) (N)">Hex(9)HexNAc(2) (N)</option>
+      <option value="Hex(9)Phos(3) (S)">Hex(9)Phos(3) (S)</option>
+      <option value="Hex(9)Phos(3) (T)">Hex(9)Phos(3) (T)</option>
+      <option value="HexA(2)HexNAc(3) (S)">HexA(2)HexNAc(3) (S)</option>
+      <option value="HexA(2)HexNAc(3) (T)">HexA(2)HexNAc(3) (T)</option>
+      <option value="HexN (K)">HexN (K)</option>
+      <option value="HexN (N)">HexN (N)</option>
+      <option value="HexN (S)">HexN (S)</option>
+      <option value="HexN (T)">HexN (T)</option>
+      <option value="HexN (W)">HexN (W)</option>
+      <option value="HexNAc (C)">HexNAc (C)</option>
+      <option value="HexNAc (N)">HexNAc (N)</option>
+      <option value="HexNAc (S)">HexNAc (S)</option>
+      <option value="HexNAc (T)">HexNAc (T)</option>
+      <option value="HexNAc(1)dHex(1) (N)">HexNAc(1)dHex(1) (N)</option>
+      <option value="HexNAc(1)dHex(1) (S)">HexNAc(1)dHex(1) (S)</option>
+      <option value="HexNAc(1)dHex(1) (T)">HexNAc(1)dHex(1) (T)</option>
+      <option value="HexNAc(1)dHex(2) (N)">HexNAc(1)dHex(2) (N)</option>
+      <option value="HexNAc(1)Kdn(2) (S)">HexNAc(1)Kdn(2) (S)</option>
+      <option value="HexNAc(1)Kdn(2) (T)">HexNAc(1)Kdn(2) (T)</option>
+      <option value="HexNAc(1)NeuAc(1) (S)">HexNAc(1)NeuAc(1) (S)</option>
+      <option value="HexNAc(1)NeuAc(1) (T)">HexNAc(1)NeuAc(1) (T)</option>
+      <option value="HexNAc(1)NeuGc(1) (S)">HexNAc(1)NeuGc(1) (S)</option>
+      <option value="HexNAc(1)NeuGc(1) (T)">HexNAc(1)NeuGc(1) (T)</option>
+      <option value="HexNAc(1)NeuGc(2) (S)">HexNAc(1)NeuGc(2) (S)</option>
+      <option value="HexNAc(1)NeuGc(2) (T)">HexNAc(1)NeuGc(2) (T)</option>
+      <option value="HexNAc(2) (N)">HexNAc(2) (N)</option>
+      <option value="HexNAc(2) (S)">HexNAc(2) (S)</option>
+      <option value="HexNAc(2) (T)">HexNAc(2) (T)</option>
+      <option value="HexNAc(2)dHex(1) (N)">HexNAc(2)dHex(1) (N)</option>
+      <option value="HexNAc(2)dHex(2) (N)">HexNAc(2)dHex(2) (N)</option>
+      <option value="HexNAc(2)NeuAc(1) (S)">HexNAc(2)NeuAc(1) (S)</option>
+      <option value="HexNAc(2)NeuAc(1) (T)">HexNAc(2)NeuAc(1) (T)</option>
+      <option value="HexNAc(2)NeuAc(1)Sulf(1) (S)">HexNAc(2)NeuAc(1)Sulf(1) (S)</option>
+      <option value="HexNAc(2)NeuAc(1)Sulf(1) (T)">HexNAc(2)NeuAc(1)Sulf(1) (T)</option>
+      <option value="HexNAc(2)NeuGc(1) (S)">HexNAc(2)NeuGc(1) (S)</option>
+      <option value="HexNAc(2)NeuGc(1) (T)">HexNAc(2)NeuGc(1) (T)</option>
+      <option value="HexNAc(2)Sulf(1) (S)">HexNAc(2)Sulf(1) (S)</option>
+      <option value="HexNAc(2)Sulf(1) (T)">HexNAc(2)Sulf(1) (T)</option>
+      <option value="HexNAc(3) (S)">HexNAc(3) (S)</option>
+      <option value="HexNAc(3) (T)">HexNAc(3) (T)</option>
+      <option value="HexNAc(3)Sulf(1) (S)">HexNAc(3)Sulf(1) (S)</option>
+      <option value="HexNAc(3)Sulf(1) (T)">HexNAc(3)Sulf(1) (T)</option>
+      <option value="HexNAc(4) (S)">HexNAc(4) (S)</option>
+      <option value="HexNAc(4) (T)">HexNAc(4) (T)</option>
+      <option value="HexNAc(5) (S)">HexNAc(5) (S)</option>
+      <option value="HexNAc(5) (T)">HexNAc(5) (T)</option>
+      <option value="His-&gt;Ala (H)">His-&gt;Ala (H)</option>
+      <option value="His-&gt;Arg (H)">His-&gt;Arg (H)</option>
+      <option value="His-&gt;Asn (H)">His-&gt;Asn (H)</option>
+      <option value="His-&gt;Asp (H)">His-&gt;Asp (H)</option>
+      <option value="His-&gt;Cys (H)">His-&gt;Cys (H)</option>
+      <option value="His-&gt;Gln (H)">His-&gt;Gln (H)</option>
+      <option value="His-&gt;Glu (H)">His-&gt;Glu (H)</option>
+      <option value="His-&gt;Gly (H)">His-&gt;Gly (H)</option>
+      <option value="His-&gt;Lys (H)">His-&gt;Lys (H)</option>
+      <option value="His-&gt;Met (H)">His-&gt;Met (H)</option>
+      <option value="His-&gt;Phe (H)">His-&gt;Phe (H)</option>
+      <option value="His-&gt;Pro (H)">His-&gt;Pro (H)</option>
+      <option value="His-&gt;Ser (H)">His-&gt;Ser (H)</option>
+      <option value="His-&gt;Thr (H)">His-&gt;Thr (H)</option>
+      <option value="His-&gt;Trp (H)">His-&gt;Trp (H)</option>
+      <option value="His-&gt;Tyr (H)">His-&gt;Tyr (H)</option>
+      <option value="His-&gt;Val (H)">His-&gt;Val (H)</option>
+      <option value="His-&gt;Xle (H)">His-&gt;Xle (H)</option>
+      <option value="HMVK (C)">HMVK (C)</option>
+      <option value="HN2_mustard (C)">HN2_mustard (C)</option>
+      <option value="HN2_mustard (H)">HN2_mustard (H)</option>
+      <option value="HN2_mustard (K)">HN2_mustard (K)</option>
+      <option value="HN3_mustard (C)">HN3_mustard (C)</option>
+      <option value="HN3_mustard (H)">HN3_mustard (H)</option>
+      <option value="HN3_mustard (K)">HN3_mustard (K)</option>
+      <option value="HNE (A)">HNE (A)</option>
+      <option value="HNE (C)">HNE (C)</option>
+      <option value="HNE (H)">HNE (H)</option>
+      <option value="HNE (K)">HNE (K)</option>
+      <option value="HNE (L)">HNE (L)</option>
+      <option value="HNE+Delta:H(2) (C)">HNE+Delta:H(2) (C)</option>
+      <option value="HNE+Delta:H(2) (H)">HNE+Delta:H(2) (H)</option>
+      <option value="HNE+Delta:H(2) (K)">HNE+Delta:H(2) (K)</option>
+      <option value="HNE-BAHAH (C)">HNE-BAHAH (C)</option>
+      <option value="HNE-BAHAH (H)">HNE-BAHAH (H)</option>
+      <option value="HNE-BAHAH (K)">HNE-BAHAH (K)</option>
+      <option value="HNE-Delta:H(2)O (C)">HNE-Delta:H(2)O (C)</option>
+      <option value="HNE-Delta:H(2)O (H)">HNE-Delta:H(2)O (H)</option>
+      <option value="HNE-Delta:H(2)O (K)">HNE-Delta:H(2)O (K)</option>
+      <option value="Homocysteic_acid (M)">Homocysteic_acid (M)</option>
+      <option value="HPG (R)">HPG (R)</option>
+      <option value="Hydroxamic_acid (D)">Hydroxamic_acid (D)</option>
+      <option value="Hydroxamic_acid (E)">Hydroxamic_acid (E)</option>
+      <option value="Hydroxycinnamyl (C)">Hydroxycinnamyl (C)</option>
+      <option value="Hydroxyfarnesyl (C)">Hydroxyfarnesyl (C)</option>
+      <option value="Hydroxyheme (E)">Hydroxyheme (E)</option>
+      <option value="hydroxyisobutyryl (K)">hydroxyisobutyryl (K)</option>
+      <option value="Hydroxymethyl (N)">Hydroxymethyl (N)</option>
+      <option value="HydroxymethylOP (K)">HydroxymethylOP (K)</option>
+      <option value="Hydroxytrimethyl (K)">Hydroxytrimethyl (K)</option>
+      <option value="Hypusine (K)">Hypusine (K)</option>
+      <option value="IASD (C)">IASD (C)</option>
+      <option value="IBTP (C)">IBTP (C)</option>
+      <option value="ICAT-C (C)">ICAT-C (C)</option>
+      <option value="ICAT-C:13C(9) (C)">ICAT-C:13C(9) (C)</option>
+      <option value="ICAT-D (C)">ICAT-D (C)</option>
+      <option value="ICAT-D:2H(8) (C)">ICAT-D:2H(8) (C)</option>
+      <option value="ICAT-G (C)">ICAT-G (C)</option>
+      <option value="ICAT-G:2H(8) (C)">ICAT-G:2H(8) (C)</option>
+      <option value="ICAT-H (C)">ICAT-H (C)</option>
+      <option value="ICAT-H:13C(6) (C)">ICAT-H:13C(6) (C)</option>
+      <option value="ICDID (C)">ICDID (C)</option>
+      <option value="ICDID:2H(6) (C)">ICDID:2H(6) (C)</option>
+      <option value="ICPL (K)">ICPL (K)</option>
+      <option value="ICPL (N-term)">ICPL (N-term)</option>
+      <option value="ICPL (Protein N-term)">ICPL (Protein N-term)</option>
+      <option value="ICPL:13C(6) (K)">ICPL:13C(6) (K)</option>
+      <option value="ICPL:13C(6) (N-term)">ICPL:13C(6) (N-term)</option>
+      <option value="ICPL:13C(6) (Protein N-term)">ICPL:13C(6) (Protein N-term)</option>
+      <option value="ICPL:13C(6)2H(4) (K)">ICPL:13C(6)2H(4) (K)</option>
+      <option value="ICPL:13C(6)2H(4) (N-term)">ICPL:13C(6)2H(4) (N-term)</option>
+      <option value="ICPL:13C(6)2H(4) (Protein N-term)">ICPL:13C(6)2H(4) (Protein N-term)</option>
+      <option value="ICPL:2H(4) (K)">ICPL:2H(4) (K)</option>
+      <option value="ICPL:2H(4) (N-term)">ICPL:2H(4) (N-term)</option>
+      <option value="ICPL:2H(4) (Protein N-term)">ICPL:2H(4) (Protein N-term)</option>
+      <option value="IDEnT (C)">IDEnT (C)</option>
+      <option value="IED-Biotin (C)">IED-Biotin (C)</option>
+      <option value="IGBP (C)">IGBP (C)</option>
+      <option value="IGBP:13C(2) (C)">IGBP:13C(2) (C)</option>
+      <option value="IMEHex(2)NeuAc(1) (K)">IMEHex(2)NeuAc(1) (K)</option>
+      <option value="IMID (K)">IMID (K)</option>
+      <option value="IMID:2H(4) (K)">IMID:2H(4) (K)</option>
+      <option value="Iminobiotin (K)">Iminobiotin (K)</option>
+      <option value="Iminobiotin (N-term)">Iminobiotin (N-term)</option>
+      <option value="Iodo (H)">Iodo (H)</option>
+      <option value="Iodo (Y)">Iodo (Y)</option>
+      <option value="Iodoacetanilide (C)">Iodoacetanilide (C)</option>
+      <option value="Iodoacetanilide (K)">Iodoacetanilide (K)</option>
+      <option value="Iodoacetanilide (N-term)">Iodoacetanilide (N-term)</option>
+      <option value="Iodoacetanilide:13C(6) (C)">Iodoacetanilide:13C(6) (C)</option>
+      <option value="Iodoacetanilide:13C(6) (K)">Iodoacetanilide:13C(6) (K)</option>
+      <option value="Iodoacetanilide:13C(6) (N-term)">Iodoacetanilide:13C(6) (N-term)</option>
+      <option value="iodoTMT (C)">iodoTMT (C)</option>
+      <option value="iodoTMT (D)">iodoTMT (D)</option>
+      <option value="iodoTMT (E)">iodoTMT (E)</option>
+      <option value="iodoTMT (H)">iodoTMT (H)</option>
+      <option value="iodoTMT (K)">iodoTMT (K)</option>
+      <option value="iodoTMT6plex (C)">iodoTMT6plex (C)</option>
+      <option value="iodoTMT6plex (D)">iodoTMT6plex (D)</option>
+      <option value="iodoTMT6plex (E)">iodoTMT6plex (E)</option>
+      <option value="iodoTMT6plex (H)">iodoTMT6plex (H)</option>
+      <option value="iodoTMT6plex (K)">iodoTMT6plex (K)</option>
+      <option value="IodoU-AMP (F)">IodoU-AMP (F)</option>
+      <option value="IodoU-AMP (W)">IodoU-AMP (W)</option>
+      <option value="IodoU-AMP (Y)">IodoU-AMP (Y)</option>
+      <option value="ISD_z+2_ion (N-term)">ISD_z+2_ion (N-term)</option>
+      <option value="Isopropylphospho (S)">Isopropylphospho (S)</option>
+      <option value="Isopropylphospho (T)">Isopropylphospho (T)</option>
+      <option value="Isopropylphospho (Y)">Isopropylphospho (Y)</option>
+      <option value="iTRAQ4plex (C)">iTRAQ4plex (C)</option>
+      <option value="iTRAQ4plex (H)">iTRAQ4plex (H)</option>
+      <option value="iTRAQ4plex (K)">iTRAQ4plex (K)</option>
+      <option value="iTRAQ4plex (N-term)">iTRAQ4plex (N-term)</option>
+      <option value="iTRAQ4plex (Protein N-term)">iTRAQ4plex (Protein N-term)</option>
+      <option value="iTRAQ4plex (S)">iTRAQ4plex (S)</option>
+      <option value="iTRAQ4plex (T)">iTRAQ4plex (T)</option>
+      <option value="iTRAQ4plex (Y)">iTRAQ4plex (Y)</option>
+      <option value="iTRAQ4plex114 (C)">iTRAQ4plex114 (C)</option>
+      <option value="iTRAQ4plex114 (K)">iTRAQ4plex114 (K)</option>
+      <option value="iTRAQ4plex114 (N-term)">iTRAQ4plex114 (N-term)</option>
+      <option value="iTRAQ4plex114 (Y)">iTRAQ4plex114 (Y)</option>
+      <option value="iTRAQ4plex115 (C)">iTRAQ4plex115 (C)</option>
+      <option value="iTRAQ4plex115 (K)">iTRAQ4plex115 (K)</option>
+      <option value="iTRAQ4plex115 (N-term)">iTRAQ4plex115 (N-term)</option>
+      <option value="iTRAQ4plex115 (Y)">iTRAQ4plex115 (Y)</option>
+      <option value="iTRAQ8plex (C)">iTRAQ8plex (C)</option>
+      <option value="iTRAQ8plex (H)">iTRAQ8plex (H)</option>
+      <option value="iTRAQ8plex (K)">iTRAQ8plex (K)</option>
+      <option value="iTRAQ8plex (N-term)">iTRAQ8plex (N-term)</option>
+      <option value="iTRAQ8plex (Protein N-term)">iTRAQ8plex (Protein N-term)</option>
+      <option value="iTRAQ8plex (S)">iTRAQ8plex (S)</option>
+      <option value="iTRAQ8plex (T)">iTRAQ8plex (T)</option>
+      <option value="iTRAQ8plex (Y)">iTRAQ8plex (Y)</option>
+      <option value="iTRAQ8plex:13C(6)15N(2) (C)">iTRAQ8plex:13C(6)15N(2) (C)</option>
+      <option value="iTRAQ8plex:13C(6)15N(2) (K)">iTRAQ8plex:13C(6)15N(2) (K)</option>
+      <option value="iTRAQ8plex:13C(6)15N(2) (N-term)">iTRAQ8plex:13C(6)15N(2) (N-term)</option>
+      <option value="iTRAQ8plex:13C(6)15N(2) (Y)">iTRAQ8plex:13C(6)15N(2) (Y)</option>
+      <option value="Label:13C(1)2H(3) (M)">Label:13C(1)2H(3) (M)</option>
+      <option value="Label:13C(1)2H(3)+Oxidation (M)">Label:13C(1)2H(3)+Oxidation (M)</option>
+      <option value="Label:13C(2)15N(2) (K)">Label:13C(2)15N(2) (K)</option>
+      <option value="Label:13C(3) (A)">Label:13C(3) (A)</option>
+      <option value="Label:13C(3)15N(1) (A)">Label:13C(3)15N(1) (A)</option>
+      <option value="Label:13C(4) (M)">Label:13C(4) (M)</option>
+      <option value="Label:13C(4)+Oxidation (M)">Label:13C(4)+Oxidation (M)</option>
+      <option value="Label:13C(4)15N(1) (D)">Label:13C(4)15N(1) (D)</option>
+      <option value="Label:13C(4)15N(2)+GG (K)">Label:13C(4)15N(2)+GG (K)</option>
+      <option value="Label:13C(5) (P)">Label:13C(5) (P)</option>
+      <option value="Label:13C(5)15N(1) (E)">Label:13C(5)15N(1) (E)</option>
+      <option value="Label:13C(5)15N(1) (M)">Label:13C(5)15N(1) (M)</option>
+      <option value="Label:13C(5)15N(1) (P)">Label:13C(5)15N(1) (P)</option>
+      <option value="Label:13C(5)15N(1) (V)">Label:13C(5)15N(1) (V)</option>
+      <option value="Label:13C(6) (I)">Label:13C(6) (I)</option>
+      <option value="Label:13C(6) (K)">Label:13C(6) (K)</option>
+      <option value="Label:13C(6) (L)">Label:13C(6) (L)</option>
+      <option value="Label:13C(6) (R)">Label:13C(6) (R)</option>
+      <option value="Label:13C(6)+Acetyl (K)">Label:13C(6)+Acetyl (K)</option>
+      <option value="Label:13C(6)+Dimethyl (K)">Label:13C(6)+Dimethyl (K)</option>
+      <option value="Label:13C(6)+GG (K)">Label:13C(6)+GG (K)</option>
+      <option value="Label:13C(6)15N(1) (I)">Label:13C(6)15N(1) (I)</option>
+      <option value="Label:13C(6)15N(1) (L)">Label:13C(6)15N(1) (L)</option>
+      <option value="Label:13C(6)15N(2) (K)">Label:13C(6)15N(2) (K)</option>
+      <option value="Label:13C(6)15N(2)+Acetyl (K)">Label:13C(6)15N(2)+Acetyl (K)</option>
+      <option value="Label:13C(6)15N(2)+Dimethyl (K)">Label:13C(6)15N(2)+Dimethyl (K)</option>
+      <option value="Label:13C(6)15N(2)+GG (K)">Label:13C(6)15N(2)+GG (K)</option>
+      <option value="Label:13C(6)15N(4) (R)">Label:13C(6)15N(4) (R)</option>
+      <option value="Label:13C(6)15N(4)+Dimethyl (R)">Label:13C(6)15N(4)+Dimethyl (R)</option>
+      <option value="Label:13C(6)15N(4)+Dimethyl:2H(6)13C(2) (R)">Label:13C(6)15N(4)+Dimethyl:2H(6)13C(2) (R)</option>
+      <option value="Label:13C(6)15N(4)+Methyl (R)">Label:13C(6)15N(4)+Methyl (R)</option>
+      <option value="Label:13C(6)15N(4)+Methyl:2H(3)13C(1) (R)">Label:13C(6)15N(4)+Methyl:2H(3)13C(1) (R)</option>
+      <option value="Label:13C(9) (F)">Label:13C(9) (F)</option>
+      <option value="Label:13C(9) (Y)">Label:13C(9) (Y)</option>
+      <option value="Label:13C(9)+Phospho (Y)">Label:13C(9)+Phospho (Y)</option>
+      <option value="Label:13C(9)15N(1) (F)">Label:13C(9)15N(1) (F)</option>
+      <option value="Label:15N(1) (A)">Label:15N(1) (A)</option>
+      <option value="Label:15N(1) (C)">Label:15N(1) (C)</option>
+      <option value="Label:15N(1) (D)">Label:15N(1) (D)</option>
+      <option value="Label:15N(1) (E)">Label:15N(1) (E)</option>
+      <option value="Label:15N(1) (F)">Label:15N(1) (F)</option>
+      <option value="Label:15N(1) (G)">Label:15N(1) (G)</option>
+      <option value="Label:15N(1) (I)">Label:15N(1) (I)</option>
+      <option value="Label:15N(1) (L)">Label:15N(1) (L)</option>
+      <option value="Label:15N(1) (M)">Label:15N(1) (M)</option>
+      <option value="Label:15N(1) (P)">Label:15N(1) (P)</option>
+      <option value="Label:15N(1) (S)">Label:15N(1) (S)</option>
+      <option value="Label:15N(1) (T)">Label:15N(1) (T)</option>
+      <option value="Label:15N(1) (V)">Label:15N(1) (V)</option>
+      <option value="Label:15N(1) (Y)">Label:15N(1) (Y)</option>
+      <option value="Label:15N(2) (K)">Label:15N(2) (K)</option>
+      <option value="Label:15N(2) (N)">Label:15N(2) (N)</option>
+      <option value="Label:15N(2) (Q)">Label:15N(2) (Q)</option>
+      <option value="Label:15N(2) (W)">Label:15N(2) (W)</option>
+      <option value="Label:15N(2)2H(9) (K)">Label:15N(2)2H(9) (K)</option>
+      <option value="Label:15N(3) (H)">Label:15N(3) (H)</option>
+      <option value="Label:15N(4) (R)">Label:15N(4) (R)</option>
+      <option value="Label:18O(1) (C-term)">Label:18O(1) (C-term)</option>
+      <option value="Label:18O(1) (S)">Label:18O(1) (S)</option>
+      <option value="Label:18O(1) (T)">Label:18O(1) (T)</option>
+      <option value="Label:18O(1) (Y)">Label:18O(1) (Y)</option>
+      <option value="Label:18O(2) (C-term)">Label:18O(2) (C-term)</option>
+      <option value="Label:2H(10) (L)">Label:2H(10) (L)</option>
+      <option value="Label:2H(3) (L)">Label:2H(3) (L)</option>
+      <option value="Label:2H(3) (M)">Label:2H(3) (M)</option>
+      <option value="Label:2H(3)+Oxidation (M)">Label:2H(3)+Oxidation (M)</option>
+      <option value="Label:2H(4) (A)">Label:2H(4) (A)</option>
+      <option value="Label:2H(4) (F)">Label:2H(4) (F)</option>
+      <option value="Label:2H(4) (K)">Label:2H(4) (K)</option>
+      <option value="Label:2H(4) (U)">Label:2H(4) (U)</option>
+      <option value="Label:2H(4) (Y)">Label:2H(4) (Y)</option>
+      <option value="Label:2H(4)+Acetyl (K)">Label:2H(4)+Acetyl (K)</option>
+      <option value="Label:2H(4)+GG (K)">Label:2H(4)+GG (K)</option>
+      <option value="Label:2H(4)13C(1) (R)">Label:2H(4)13C(1) (R)</option>
+      <option value="Label:2H(6)15N(1) (P)">Label:2H(6)15N(1) (P)</option>
+      <option value="Label:2H(7)15N(4) (R)">Label:2H(7)15N(4) (R)</option>
+      <option value="Label:2H(9)13C(6)15N(2) (K)">Label:2H(9)13C(6)15N(2) (K)</option>
+      <option value="lapachenole (C)">lapachenole (C)</option>
+      <option value="Leu-&gt;MetOx (L)">Leu-&gt;MetOx (L)</option>
+      <option value="LG-anhydrolactam (K)">LG-anhydrolactam (K)</option>
+      <option value="LG-anhydrolactam (N-term)">LG-anhydrolactam (N-term)</option>
+      <option value="LG-anhyropyrrole (K)">LG-anhyropyrrole (K)</option>
+      <option value="LG-anhyropyrrole (N-term)">LG-anhyropyrrole (N-term)</option>
+      <option value="LG-Hlactam-K (K)">LG-Hlactam-K (K)</option>
+      <option value="LG-Hlactam-K (Protein N-term)">LG-Hlactam-K (Protein N-term)</option>
+      <option value="LG-Hlactam-R (R)">LG-Hlactam-R (R)</option>
+      <option value="LG-lactam-K (K)">LG-lactam-K (K)</option>
+      <option value="LG-lactam-K (Protein N-term)">LG-lactam-K (Protein N-term)</option>
+      <option value="LG-lactam-R (R)">LG-lactam-R (R)</option>
+      <option value="LG-pyrrole (K)">LG-pyrrole (K)</option>
+      <option value="LG-pyrrole (N-term)">LG-pyrrole (N-term)</option>
+      <option value="Lipoyl (K)">Lipoyl (K)</option>
+      <option value="LRGG (K)">LRGG (K)</option>
+      <option value="LRGG+dimethyl (K)">LRGG+dimethyl (K)</option>
+      <option value="LRGG+methyl (K)">LRGG+methyl (K)</option>
+      <option value="Lys (N-term)">Lys (N-term)</option>
+      <option value="Lys-&gt;Ala (K)">Lys-&gt;Ala (K)</option>
+      <option value="Lys-&gt;Allysine (K)">Lys-&gt;Allysine (K)</option>
+      <option value="Lys-&gt;AminoadipicAcid (K)">Lys-&gt;AminoadipicAcid (K)</option>
+      <option value="Lys-&gt;Arg (K)">Lys-&gt;Arg (K)</option>
+      <option value="Lys-&gt;Asn (K)">Lys-&gt;Asn (K)</option>
+      <option value="Lys-&gt;Asp (K)">Lys-&gt;Asp (K)</option>
+      <option value="Lys-&gt;CamCys (K)">Lys-&gt;CamCys (K)</option>
+      <option value="Lys-&gt;Cys (K)">Lys-&gt;Cys (K)</option>
+      <option value="Lys-&gt;Gln (K)">Lys-&gt;Gln (K)</option>
+      <option value="Lys-&gt;Glu (K)">Lys-&gt;Glu (K)</option>
+      <option value="Lys-&gt;Gly (K)">Lys-&gt;Gly (K)</option>
+      <option value="Lys-&gt;His (K)">Lys-&gt;His (K)</option>
+      <option value="Lys-&gt;Met (K)">Lys-&gt;Met (K)</option>
+      <option value="Lys-&gt;MetOx (K)">Lys-&gt;MetOx (K)</option>
+      <option value="Lys-&gt;Phe (K)">Lys-&gt;Phe (K)</option>
+      <option value="Lys-&gt;Pro (K)">Lys-&gt;Pro (K)</option>
+      <option value="Lys-&gt;Ser (K)">Lys-&gt;Ser (K)</option>
+      <option value="Lys-&gt;Thr (K)">Lys-&gt;Thr (K)</option>
+      <option value="Lys-&gt;Trp (K)">Lys-&gt;Trp (K)</option>
+      <option value="Lys-&gt;Tyr (K)">Lys-&gt;Tyr (K)</option>
+      <option value="Lys-&gt;Val (K)">Lys-&gt;Val (K)</option>
+      <option value="Lys-&gt;Xle (K)">Lys-&gt;Xle (K)</option>
+      <option value="Lys-loss (Protein C-term K)">Lys-loss (Protein C-term K)</option>
+      <option value="Lysbiotinhydrazide (K)">Lysbiotinhydrazide (K)</option>
+      <option value="maleimide (C)">maleimide (C)</option>
+      <option value="maleimide (K)">maleimide (K)</option>
+      <option value="Maleimide-PEO2-Biotin (C)">Maleimide-PEO2-Biotin (C)</option>
+      <option value="maleimide3 (C)">maleimide3 (C)</option>
+      <option value="maleimide3 (K)">maleimide3 (K)</option>
+      <option value="maleimide5 (C)">maleimide5 (C)</option>
+      <option value="maleimide5 (K)">maleimide5 (K)</option>
+      <option value="Malonyl (C)">Malonyl (C)</option>
+      <option value="Malonyl (K)">Malonyl (K)</option>
+      <option value="Malonyl (S)">Malonyl (S)</option>
+      <option value="MDCC (C)">MDCC (C)</option>
+      <option value="MeMePhosphorothioate (S)">MeMePhosphorothioate (S)</option>
+      <option value="Menadione (C)">Menadione (C)</option>
+      <option value="Menadione (K)">Menadione (K)</option>
+      <option value="Menadione-HQ (C)">Menadione-HQ (C)</option>
+      <option value="Menadione-HQ (K)">Menadione-HQ (K)</option>
+      <option value="MercaptoEthanol (S)">MercaptoEthanol (S)</option>
+      <option value="MercaptoEthanol (T)">MercaptoEthanol (T)</option>
+      <option value="MesitylOxide (H)">MesitylOxide (H)</option>
+      <option value="MesitylOxide (K)">MesitylOxide (K)</option>
+      <option value="MesitylOxide (Protein N-term)">MesitylOxide (Protein N-term)</option>
+      <option value="Met-&gt;Aha (M)">Met-&gt;Aha (M)</option>
+      <option value="Met-&gt;Ala (M)">Met-&gt;Ala (M)</option>
+      <option value="Met-&gt;Arg (M)">Met-&gt;Arg (M)</option>
+      <option value="Met-&gt;Asn (M)">Met-&gt;Asn (M)</option>
+      <option value="Met-&gt;Asp (M)">Met-&gt;Asp (M)</option>
+      <option value="Met-&gt;AspSA (M)">Met-&gt;AspSA (M)</option>
+      <option value="Met-&gt;Cys (M)">Met-&gt;Cys (M)</option>
+      <option value="Met-&gt;Gln (M)">Met-&gt;Gln (M)</option>
+      <option value="Met-&gt;Glu (M)">Met-&gt;Glu (M)</option>
+      <option value="Met-&gt;Gly (M)">Met-&gt;Gly (M)</option>
+      <option value="Met-&gt;His (M)">Met-&gt;His (M)</option>
+      <option value="Met-&gt;Hpg (M)">Met-&gt;Hpg (M)</option>
+      <option value="Met-&gt;Hse (C-term M)">Met-&gt;Hse (C-term M)</option>
+      <option value="Met-&gt;Hsl (C-term M)">Met-&gt;Hsl (C-term M)</option>
+      <option value="Met-&gt;Lys (M)">Met-&gt;Lys (M)</option>
+      <option value="Met-&gt;Phe (M)">Met-&gt;Phe (M)</option>
+      <option value="Met-&gt;Pro (M)">Met-&gt;Pro (M)</option>
+      <option value="Met-&gt;Ser (M)">Met-&gt;Ser (M)</option>
+      <option value="Met-&gt;Thr (M)">Met-&gt;Thr (M)</option>
+      <option value="Met-&gt;Trp (M)">Met-&gt;Trp (M)</option>
+      <option value="Met-&gt;Tyr (M)">Met-&gt;Tyr (M)</option>
+      <option value="Met-&gt;Val (M)">Met-&gt;Val (M)</option>
+      <option value="Met-&gt;Xle (M)">Met-&gt;Xle (M)</option>
+      <option value="Met-loss (Protein N-term M)">Met-loss (Protein N-term M)</option>
+      <option value="Met-loss+Acetyl (Protein N-term M)">Met-loss+Acetyl (Protein N-term M)</option>
+      <option value="Methamidophos-O (C)">Methamidophos-O (C)</option>
+      <option value="Methamidophos-O (H)">Methamidophos-O (H)</option>
+      <option value="Methamidophos-O (K)">Methamidophos-O (K)</option>
+      <option value="Methamidophos-O (S)">Methamidophos-O (S)</option>
+      <option value="Methamidophos-O (T)">Methamidophos-O (T)</option>
+      <option value="Methamidophos-O (Y)">Methamidophos-O (Y)</option>
+      <option value="Methamidophos-S (C)">Methamidophos-S (C)</option>
+      <option value="Methamidophos-S (H)">Methamidophos-S (H)</option>
+      <option value="Methamidophos-S (K)">Methamidophos-S (K)</option>
+      <option value="Methamidophos-S (S)">Methamidophos-S (S)</option>
+      <option value="Methamidophos-S (T)">Methamidophos-S (T)</option>
+      <option value="Methamidophos-S (Y)">Methamidophos-S (Y)</option>
+      <option value="Methyl (C)">Methyl (C)</option>
+      <option value="Methyl (C-term)">Methyl (C-term)</option>
+      <option value="Methyl (D)">Methyl (D)</option>
+      <option value="Methyl (E)">Methyl (E)</option>
+      <option value="Methyl (H)">Methyl (H)</option>
+      <option value="Methyl (I)">Methyl (I)</option>
+      <option value="Methyl (K)">Methyl (K)</option>
+      <option value="Methyl (L)">Methyl (L)</option>
+      <option value="Methyl (N)">Methyl (N)</option>
+      <option value="Methyl (N-term)">Methyl (N-term)</option>
+      <option value="Methyl (Protein N-term)">Methyl (Protein N-term)</option>
+      <option value="Methyl (Q)">Methyl (Q)</option>
+      <option value="Methyl (R)">Methyl (R)</option>
+      <option value="Methyl (S)">Methyl (S)</option>
+      <option value="Methyl (T)">Methyl (T)</option>
+      <option value="Methyl+Acetyl:2H(3) (K)">Methyl+Acetyl:2H(3) (K)</option>
+      <option value="Methyl+Deamidated (N)">Methyl+Deamidated (N)</option>
+      <option value="Methyl+Deamidated (Q)">Methyl+Deamidated (Q)</option>
+      <option value="Methyl-PEO12-Maleimide (C)">Methyl-PEO12-Maleimide (C)</option>
+      <option value="Methyl:2H(2) (K)">Methyl:2H(2) (K)</option>
+      <option value="Methyl:2H(2) (N-term)">Methyl:2H(2) (N-term)</option>
+      <option value="Methyl:2H(2)13C (C)">Methyl:2H(2)13C (C)</option>
+      <option value="Methyl:2H(2)13C (C-term)">Methyl:2H(2)13C (C-term)</option>
+      <option value="Methyl:2H(2)13C (D)">Methyl:2H(2)13C (D)</option>
+      <option value="Methyl:2H(2)13C (E)">Methyl:2H(2)13C (E)</option>
+      <option value="Methyl:2H(2)13C (H)">Methyl:2H(2)13C (H)</option>
+      <option value="Methyl:2H(2)13C (I)">Methyl:2H(2)13C (I)</option>
+      <option value="Methyl:2H(2)13C (K)">Methyl:2H(2)13C (K)</option>
+      <option value="Methyl:2H(2)13C (L)">Methyl:2H(2)13C (L)</option>
+      <option value="Methyl:2H(2)13C (N)">Methyl:2H(2)13C (N)</option>
+      <option value="Methyl:2H(2)13C (N-term)">Methyl:2H(2)13C (N-term)</option>
+      <option value="Methyl:2H(2)13C (Protein N-term)">Methyl:2H(2)13C (Protein N-term)</option>
+      <option value="Methyl:2H(2)13C (Q)">Methyl:2H(2)13C (Q)</option>
+      <option value="Methyl:2H(2)13C (R)">Methyl:2H(2)13C (R)</option>
+      <option value="Methyl:2H(2)13C (S)">Methyl:2H(2)13C (S)</option>
+      <option value="Methyl:2H(2)13C (T)">Methyl:2H(2)13C (T)</option>
+      <option value="Methyl:2H(3) (D)">Methyl:2H(3) (D)</option>
+      <option value="Methyl:2H(3) (E)">Methyl:2H(3) (E)</option>
+      <option value="Methyl:2H(3) (K)">Methyl:2H(3) (K)</option>
+      <option value="Methyl:2H(3) (R)">Methyl:2H(3) (R)</option>
+      <option value="Methyl:2H(3) (X)">Methyl:2H(3) (X)</option>
+      <option value="Methyl:2H(3)+Acetyl:2H(3) (K)">Methyl:2H(3)+Acetyl:2H(3) (K)</option>
+      <option value="Methyl:2H(3)13C(1) (K)">Methyl:2H(3)13C(1) (K)</option>
+      <option value="Methyl:2H(3)13C(1) (N-term)">Methyl:2H(3)13C(1) (N-term)</option>
+      <option value="Methyl:2H(3)13C(1) (R)">Methyl:2H(3)13C(1) (R)</option>
+      <option value="Methylamine (S)">Methylamine (S)</option>
+      <option value="Methylamine (T)">Methylamine (T)</option>
+      <option value="Methylmalonylation (S)">Methylmalonylation (S)</option>
+      <option value="methylol (K)">methylol (K)</option>
+      <option value="methylol (W)">methylol (W)</option>
+      <option value="methylol (Y)">methylol (Y)</option>
+      <option value="Methylphosphonate (S)">Methylphosphonate (S)</option>
+      <option value="Methylphosphonate (T)">Methylphosphonate (T)</option>
+      <option value="Methylphosphonate (Y)">Methylphosphonate (Y)</option>
+      <option value="Methylpyrroline (K)">Methylpyrroline (K)</option>
+      <option value="methylsulfonylethyl (C)">methylsulfonylethyl (C)</option>
+      <option value="methylsulfonylethyl (H)">methylsulfonylethyl (H)</option>
+      <option value="methylsulfonylethyl (K)">methylsulfonylethyl (K)</option>
+      <option value="Methylthio (C)">Methylthio (C)</option>
+      <option value="Methylthio (D)">Methylthio (D)</option>
+      <option value="Methylthio (K)">Methylthio (K)</option>
+      <option value="Methylthio (N)">Methylthio (N)</option>
+      <option value="Methylthio (N-term)">Methylthio (N-term)</option>
+      <option value="MG-H1 (R)">MG-H1 (R)</option>
+      <option value="Microcin (Protein C-term)">Microcin (Protein C-term)</option>
+      <option value="MicrocinC7 (Protein C-term)">MicrocinC7 (Protein C-term)</option>
+      <option value="MM-diphenylpentanone (C)">MM-diphenylpentanone (C)</option>
+      <option value="Molybdopterin (C)">Molybdopterin (C)</option>
+      <option value="MolybdopterinGD (C)">MolybdopterinGD (C)</option>
+      <option value="MolybdopterinGD (D)">MolybdopterinGD (D)</option>
+      <option value="MolybdopterinGD (U)">MolybdopterinGD (U)</option>
+      <option value="MolybdopterinGD+Delta:S(-1)Se(1) (C)">MolybdopterinGD+Delta:S(-1)Se(1) (C)</option>
+      <option value="monomethylphosphothione (C)">monomethylphosphothione (C)</option>
+      <option value="monomethylphosphothione (H)">monomethylphosphothione (H)</option>
+      <option value="monomethylphosphothione (K)">monomethylphosphothione (K)</option>
+      <option value="monomethylphosphothione (S)">monomethylphosphothione (S)</option>
+      <option value="monomethylphosphothione (T)">monomethylphosphothione (T)</option>
+      <option value="monomethylphosphothione (Y)">monomethylphosphothione (Y)</option>
+      <option value="mTRAQ (H)">mTRAQ (H)</option>
+      <option value="mTRAQ (K)">mTRAQ (K)</option>
+      <option value="mTRAQ (N-term)">mTRAQ (N-term)</option>
+      <option value="mTRAQ (S)">mTRAQ (S)</option>
+      <option value="mTRAQ (T)">mTRAQ (T)</option>
+      <option value="mTRAQ (Y)">mTRAQ (Y)</option>
+      <option value="mTRAQ:13C(3)15N(1) (H)">mTRAQ:13C(3)15N(1) (H)</option>
+      <option value="mTRAQ:13C(3)15N(1) (K)">mTRAQ:13C(3)15N(1) (K)</option>
+      <option value="mTRAQ:13C(3)15N(1) (N-term)">mTRAQ:13C(3)15N(1) (N-term)</option>
+      <option value="mTRAQ:13C(3)15N(1) (S)">mTRAQ:13C(3)15N(1) (S)</option>
+      <option value="mTRAQ:13C(3)15N(1) (T)">mTRAQ:13C(3)15N(1) (T)</option>
+      <option value="mTRAQ:13C(3)15N(1) (Y)">mTRAQ:13C(3)15N(1) (Y)</option>
+      <option value="mTRAQ:13C(6)15N(2) (H)">mTRAQ:13C(6)15N(2) (H)</option>
+      <option value="mTRAQ:13C(6)15N(2) (K)">mTRAQ:13C(6)15N(2) (K)</option>
+      <option value="mTRAQ:13C(6)15N(2) (N-term)">mTRAQ:13C(6)15N(2) (N-term)</option>
+      <option value="mTRAQ:13C(6)15N(2) (S)">mTRAQ:13C(6)15N(2) (S)</option>
+      <option value="mTRAQ:13C(6)15N(2) (T)">mTRAQ:13C(6)15N(2) (T)</option>
+      <option value="mTRAQ:13C(6)15N(2) (Y)">mTRAQ:13C(6)15N(2) (Y)</option>
+      <option value="MTSL (C)">MTSL (C)</option>
+      <option value="MurNAc (A)">MurNAc (A)</option>
+      <option value="Myristoleyl (Protein N-term G)">Myristoleyl (Protein N-term G)</option>
+      <option value="Myristoyl (C)">Myristoyl (C)</option>
+      <option value="Myristoyl (K)">Myristoyl (K)</option>
+      <option value="Myristoyl (N-term G)">Myristoyl (N-term G)</option>
+      <option value="Myristoyl+Delta:H(-4) (Protein N-term G)">Myristoyl+Delta:H(-4) (Protein N-term G)</option>
+      <option value="N-dimethylphosphate (S)">N-dimethylphosphate (S)</option>
+      <option value="NA-LNO2 (C)">NA-LNO2 (C)</option>
+      <option value="NA-LNO2 (H)">NA-LNO2 (H)</option>
+      <option value="NA-OA-NO2 (C)">NA-OA-NO2 (C)</option>
+      <option value="NA-OA-NO2 (H)">NA-OA-NO2 (H)</option>
+      <option value="NBS (W)">NBS (W)</option>
+      <option value="NBS:13C(6) (W)">NBS:13C(6) (W)</option>
+      <option value="NDA (K)">NDA (K)</option>
+      <option value="NDA (N-term)">NDA (N-term)</option>
+      <option value="NEIAA (C)">NEIAA (C)</option>
+      <option value="NEIAA (Y)">NEIAA (Y)</option>
+      <option value="NEIAA:2H(5) (C)">NEIAA:2H(5) (C)</option>
+      <option value="NEIAA:2H(5) (Y)">NEIAA:2H(5) (Y)</option>
+      <option value="NEM:2H(5) (C)">NEM:2H(5) (C)</option>
+      <option value="NEM:2H(5)+H2O (C)">NEM:2H(5)+H2O (C)</option>
+      <option value="NEMsulfur (C)">NEMsulfur (C)</option>
+      <option value="NEMsulfurWater (C)">NEMsulfurWater (C)</option>
+      <option value="Nethylmaleimide (C)">Nethylmaleimide (C)</option>
+      <option value="Nethylmaleimide+water (C)">Nethylmaleimide+water (C)</option>
+      <option value="Nethylmaleimide+water (K)">Nethylmaleimide+water (K)</option>
+      <option value="NeuAc (N)">NeuAc (N)</option>
+      <option value="NeuAc (S)">NeuAc (S)</option>
+      <option value="NeuAc (T)">NeuAc (T)</option>
+      <option value="NeuGc (N)">NeuGc (N)</option>
+      <option value="NeuGc (S)">NeuGc (S)</option>
+      <option value="NeuGc (T)">NeuGc (T)</option>
+      <option value="NHS-fluorescein (K)">NHS-fluorescein (K)</option>
+      <option value="NHS-LC-Biotin (K)">NHS-LC-Biotin (K)</option>
+      <option value="NHS-LC-Biotin (N-term)">NHS-LC-Biotin (N-term)</option>
+      <option value="NIC (K)">NIC (K)</option>
+      <option value="NIC (N-term)">NIC (N-term)</option>
+      <option value="NIPCAM (C)">NIPCAM (C)</option>
+      <option value="Nitrene (Y)">Nitrene (Y)</option>
+      <option value="Nitro (F)">Nitro (F)</option>
+      <option value="Nitro (W)">Nitro (W)</option>
+      <option value="Nitro (Y)">Nitro (Y)</option>
+      <option value="Nitrosyl (C)">Nitrosyl (C)</option>
+      <option value="Nitrosyl (Y)">Nitrosyl (Y)</option>
+      <option value="Nmethylmaleimide (C)">Nmethylmaleimide (C)</option>
+      <option value="Nmethylmaleimide (K)">Nmethylmaleimide (K)</option>
+      <option value="Nmethylmaleimide+water (C)">Nmethylmaleimide+water (C)</option>
+      <option value="NO_SMX_SEMD (C)">NO_SMX_SEMD (C)</option>
+      <option value="NO_SMX_SIMD (C)">NO_SMX_SIMD (C)</option>
+      <option value="NO_SMX_SMCT (C)">NO_SMX_SMCT (C)</option>
+      <option value="NP40 (N-term)">NP40 (N-term)</option>
+      <option value="NQIGG (K)">NQIGG (K)</option>
+      <option value="O-Dimethylphosphate (S)">O-Dimethylphosphate (S)</option>
+      <option value="O-Dimethylphosphate (T)">O-Dimethylphosphate (T)</option>
+      <option value="O-Dimethylphosphate (Y)">O-Dimethylphosphate (Y)</option>
+      <option value="O-Et-N-diMePhospho (S)">O-Et-N-diMePhospho (S)</option>
+      <option value="O-Isopropylmethylphosphonate (S)">O-Isopropylmethylphosphonate (S)</option>
+      <option value="O-Isopropylmethylphosphonate (T)">O-Isopropylmethylphosphonate (T)</option>
+      <option value="O-Isopropylmethylphosphonate (Y)">O-Isopropylmethylphosphonate (Y)</option>
+      <option value="O-Methylphosphate (S)">O-Methylphosphate (S)</option>
+      <option value="O-Methylphosphate (T)">O-Methylphosphate (T)</option>
+      <option value="O-Methylphosphate (Y)">O-Methylphosphate (Y)</option>
+      <option value="O-pinacolylmethylphosphonate (H)">O-pinacolylmethylphosphonate (H)</option>
+      <option value="O-pinacolylmethylphosphonate (K)">O-pinacolylmethylphosphonate (K)</option>
+      <option value="O-pinacolylmethylphosphonate (S)">O-pinacolylmethylphosphonate (S)</option>
+      <option value="O-pinacolylmethylphosphonate (T)">O-pinacolylmethylphosphonate (T)</option>
+      <option value="O-pinacolylmethylphosphonate (Y)">O-pinacolylmethylphosphonate (Y)</option>
+      <option value="Octanoyl (C)">Octanoyl (C)</option>
+      <option value="Octanoyl (S)">Octanoyl (S)</option>
+      <option value="Octanoyl (T)">Octanoyl (T)</option>
+      <option value="OxArgBiotin (R)">OxArgBiotin (R)</option>
+      <option value="OxArgBiotinRed (R)">OxArgBiotinRed (R)</option>
+      <option value="Oxidation (C)">Oxidation (C)</option>
+      <option value="Oxidation (C-term G)">Oxidation (C-term G)</option>
+      <option value="Oxidation (D)">Oxidation (D)</option>
+      <option value="Oxidation (E)">Oxidation (E)</option>
+      <option value="Oxidation (F)">Oxidation (F)</option>
+      <option value="Oxidation (H)">Oxidation (H)</option>
+      <option value="Oxidation (I)">Oxidation (I)</option>
+      <option value="Oxidation (K)">Oxidation (K)</option>
+      <option value="Oxidation (L)">Oxidation (L)</option>
+      <option value="Oxidation (M)">Oxidation (M)</option>
+      <option value="Oxidation (N)">Oxidation (N)</option>
+      <option value="Oxidation (P)">Oxidation (P)</option>
+      <option value="Oxidation (Q)">Oxidation (Q)</option>
+      <option value="Oxidation (R)">Oxidation (R)</option>
+      <option value="Oxidation (S)">Oxidation (S)</option>
+      <option value="Oxidation (T)">Oxidation (T)</option>
+      <option value="Oxidation (U)">Oxidation (U)</option>
+      <option value="Oxidation (V)">Oxidation (V)</option>
+      <option value="Oxidation (W)">Oxidation (W)</option>
+      <option value="Oxidation (Y)">Oxidation (Y)</option>
+      <option value="Oxidation+NEM (C)">Oxidation+NEM (C)</option>
+      <option value="OxLysBiotin (K)">OxLysBiotin (K)</option>
+      <option value="OxLysBiotinRed (K)">OxLysBiotinRed (K)</option>
+      <option value="OxProBiotin (P)">OxProBiotin (P)</option>
+      <option value="OxProBiotinRed (P)">OxProBiotinRed (P)</option>
+      <option value="Palmitoleyl (C)">Palmitoleyl (C)</option>
+      <option value="Palmitoleyl (S)">Palmitoleyl (S)</option>
+      <option value="Palmitoleyl (T)">Palmitoleyl (T)</option>
+      <option value="Palmitoyl (C)">Palmitoyl (C)</option>
+      <option value="Palmitoyl (K)">Palmitoyl (K)</option>
+      <option value="Palmitoyl (Protein N-term)">Palmitoyl (Protein N-term)</option>
+      <option value="Palmitoyl (S)">Palmitoyl (S)</option>
+      <option value="Palmitoyl (T)">Palmitoyl (T)</option>
+      <option value="PEITC (C)">PEITC (C)</option>
+      <option value="PEITC (K)">PEITC (K)</option>
+      <option value="PEITC (N-term)">PEITC (N-term)</option>
+      <option value="Pent(1)HexNAc(1) (S)">Pent(1)HexNAc(1) (S)</option>
+      <option value="Pent(1)HexNAc(1) (T)">Pent(1)HexNAc(1) (T)</option>
+      <option value="Pent(2) (S)">Pent(2) (S)</option>
+      <option value="Pent(2) (T)">Pent(2) (T)</option>
+      <option value="Pentose (S)">Pentose (S)</option>
+      <option value="Pentose (T)">Pentose (T)</option>
+      <option value="Pentylamine (Q)">Pentylamine (Q)</option>
+      <option value="PEO-Iodoacetyl-LC-Biotin (C)">PEO-Iodoacetyl-LC-Biotin (C)</option>
+      <option value="PET (S)">PET (S)</option>
+      <option value="PET (T)">PET (T)</option>
+      <option value="Phe-&gt;Ala (F)">Phe-&gt;Ala (F)</option>
+      <option value="Phe-&gt;Arg (F)">Phe-&gt;Arg (F)</option>
+      <option value="Phe-&gt;Asn (F)">Phe-&gt;Asn (F)</option>
+      <option value="Phe-&gt;Asp (F)">Phe-&gt;Asp (F)</option>
+      <option value="Phe-&gt;CamCys (F)">Phe-&gt;CamCys (F)</option>
+      <option value="Phe-&gt;Cys (F)">Phe-&gt;Cys (F)</option>
+      <option value="Phe-&gt;Gln (F)">Phe-&gt;Gln (F)</option>
+      <option value="Phe-&gt;Glu (F)">Phe-&gt;Glu (F)</option>
+      <option value="Phe-&gt;Gly (F)">Phe-&gt;Gly (F)</option>
+      <option value="Phe-&gt;His (F)">Phe-&gt;His (F)</option>
+      <option value="Phe-&gt;Lys (F)">Phe-&gt;Lys (F)</option>
+      <option value="Phe-&gt;Met (F)">Phe-&gt;Met (F)</option>
+      <option value="Phe-&gt;Pro (F)">Phe-&gt;Pro (F)</option>
+      <option value="Phe-&gt;Ser (F)">Phe-&gt;Ser (F)</option>
+      <option value="Phe-&gt;Thr (F)">Phe-&gt;Thr (F)</option>
+      <option value="Phe-&gt;Trp (F)">Phe-&gt;Trp (F)</option>
+      <option value="Phe-&gt;Tyr (F)">Phe-&gt;Tyr (F)</option>
+      <option value="Phe-&gt;Val (F)">Phe-&gt;Val (F)</option>
+      <option value="Phe-&gt;Xle (F)">Phe-&gt;Xle (F)</option>
+      <option value="Phenylisocyanate (N-term)">Phenylisocyanate (N-term)</option>
+      <option value="Phenylisocyanate:2H(5) (N-term)">Phenylisocyanate:2H(5) (N-term)</option>
+      <option value="phenylsulfonylethyl (C)">phenylsulfonylethyl (C)</option>
+      <option value="Phospho (C)">Phospho (C)</option>
+      <option value="Phospho (D)">Phospho (D)</option>
+      <option value="Phospho (E)">Phospho (E)</option>
+      <option value="Phospho (H)">Phospho (H)</option>
+      <option value="Phospho (K)">Phospho (K)</option>
+      <option value="Phospho (R)">Phospho (R)</option>
+      <option value="Phospho (S)">Phospho (S)</option>
+      <option value="Phospho (T)">Phospho (T)</option>
+      <option value="Phospho (Y)">Phospho (Y)</option>
+      <option value="Phosphoadenosine (H)">Phosphoadenosine (H)</option>
+      <option value="Phosphoadenosine (K)">Phosphoadenosine (K)</option>
+      <option value="Phosphoadenosine (T)">Phosphoadenosine (T)</option>
+      <option value="Phosphoadenosine (Y)">Phosphoadenosine (Y)</option>
+      <option value="PhosphoCytidine (S)">PhosphoCytidine (S)</option>
+      <option value="PhosphoCytidine (T)">PhosphoCytidine (T)</option>
+      <option value="PhosphoCytidine (Y)">PhosphoCytidine (Y)</option>
+      <option value="Phosphogluconoylation (K)">Phosphogluconoylation (K)</option>
+      <option value="Phosphogluconoylation (N-term)">Phosphogluconoylation (N-term)</option>
+      <option value="Phosphoguanosine (H)">Phosphoguanosine (H)</option>
+      <option value="Phosphoguanosine (K)">Phosphoguanosine (K)</option>
+      <option value="PhosphoHex (S)">PhosphoHex (S)</option>
+      <option value="PhosphoHex (T)">PhosphoHex (T)</option>
+      <option value="PhosphoHex(2) (N)">PhosphoHex(2) (N)</option>
+      <option value="PhosphoHex(2) (S)">PhosphoHex(2) (S)</option>
+      <option value="PhosphoHex(2) (T)">PhosphoHex(2) (T)</option>
+      <option value="PhosphoHexNAc (S)">PhosphoHexNAc (S)</option>
+      <option value="PhosphoHexNAc (T)">PhosphoHexNAc (T)</option>
+      <option value="Phosphopantetheine (S)">Phosphopantetheine (S)</option>
+      <option value="Phosphopropargyl (S)">Phosphopropargyl (S)</option>
+      <option value="Phosphopropargyl (T)">Phosphopropargyl (T)</option>
+      <option value="Phosphopropargyl (Y)">Phosphopropargyl (Y)</option>
+      <option value="phosphoRibosyl (D)">phosphoRibosyl (D)</option>
+      <option value="phosphoRibosyl (E)">phosphoRibosyl (E)</option>
+      <option value="phosphoRibosyl (R)">phosphoRibosyl (R)</option>
+      <option value="PhosphoribosyldephosphoCoA (S)">PhosphoribosyldephosphoCoA (S)</option>
+      <option value="PhosphoUridine (H)">PhosphoUridine (H)</option>
+      <option value="PhosphoUridine (Y)">PhosphoUridine (Y)</option>
+      <option value="Phycocyanobilin (C)">Phycocyanobilin (C)</option>
+      <option value="Phycoerythrobilin (C)">Phycoerythrobilin (C)</option>
+      <option value="Phytochromobilin (C)">Phytochromobilin (C)</option>
+      <option value="Piperidine (K)">Piperidine (K)</option>
+      <option value="Piperidine (N-term)">Piperidine (N-term)</option>
+      <option value="Pro-&gt;Ala (P)">Pro-&gt;Ala (P)</option>
+      <option value="Pro-&gt;Arg (P)">Pro-&gt;Arg (P)</option>
+      <option value="Pro-&gt;Asn (P)">Pro-&gt;Asn (P)</option>
+      <option value="Pro-&gt;Asp (P)">Pro-&gt;Asp (P)</option>
+      <option value="Pro-&gt;Cys (P)">Pro-&gt;Cys (P)</option>
+      <option value="Pro-&gt;Gln (P)">Pro-&gt;Gln (P)</option>
+      <option value="Pro-&gt;Glu (P)">Pro-&gt;Glu (P)</option>
+      <option value="Pro-&gt;Gly (P)">Pro-&gt;Gly (P)</option>
+      <option value="Pro-&gt;HAVA (P)">Pro-&gt;HAVA (P)</option>
+      <option value="Pro-&gt;His (P)">Pro-&gt;His (P)</option>
+      <option value="Pro-&gt;Lys (P)">Pro-&gt;Lys (P)</option>
+      <option value="Pro-&gt;Met (P)">Pro-&gt;Met (P)</option>
+      <option value="Pro-&gt;Phe (P)">Pro-&gt;Phe (P)</option>
+      <option value="Pro-&gt;pyro-Glu (P)">Pro-&gt;pyro-Glu (P)</option>
+      <option value="Pro-&gt;Pyrrolidinone (P)">Pro-&gt;Pyrrolidinone (P)</option>
+      <option value="Pro-&gt;Pyrrolidone (P)">Pro-&gt;Pyrrolidone (P)</option>
+      <option value="Pro-&gt;Ser (P)">Pro-&gt;Ser (P)</option>
+      <option value="Pro-&gt;Thr (P)">Pro-&gt;Thr (P)</option>
+      <option value="Pro-&gt;Trp (P)">Pro-&gt;Trp (P)</option>
+      <option value="Pro-&gt;Tyr (P)">Pro-&gt;Tyr (P)</option>
+      <option value="Pro-&gt;Val (P)">Pro-&gt;Val (P)</option>
+      <option value="Pro-&gt;Xle (P)">Pro-&gt;Xle (P)</option>
+      <option value="probiotinhydrazide (P)">probiotinhydrazide (P)</option>
+      <option value="Propargylamine (C-term)">Propargylamine (C-term)</option>
+      <option value="Propargylamine (D)">Propargylamine (D)</option>
+      <option value="Propargylamine (E)">Propargylamine (E)</option>
+      <option value="Propionamide (C)">Propionamide (C)</option>
+      <option value="Propionamide (K)">Propionamide (K)</option>
+      <option value="Propionamide (N-term)">Propionamide (N-term)</option>
+      <option value="Propionamide:2H(3) (C)">Propionamide:2H(3) (C)</option>
+      <option value="Propionyl (K)">Propionyl (K)</option>
+      <option value="Propionyl (N-term)">Propionyl (N-term)</option>
+      <option value="Propionyl (Protein N-term)">Propionyl (Protein N-term)</option>
+      <option value="Propionyl (S)">Propionyl (S)</option>
+      <option value="Propionyl (T)">Propionyl (T)</option>
+      <option value="Propionyl:13C(3) (K)">Propionyl:13C(3) (K)</option>
+      <option value="Propionyl:13C(3) (N-term)">Propionyl:13C(3) (N-term)</option>
+      <option value="Propiophenone (C)">Propiophenone (C)</option>
+      <option value="Propiophenone (H)">Propiophenone (H)</option>
+      <option value="Propiophenone (K)">Propiophenone (K)</option>
+      <option value="Propiophenone (R)">Propiophenone (R)</option>
+      <option value="Propiophenone (S)">Propiophenone (S)</option>
+      <option value="Propiophenone (T)">Propiophenone (T)</option>
+      <option value="Propiophenone (W)">Propiophenone (W)</option>
+      <option value="Propyl (C-term)">Propyl (C-term)</option>
+      <option value="Propyl (D)">Propyl (D)</option>
+      <option value="Propyl (E)">Propyl (E)</option>
+      <option value="Propyl (K)">Propyl (K)</option>
+      <option value="Propyl (N-term)">Propyl (N-term)</option>
+      <option value="Propyl (Protein C-term)">Propyl (Protein C-term)</option>
+      <option value="Propyl:2H(6) (K)">Propyl:2H(6) (K)</option>
+      <option value="Propyl:2H(6) (N-term)">Propyl:2H(6) (N-term)</option>
+      <option value="PropylNAGthiazoline (C)">PropylNAGthiazoline (C)</option>
+      <option value="PS_Hapten (C)">PS_Hapten (C)</option>
+      <option value="PS_Hapten (H)">PS_Hapten (H)</option>
+      <option value="PS_Hapten (K)">PS_Hapten (K)</option>
+      <option value="pupylation (K)">pupylation (K)</option>
+      <option value="Puromycin (C-term)">Puromycin (C-term)</option>
+      <option value="PyMIC (N-term)">PyMIC (N-term)</option>
+      <option value="PyridoxalPhosphate (K)">PyridoxalPhosphate (K)</option>
+      <option value="PyridoxalPhosphateH2 (K)">PyridoxalPhosphateH2 (K)</option>
+      <option value="Pyridylacetyl (K)">Pyridylacetyl (K)</option>
+      <option value="Pyridylacetyl (N-term)">Pyridylacetyl (N-term)</option>
+      <option value="Pyridylethyl (C)">Pyridylethyl (C)</option>
+      <option value="Pyro-carbamidomethyl (N-term C)">Pyro-carbamidomethyl (N-term C)</option>
+      <option value="pyrophospho (S)">pyrophospho (S)</option>
+      <option value="pyrophospho (T)">pyrophospho (T)</option>
+      <option value="PyruvicAcidIminyl (K)">PyruvicAcidIminyl (K)</option>
+      <option value="PyruvicAcidIminyl (Protein N-term C)">PyruvicAcidIminyl (Protein N-term C)</option>
+      <option value="PyruvicAcidIminyl (Protein N-term V)">PyruvicAcidIminyl (Protein N-term V)</option>
+      <option value="QAT (C)">QAT (C)</option>
+      <option value="QAT:2H(3) (C)">QAT:2H(3) (C)</option>
+      <option value="QEQTGG (K)">QEQTGG (K)</option>
+      <option value="QQQTGG (K)">QQQTGG (K)</option>
+      <option value="QTGG (K)">QTGG (K)</option>
+      <option value="Quinone (W)">Quinone (W)</option>
+      <option value="Quinone (Y)">Quinone (Y)</option>
+      <option value="Retinylidene (K)">Retinylidene (K)</option>
+      <option value="RNPXL (N-term K)">RNPXL (N-term K)</option>
+      <option value="RNPXL (N-term R)">RNPXL (N-term R)</option>
+      <option value="RNPXlink1 (C)">RNPXlink1 (C)</option>
+      <option value="RNPXlink2 (F)">RNPXlink2 (F)</option>
+      <option value="RNPXlink2 (K)">RNPXlink2 (K)</option>
+      <option value="RNPXlink2 (L)">RNPXlink2 (L)</option>
+      <option value="RNPXlink3 (C)">RNPXlink3 (C)</option>
+      <option value="RNPXlink3 (F)">RNPXlink3 (F)</option>
+      <option value="RNPXlink4 (C)">RNPXlink4 (C)</option>
+      <option value="RNPXlink5 (F)">RNPXlink5 (F)</option>
+      <option value="RNPXlink5 (Y)">RNPXlink5 (Y)</option>
+      <option value="s-GlcNAc (S)">s-GlcNAc (S)</option>
+      <option value="s-GlcNAc (T)">s-GlcNAc (T)</option>
+      <option value="Saligenin (H)">Saligenin (H)</option>
+      <option value="Saligenin (K)">Saligenin (K)</option>
+      <option value="Ser-&gt;Ala (S)">Ser-&gt;Ala (S)</option>
+      <option value="Ser-&gt;Arg (S)">Ser-&gt;Arg (S)</option>
+      <option value="Ser-&gt;Asn (S)">Ser-&gt;Asn (S)</option>
+      <option value="Ser-&gt;Asp (S)">Ser-&gt;Asp (S)</option>
+      <option value="Ser-&gt;Cys (S)">Ser-&gt;Cys (S)</option>
+      <option value="Ser-&gt;Gln (S)">Ser-&gt;Gln (S)</option>
+      <option value="Ser-&gt;Glu (S)">Ser-&gt;Glu (S)</option>
+      <option value="Ser-&gt;Gly (S)">Ser-&gt;Gly (S)</option>
+      <option value="Ser-&gt;His (S)">Ser-&gt;His (S)</option>
+      <option value="Ser-&gt;LacticAcid (Protein N-term S)">Ser-&gt;LacticAcid (Protein N-term S)</option>
+      <option value="Ser-&gt;Lys (S)">Ser-&gt;Lys (S)</option>
+      <option value="Ser-&gt;Met (S)">Ser-&gt;Met (S)</option>
+      <option value="Ser-&gt;Phe (S)">Ser-&gt;Phe (S)</option>
+      <option value="Ser-&gt;Pro (S)">Ser-&gt;Pro (S)</option>
+      <option value="Ser-&gt;Thr (S)">Ser-&gt;Thr (S)</option>
+      <option value="Ser-&gt;Trp (S)">Ser-&gt;Trp (S)</option>
+      <option value="Ser-&gt;Tyr (S)">Ser-&gt;Tyr (S)</option>
+      <option value="Ser-&gt;Val (S)">Ser-&gt;Val (S)</option>
+      <option value="Ser-&gt;Xle (S)">Ser-&gt;Xle (S)</option>
+      <option value="serotonylation (Q)">serotonylation (Q)</option>
+      <option value="shTMT (K)">shTMT (K)</option>
+      <option value="shTMT (N-term)">shTMT (N-term)</option>
+      <option value="shTMT (Protein N-term)">shTMT (Protein N-term)</option>
+      <option value="SMA (K)">SMA (K)</option>
+      <option value="SMA (N-term)">SMA (N-term)</option>
+      <option value="spermidine (Q)">spermidine (Q)</option>
+      <option value="spermine (Q)">spermine (Q)</option>
+      <option value="SPITC (K)">SPITC (K)</option>
+      <option value="SPITC (N-term)">SPITC (N-term)</option>
+      <option value="SPITC:13C(6) (K)">SPITC:13C(6) (K)</option>
+      <option value="SPITC:13C(6) (N-term)">SPITC:13C(6) (N-term)</option>
+      <option value="Succinyl (K)">Succinyl (K)</option>
+      <option value="Succinyl (N-term)">Succinyl (N-term)</option>
+      <option value="Succinyl (Protein N-term)">Succinyl (Protein N-term)</option>
+      <option value="Succinyl:13C(4) (K)">Succinyl:13C(4) (K)</option>
+      <option value="Succinyl:13C(4) (N-term)">Succinyl:13C(4) (N-term)</option>
+      <option value="Succinyl:2H(4) (K)">Succinyl:2H(4) (K)</option>
+      <option value="Succinyl:2H(4) (N-term)">Succinyl:2H(4) (N-term)</option>
+      <option value="SulfanilicAcid (C-term)">SulfanilicAcid (C-term)</option>
+      <option value="SulfanilicAcid (D)">SulfanilicAcid (D)</option>
+      <option value="SulfanilicAcid (E)">SulfanilicAcid (E)</option>
+      <option value="SulfanilicAcid:13C(6) (C-term)">SulfanilicAcid:13C(6) (C-term)</option>
+      <option value="SulfanilicAcid:13C(6) (D)">SulfanilicAcid:13C(6) (D)</option>
+      <option value="SulfanilicAcid:13C(6) (E)">SulfanilicAcid:13C(6) (E)</option>
+      <option value="Sulfide (C)">Sulfide (C)</option>
+      <option value="Sulfide (D)">Sulfide (D)</option>
+      <option value="Sulfide (W)">Sulfide (W)</option>
+      <option value="Sulfo (C)">Sulfo (C)</option>
+      <option value="Sulfo (S)">Sulfo (S)</option>
+      <option value="Sulfo (T)">Sulfo (T)</option>
+      <option value="Sulfo (Y)">Sulfo (Y)</option>
+      <option value="sulfo+amino (Y)">sulfo+amino (Y)</option>
+      <option value="Sulfo-NHS-LC-LC-Biotin (K)">Sulfo-NHS-LC-LC-Biotin (K)</option>
+      <option value="Sulfo-NHS-LC-LC-Biotin (N-term)">Sulfo-NHS-LC-LC-Biotin (N-term)</option>
+      <option value="SulfoGMBS (C)">SulfoGMBS (C)</option>
+      <option value="SulfurDioxide (C)">SulfurDioxide (C)</option>
+      <option value="SUMO2135 (K)">SUMO2135 (K)</option>
+      <option value="SUMO3549 (K)">SUMO3549 (K)</option>
+      <option value="TAMRA-FP (S)">TAMRA-FP (S)</option>
+      <option value="TAMRA-FP (Y)">TAMRA-FP (Y)</option>
+      <option value="Thiadiazole (C)">Thiadiazole (C)</option>
+      <option value="Thiazolidine (C)">Thiazolidine (C)</option>
+      <option value="Thiazolidine (F)">Thiazolidine (F)</option>
+      <option value="Thiazolidine (H)">Thiazolidine (H)</option>
+      <option value="Thiazolidine (K)">Thiazolidine (K)</option>
+      <option value="Thiazolidine (Protein N-term)">Thiazolidine (Protein N-term)</option>
+      <option value="Thiazolidine (R)">Thiazolidine (R)</option>
+      <option value="Thiazolidine (W)">Thiazolidine (W)</option>
+      <option value="Thiazolidine (Y)">Thiazolidine (Y)</option>
+      <option value="thioacylPA (K)">thioacylPA (K)</option>
+      <option value="Thiophos-S-S-biotin (S)">Thiophos-S-S-biotin (S)</option>
+      <option value="Thiophos-S-S-biotin (T)">Thiophos-S-S-biotin (T)</option>
+      <option value="Thiophos-S-S-biotin (Y)">Thiophos-S-S-biotin (Y)</option>
+      <option value="Thiophospho (S)">Thiophospho (S)</option>
+      <option value="Thiophospho (T)">Thiophospho (T)</option>
+      <option value="Thiophospho (Y)">Thiophospho (Y)</option>
+      <option value="Thr-&gt;Ala (T)">Thr-&gt;Ala (T)</option>
+      <option value="Thr-&gt;Arg (T)">Thr-&gt;Arg (T)</option>
+      <option value="Thr-&gt;Asn (T)">Thr-&gt;Asn (T)</option>
+      <option value="Thr-&gt;Asp (T)">Thr-&gt;Asp (T)</option>
+      <option value="Thr-&gt;Cys (T)">Thr-&gt;Cys (T)</option>
+      <option value="Thr-&gt;Gln (T)">Thr-&gt;Gln (T)</option>
+      <option value="Thr-&gt;Glu (T)">Thr-&gt;Glu (T)</option>
+      <option value="Thr-&gt;Gly (T)">Thr-&gt;Gly (T)</option>
+      <option value="Thr-&gt;His (T)">Thr-&gt;His (T)</option>
+      <option value="Thr-&gt;Lys (T)">Thr-&gt;Lys (T)</option>
+      <option value="Thr-&gt;Met (T)">Thr-&gt;Met (T)</option>
+      <option value="Thr-&gt;Phe (T)">Thr-&gt;Phe (T)</option>
+      <option value="Thr-&gt;Pro (T)">Thr-&gt;Pro (T)</option>
+      <option value="Thr-&gt;Ser (T)">Thr-&gt;Ser (T)</option>
+      <option value="Thr-&gt;Trp (T)">Thr-&gt;Trp (T)</option>
+      <option value="Thr-&gt;Tyr (T)">Thr-&gt;Tyr (T)</option>
+      <option value="Thr-&gt;Val (T)">Thr-&gt;Val (T)</option>
+      <option value="Thr-&gt;Xle (T)">Thr-&gt;Xle (T)</option>
+      <option value="Thrbiotinhydrazide (T)">Thrbiotinhydrazide (T)</option>
+      <option value="Thyroxine (Y)">Thyroxine (Y)</option>
+      <option value="TMAB (K)">TMAB (K)</option>
+      <option value="TMAB (N-term)">TMAB (N-term)</option>
+      <option value="TMAB:2H(9) (K)">TMAB:2H(9) (K)</option>
+      <option value="TMAB:2H(9) (N-term)">TMAB:2H(9) (N-term)</option>
+      <option value="TMPP-Ac (K)">TMPP-Ac (K)</option>
+      <option value="TMPP-Ac (N-term)">TMPP-Ac (N-term)</option>
+      <option value="TMPP-Ac (Y)">TMPP-Ac (Y)</option>
+      <option value="TMPP-Ac:13C(9) (K)">TMPP-Ac:13C(9) (K)</option>
+      <option value="TMPP-Ac:13C(9) (N-term)">TMPP-Ac:13C(9) (N-term)</option>
+      <option value="TMPP-Ac:13C(9) (Y)">TMPP-Ac:13C(9) (Y)</option>
+      <option value="TMT (H)">TMT (H)</option>
+      <option value="TMT (K)">TMT (K)</option>
+      <option value="TMT (N-term)">TMT (N-term)</option>
+      <option value="TMT (Protein N-term)">TMT (Protein N-term)</option>
+      <option value="TMT (S)">TMT (S)</option>
+      <option value="TMT (T)">TMT (T)</option>
+      <option value="TMT2plex (H)">TMT2plex (H)</option>
+      <option value="TMT2plex (K)">TMT2plex (K)</option>
+      <option value="TMT2plex (N-term)">TMT2plex (N-term)</option>
+      <option value="TMT2plex (Protein N-term)">TMT2plex (Protein N-term)</option>
+      <option value="TMT2plex (S)">TMT2plex (S)</option>
+      <option value="TMT2plex (T)">TMT2plex (T)</option>
+      <option value="TMT6plex (H)">TMT6plex (H)</option>
+      <option value="TMT6plex (K)">TMT6plex (K)</option>
+      <option value="TMT6plex (N-term)">TMT6plex (N-term)</option>
+      <option value="TMT6plex (Protein N-term)">TMT6plex (Protein N-term)</option>
+      <option value="TMT6plex (S)">TMT6plex (S)</option>
+      <option value="TMT6plex (T)">TMT6plex (T)</option>
+      <option value="TMTpro (H)">TMTpro (H)</option>
+      <option value="TMTpro (K)">TMTpro (K)</option>
+      <option value="TMTpro (N-term)">TMTpro (N-term)</option>
+      <option value="TMTpro (Protein N-term)">TMTpro (Protein N-term)</option>
+      <option value="TMTpro (S)">TMTpro (S)</option>
+      <option value="TMTpro (T)">TMTpro (T)</option>
+      <option value="TMTpro_zero (H)">TMTpro_zero (H)</option>
+      <option value="TMTpro_zero (K)">TMTpro_zero (K)</option>
+      <option value="TMTpro_zero (N-term)">TMTpro_zero (N-term)</option>
+      <option value="TMTpro_zero (Protein N-term)">TMTpro_zero (Protein N-term)</option>
+      <option value="TMTpro_zero (S)">TMTpro_zero (S)</option>
+      <option value="TMTpro_zero (T)">TMTpro_zero (T)</option>
+      <option value="TNBS (K)">TNBS (K)</option>
+      <option value="TNBS (N-term)">TNBS (N-term)</option>
+      <option value="trifluoro (L)">trifluoro (L)</option>
+      <option value="Triiodo (Y)">Triiodo (Y)</option>
+      <option value="Triiodothyronine (Y)">Triiodothyronine (Y)</option>
+      <option value="Trimethyl (K)">Trimethyl (K)</option>
+      <option value="Trimethyl (Protein N-term A)">Trimethyl (Protein N-term A)</option>
+      <option value="Trimethyl (R)">Trimethyl (R)</option>
+      <option value="Trimethyl:13C(3)2H(9) (K)">Trimethyl:13C(3)2H(9) (K)</option>
+      <option value="Trimethyl:13C(3)2H(9) (R)">Trimethyl:13C(3)2H(9) (R)</option>
+      <option value="Trimethyl:2H(9) (K)">Trimethyl:2H(9) (K)</option>
+      <option value="Trimethyl:2H(9) (R)">Trimethyl:2H(9) (R)</option>
+      <option value="Trioxidation (C)">Trioxidation (C)</option>
+      <option value="Trioxidation (F)">Trioxidation (F)</option>
+      <option value="Trioxidation (W)">Trioxidation (W)</option>
+      <option value="Trioxidation (Y)">Trioxidation (Y)</option>
+      <option value="Tripalmitate (Protein N-term C)">Tripalmitate (Protein N-term C)</option>
+      <option value="Tris (N)">Tris (N)</option>
+      <option value="Triton (C-term)">Triton (C-term)</option>
+      <option value="Triton (N-term)">Triton (N-term)</option>
+      <option value="Trp-&gt;Ala (W)">Trp-&gt;Ala (W)</option>
+      <option value="Trp-&gt;Arg (W)">Trp-&gt;Arg (W)</option>
+      <option value="Trp-&gt;Asn (W)">Trp-&gt;Asn (W)</option>
+      <option value="Trp-&gt;Asp (W)">Trp-&gt;Asp (W)</option>
+      <option value="Trp-&gt;Cys (W)">Trp-&gt;Cys (W)</option>
+      <option value="Trp-&gt;Gln (W)">Trp-&gt;Gln (W)</option>
+      <option value="Trp-&gt;Glu (W)">Trp-&gt;Glu (W)</option>
+      <option value="Trp-&gt;Gly (W)">Trp-&gt;Gly (W)</option>
+      <option value="Trp-&gt;His (W)">Trp-&gt;His (W)</option>
+      <option value="Trp-&gt;Hydroxykynurenin (W)">Trp-&gt;Hydroxykynurenin (W)</option>
+      <option value="Trp-&gt;Kynurenin (W)">Trp-&gt;Kynurenin (W)</option>
+      <option value="Trp-&gt;Lys (W)">Trp-&gt;Lys (W)</option>
+      <option value="Trp-&gt;Met (W)">Trp-&gt;Met (W)</option>
+      <option value="Trp-&gt;Oxolactone (W)">Trp-&gt;Oxolactone (W)</option>
+      <option value="Trp-&gt;Phe (W)">Trp-&gt;Phe (W)</option>
+      <option value="Trp-&gt;Pro (W)">Trp-&gt;Pro (W)</option>
+      <option value="Trp-&gt;Ser (W)">Trp-&gt;Ser (W)</option>
+      <option value="Trp-&gt;Thr (W)">Trp-&gt;Thr (W)</option>
+      <option value="Trp-&gt;Tyr (W)">Trp-&gt;Tyr (W)</option>
+      <option value="Trp-&gt;Val (W)">Trp-&gt;Val (W)</option>
+      <option value="Trp-&gt;Xle (W)">Trp-&gt;Xle (W)</option>
+      <option value="Tween20 (N-term)">Tween20 (N-term)</option>
+      <option value="Tween80 (C-term)">Tween80 (C-term)</option>
+      <option value="Tyr-&gt;Ala (Y)">Tyr-&gt;Ala (Y)</option>
+      <option value="Tyr-&gt;Arg (Y)">Tyr-&gt;Arg (Y)</option>
+      <option value="Tyr-&gt;Asn (Y)">Tyr-&gt;Asn (Y)</option>
+      <option value="Tyr-&gt;Asp (Y)">Tyr-&gt;Asp (Y)</option>
+      <option value="Tyr-&gt;Cys (Y)">Tyr-&gt;Cys (Y)</option>
+      <option value="Tyr-&gt;Dha (Y)">Tyr-&gt;Dha (Y)</option>
+      <option value="Tyr-&gt;Gln (Y)">Tyr-&gt;Gln (Y)</option>
+      <option value="Tyr-&gt;Glu (Y)">Tyr-&gt;Glu (Y)</option>
+      <option value="Tyr-&gt;Gly (Y)">Tyr-&gt;Gly (Y)</option>
+      <option value="Tyr-&gt;His (Y)">Tyr-&gt;His (Y)</option>
+      <option value="Tyr-&gt;Lys (Y)">Tyr-&gt;Lys (Y)</option>
+      <option value="Tyr-&gt;Met (Y)">Tyr-&gt;Met (Y)</option>
+      <option value="Tyr-&gt;Phe (Y)">Tyr-&gt;Phe (Y)</option>
+      <option value="Tyr-&gt;Pro (Y)">Tyr-&gt;Pro (Y)</option>
+      <option value="Tyr-&gt;Ser (Y)">Tyr-&gt;Ser (Y)</option>
+      <option value="Tyr-&gt;Thr (Y)">Tyr-&gt;Thr (Y)</option>
+      <option value="Tyr-&gt;Trp (Y)">Tyr-&gt;Trp (Y)</option>
+      <option value="Tyr-&gt;Val (Y)">Tyr-&gt;Val (Y)</option>
+      <option value="Tyr-&gt;Xle (Y)">Tyr-&gt;Xle (Y)</option>
+      <option value="Ub-amide (C)">Ub-amide (C)</option>
+      <option value="Ub-Br2 (C)">Ub-Br2 (C)</option>
+      <option value="Ub-fluorescein (C)">Ub-fluorescein (C)</option>
+      <option value="Ub-VME (C)">Ub-VME (C)</option>
+      <option value="UgiJoullie (D)">UgiJoullie (D)</option>
+      <option value="UgiJoullie (E)">UgiJoullie (E)</option>
+      <option value="UgiJoullieProGly (D)">UgiJoullieProGly (D)</option>
+      <option value="UgiJoullieProGly (E)">UgiJoullieProGly (E)</option>
+      <option value="UgiJoullieProGlyProGly (D)">UgiJoullieProGlyProGly (D)</option>
+      <option value="UgiJoullieProGlyProGly (E)">UgiJoullieProGlyProGly (E)</option>
+      <option value="Unknown:162 (C-term)">Unknown:162 (C-term)</option>
+      <option value="Unknown:162 (D)">Unknown:162 (D)</option>
+      <option value="Unknown:162 (E)">Unknown:162 (E)</option>
+      <option value="Unknown:162 (N-term)">Unknown:162 (N-term)</option>
+      <option value="Unknown:177 (C-term)">Unknown:177 (C-term)</option>
+      <option value="Unknown:177 (D)">Unknown:177 (D)</option>
+      <option value="Unknown:177 (E)">Unknown:177 (E)</option>
+      <option value="Unknown:177 (N-term)">Unknown:177 (N-term)</option>
+      <option value="Unknown:210 (C-term)">Unknown:210 (C-term)</option>
+      <option value="Unknown:210 (D)">Unknown:210 (D)</option>
+      <option value="Unknown:210 (E)">Unknown:210 (E)</option>
+      <option value="Unknown:210 (N-term)">Unknown:210 (N-term)</option>
+      <option value="Unknown:216 (C-term)">Unknown:216 (C-term)</option>
+      <option value="Unknown:216 (D)">Unknown:216 (D)</option>
+      <option value="Unknown:216 (E)">Unknown:216 (E)</option>
+      <option value="Unknown:216 (N-term)">Unknown:216 (N-term)</option>
+      <option value="Unknown:234 (C-term)">Unknown:234 (C-term)</option>
+      <option value="Unknown:234 (D)">Unknown:234 (D)</option>
+      <option value="Unknown:234 (E)">Unknown:234 (E)</option>
+      <option value="Unknown:234 (N-term)">Unknown:234 (N-term)</option>
+      <option value="Unknown:248 (C-term)">Unknown:248 (C-term)</option>
+      <option value="Unknown:248 (D)">Unknown:248 (D)</option>
+      <option value="Unknown:248 (E)">Unknown:248 (E)</option>
+      <option value="Unknown:248 (N-term)">Unknown:248 (N-term)</option>
+      <option value="Unknown:250 (C-term)">Unknown:250 (C-term)</option>
+      <option value="Unknown:250 (D)">Unknown:250 (D)</option>
+      <option value="Unknown:250 (E)">Unknown:250 (E)</option>
+      <option value="Unknown:250 (N-term)">Unknown:250 (N-term)</option>
+      <option value="Unknown:302 (C-term)">Unknown:302 (C-term)</option>
+      <option value="Unknown:302 (D)">Unknown:302 (D)</option>
+      <option value="Unknown:302 (E)">Unknown:302 (E)</option>
+      <option value="Unknown:302 (N-term)">Unknown:302 (N-term)</option>
+      <option value="Unknown:306 (C-term)">Unknown:306 (C-term)</option>
+      <option value="Unknown:306 (D)">Unknown:306 (D)</option>
+      <option value="Unknown:306 (E)">Unknown:306 (E)</option>
+      <option value="Unknown:306 (N-term)">Unknown:306 (N-term)</option>
+      <option value="Unknown:420 (C-term)">Unknown:420 (C-term)</option>
+      <option value="Unknown:420 (N-term)">Unknown:420 (N-term)</option>
+      <option value="Val-&gt;Ala (V)">Val-&gt;Ala (V)</option>
+      <option value="Val-&gt;Arg (V)">Val-&gt;Arg (V)</option>
+      <option value="Val-&gt;Asn (V)">Val-&gt;Asn (V)</option>
+      <option value="Val-&gt;Asp (V)">Val-&gt;Asp (V)</option>
+      <option value="Val-&gt;Cys (V)">Val-&gt;Cys (V)</option>
+      <option value="Val-&gt;Gln (V)">Val-&gt;Gln (V)</option>
+      <option value="Val-&gt;Glu (V)">Val-&gt;Glu (V)</option>
+      <option value="Val-&gt;Gly (V)">Val-&gt;Gly (V)</option>
+      <option value="Val-&gt;His (V)">Val-&gt;His (V)</option>
+      <option value="Val-&gt;Lys (V)">Val-&gt;Lys (V)</option>
+      <option value="Val-&gt;Met (V)">Val-&gt;Met (V)</option>
+      <option value="Val-&gt;Phe (V)">Val-&gt;Phe (V)</option>
+      <option value="Val-&gt;Pro (V)">Val-&gt;Pro (V)</option>
+      <option value="Val-&gt;Ser (V)">Val-&gt;Ser (V)</option>
+      <option value="Val-&gt;Thr (V)">Val-&gt;Thr (V)</option>
+      <option value="Val-&gt;Trp (V)">Val-&gt;Trp (V)</option>
+      <option value="Val-&gt;Tyr (V)">Val-&gt;Tyr (V)</option>
+      <option value="Val-&gt;Xle (V)">Val-&gt;Xle (V)</option>
+      <option value="VFQQQTGG (K)">VFQQQTGG (K)</option>
+      <option value="VIEVYQEQTGG (K)">VIEVYQEQTGG (K)</option>
+      <option value="Withaferin (C)">Withaferin (C)</option>
+      <option value="Xle-&gt;Ala (I)">Xle-&gt;Ala (I)</option>
+      <option value="Xle-&gt;Ala (L)">Xle-&gt;Ala (L)</option>
+      <option value="Xle-&gt;Arg (I)">Xle-&gt;Arg (I)</option>
+      <option value="Xle-&gt;Arg (L)">Xle-&gt;Arg (L)</option>
+      <option value="Xle-&gt;Asn (I)">Xle-&gt;Asn (I)</option>
+      <option value="Xle-&gt;Asn (L)">Xle-&gt;Asn (L)</option>
+      <option value="Xle-&gt;Asp (I)">Xle-&gt;Asp (I)</option>
+      <option value="Xle-&gt;Asp (L)">Xle-&gt;Asp (L)</option>
+      <option value="Xle-&gt;Cys (I)">Xle-&gt;Cys (I)</option>
+      <option value="Xle-&gt;Cys (L)">Xle-&gt;Cys (L)</option>
+      <option value="Xle-&gt;Gln (I)">Xle-&gt;Gln (I)</option>
+      <option value="Xle-&gt;Gln (L)">Xle-&gt;Gln (L)</option>
+      <option value="Xle-&gt;Glu (I)">Xle-&gt;Glu (I)</option>
+      <option value="Xle-&gt;Glu (L)">Xle-&gt;Glu (L)</option>
+      <option value="Xle-&gt;Gly (I)">Xle-&gt;Gly (I)</option>
+      <option value="Xle-&gt;Gly (L)">Xle-&gt;Gly (L)</option>
+      <option value="Xle-&gt;His (I)">Xle-&gt;His (I)</option>
+      <option value="Xle-&gt;His (L)">Xle-&gt;His (L)</option>
+      <option value="Xle-&gt;Lys (I)">Xle-&gt;Lys (I)</option>
+      <option value="Xle-&gt;Lys (L)">Xle-&gt;Lys (L)</option>
+      <option value="Xle-&gt;Met (I)">Xle-&gt;Met (I)</option>
+      <option value="Xle-&gt;Met (L)">Xle-&gt;Met (L)</option>
+      <option value="Xle-&gt;Phe (I)">Xle-&gt;Phe (I)</option>
+      <option value="Xle-&gt;Phe (L)">Xle-&gt;Phe (L)</option>
+      <option value="Xle-&gt;Pro (I)">Xle-&gt;Pro (I)</option>
+      <option value="Xle-&gt;Pro (L)">Xle-&gt;Pro (L)</option>
+      <option value="Xle-&gt;Ser (I)">Xle-&gt;Ser (I)</option>
+      <option value="Xle-&gt;Ser (L)">Xle-&gt;Ser (L)</option>
+      <option value="Xle-&gt;Thr (I)">Xle-&gt;Thr (I)</option>
+      <option value="Xle-&gt;Thr (L)">Xle-&gt;Thr (L)</option>
+      <option value="Xle-&gt;Trp (I)">Xle-&gt;Trp (I)</option>
+      <option value="Xle-&gt;Trp (L)">Xle-&gt;Trp (L)</option>
+      <option value="Xle-&gt;Tyr (I)">Xle-&gt;Tyr (I)</option>
+      <option value="Xle-&gt;Tyr (L)">Xle-&gt;Tyr (L)</option>
+      <option value="Xle-&gt;Val (I)">Xle-&gt;Val (I)</option>
+      <option value="Xle-&gt;Val (L)">Xle-&gt;Val (L)</option>
+      <option value="Xlink:B10621 (C)">Xlink:B10621 (C)</option>
+      <option value="Xlink:BMOE (C)">Xlink:BMOE (C)</option>
+      <option value="Xlink:BS2G[113] (K)">Xlink:BS2G[113] (K)</option>
+      <option value="Xlink:BS2G[113] (Protein N-term)">Xlink:BS2G[113] (Protein N-term)</option>
+      <option value="Xlink:BS2G[114] (K)">Xlink:BS2G[114] (K)</option>
+      <option value="Xlink:BS2G[114] (Protein N-term)">Xlink:BS2G[114] (Protein N-term)</option>
+      <option value="Xlink:BS2G[217] (K)">Xlink:BS2G[217] (K)</option>
+      <option value="Xlink:BS2G[217] (Protein N-term)">Xlink:BS2G[217] (Protein N-term)</option>
+      <option value="Xlink:BS2G[96] (K)">Xlink:BS2G[96] (K)</option>
+      <option value="Xlink:BS2G[96] (Protein N-term)">Xlink:BS2G[96] (Protein N-term)</option>
+      <option value="Xlink:BuUrBu[111] (K)">Xlink:BuUrBu[111] (K)</option>
+      <option value="Xlink:BuUrBu[111] (Protein N-term)">Xlink:BuUrBu[111] (Protein N-term)</option>
+      <option value="Xlink:BuUrBu[196] (K)">Xlink:BuUrBu[196] (K)</option>
+      <option value="Xlink:BuUrBu[196] (Protein N-term)">Xlink:BuUrBu[196] (Protein N-term)</option>
+      <option value="Xlink:BuUrBu[213] (K)">Xlink:BuUrBu[213] (K)</option>
+      <option value="Xlink:BuUrBu[213] (Protein N-term)">Xlink:BuUrBu[213] (Protein N-term)</option>
+      <option value="Xlink:BuUrBu[214] (K)">Xlink:BuUrBu[214] (K)</option>
+      <option value="Xlink:BuUrBu[214] (Protein N-term)">Xlink:BuUrBu[214] (Protein N-term)</option>
+      <option value="Xlink:BuUrBu[317] (K)">Xlink:BuUrBu[317] (K)</option>
+      <option value="Xlink:BuUrBu[317] (Protein N-term)">Xlink:BuUrBu[317] (Protein N-term)</option>
+      <option value="Xlink:BuUrBu[85] (K)">Xlink:BuUrBu[85] (K)</option>
+      <option value="Xlink:BuUrBu[85] (Protein N-term)">Xlink:BuUrBu[85] (Protein N-term)</option>
+      <option value="Xlink:DFDNB (K)">Xlink:DFDNB (K)</option>
+      <option value="Xlink:DFDNB (N)">Xlink:DFDNB (N)</option>
+      <option value="Xlink:DFDNB (Q)">Xlink:DFDNB (Q)</option>
+      <option value="Xlink:DFDNB (R)">Xlink:DFDNB (R)</option>
+      <option value="Xlink:DMP[122] (K)">Xlink:DMP[122] (K)</option>
+      <option value="Xlink:DMP[122] (Protein N-term)">Xlink:DMP[122] (Protein N-term)</option>
+      <option value="Xlink:DMP[139] (K)">Xlink:DMP[139] (K)</option>
+      <option value="Xlink:DMP[139] (Protein N-term)">Xlink:DMP[139] (Protein N-term)</option>
+      <option value="Xlink:DMP[140] (K)">Xlink:DMP[140] (K)</option>
+      <option value="Xlink:DMP[140] (Protein N-term)">Xlink:DMP[140] (Protein N-term)</option>
+      <option value="Xlink:DMP[154] (K)">Xlink:DMP[154] (K)</option>
+      <option value="Xlink:DMP[154] (Protein N-term)">Xlink:DMP[154] (Protein N-term)</option>
+      <option value="Xlink:DSS[138] (K)">Xlink:DSS[138] (K)</option>
+      <option value="Xlink:DSS[138] (Protein N-term)">Xlink:DSS[138] (Protein N-term)</option>
+      <option value="Xlink:DSS[155] (K)">Xlink:DSS[155] (K)</option>
+      <option value="Xlink:DSS[155] (Protein N-term)">Xlink:DSS[155] (Protein N-term)</option>
+      <option value="Xlink:DSS[156] (K)">Xlink:DSS[156] (K)</option>
+      <option value="Xlink:DSS[156] (Protein N-term)">Xlink:DSS[156] (Protein N-term)</option>
+      <option value="Xlink:DSS[259] (K)">Xlink:DSS[259] (K)</option>
+      <option value="Xlink:DSS[259] (Protein N-term)">Xlink:DSS[259] (Protein N-term)</option>
+      <option value="Xlink:DSSO[104] (K)">Xlink:DSSO[104] (K)</option>
+      <option value="Xlink:DSSO[104] (Protein N-term)">Xlink:DSSO[104] (Protein N-term)</option>
+      <option value="Xlink:DSSO[158] (K)">Xlink:DSSO[158] (K)</option>
+      <option value="Xlink:DSSO[158] (Protein N-term)">Xlink:DSSO[158] (Protein N-term)</option>
+      <option value="Xlink:DSSO[175] (K)">Xlink:DSSO[175] (K)</option>
+      <option value="Xlink:DSSO[175] (Protein N-term)">Xlink:DSSO[175] (Protein N-term)</option>
+      <option value="Xlink:DSSO[176] (K)">Xlink:DSSO[176] (K)</option>
+      <option value="Xlink:DSSO[176] (Protein N-term)">Xlink:DSSO[176] (Protein N-term)</option>
+      <option value="Xlink:DSSO[279] (K)">Xlink:DSSO[279] (K)</option>
+      <option value="Xlink:DSSO[279] (Protein N-term)">Xlink:DSSO[279] (Protein N-term)</option>
+      <option value="Xlink:DSSO[54] (K)">Xlink:DSSO[54] (K)</option>
+      <option value="Xlink:DSSO[54] (Protein N-term)">Xlink:DSSO[54] (Protein N-term)</option>
+      <option value="Xlink:DSSO[86] (K)">Xlink:DSSO[86] (K)</option>
+      <option value="Xlink:DSSO[86] (Protein N-term)">Xlink:DSSO[86] (Protein N-term)</option>
+      <option value="Xlink:DST[114] (K)">Xlink:DST[114] (K)</option>
+      <option value="Xlink:DST[114] (Protein N-term)">Xlink:DST[114] (Protein N-term)</option>
+      <option value="Xlink:DST[132] (K)">Xlink:DST[132] (K)</option>
+      <option value="Xlink:DST[132] (Protein N-term)">Xlink:DST[132] (Protein N-term)</option>
+      <option value="Xlink:DST[56] (K)">Xlink:DST[56] (K)</option>
+      <option value="Xlink:DST[56] (Protein N-term)">Xlink:DST[56] (Protein N-term)</option>
+      <option value="Xlink:DTBP[172] (K)">Xlink:DTBP[172] (K)</option>
+      <option value="Xlink:DTBP[172] (Protein N-term)">Xlink:DTBP[172] (Protein N-term)</option>
+      <option value="Xlink:DTBP[87] (K)">Xlink:DTBP[87] (K)</option>
+      <option value="Xlink:DTBP[87] (Protein N-term)">Xlink:DTBP[87] (Protein N-term)</option>
+      <option value="Xlink:DTSSP[174] (K)">Xlink:DTSSP[174] (K)</option>
+      <option value="Xlink:DTSSP[174] (Protein N-term)">Xlink:DTSSP[174] (Protein N-term)</option>
+      <option value="Xlink:DTSSP[192] (K)">Xlink:DTSSP[192] (K)</option>
+      <option value="Xlink:DTSSP[192] (Protein N-term)">Xlink:DTSSP[192] (Protein N-term)</option>
+      <option value="Xlink:DTSSP[88] (K)">Xlink:DTSSP[88] (K)</option>
+      <option value="Xlink:DTSSP[88] (Protein N-term)">Xlink:DTSSP[88] (Protein N-term)</option>
+      <option value="Xlink:EGS[115] (K)">Xlink:EGS[115] (K)</option>
+      <option value="Xlink:EGS[115] (Protein N-term)">Xlink:EGS[115] (Protein N-term)</option>
+      <option value="Xlink:EGS[226] (K)">Xlink:EGS[226] (K)</option>
+      <option value="Xlink:EGS[226] (Protein N-term)">Xlink:EGS[226] (Protein N-term)</option>
+      <option value="Xlink:EGS[244] (K)">Xlink:EGS[244] (K)</option>
+      <option value="Xlink:EGS[244] (Protein N-term)">Xlink:EGS[244] (Protein N-term)</option>
+      <option value="Xlink:SMCC[219] (C)">Xlink:SMCC[219] (C)</option>
+      <option value="Xlink:SMCC[219] (K)">Xlink:SMCC[219] (K)</option>
+      <option value="Xlink:SMCC[219] (Protein N-term)">Xlink:SMCC[219] (Protein N-term)</option>
+      <option value="Xlink:SMCC[237] (C)">Xlink:SMCC[237] (C)</option>
+      <option value="Xlink:SMCC[237] (K)">Xlink:SMCC[237] (K)</option>
+      <option value="Xlink:SMCC[237] (Protein N-term)">Xlink:SMCC[237] (Protein N-term)</option>
+      <option value="Xlink:SMCC[321] (C)">Xlink:SMCC[321] (C)</option>
+      <option value="ZGB (K)">ZGB (K)</option>
+      <option value="ZGB (N-term)">ZGB (N-term)</option>
+      <option value="ZQG (K)">ZQG (K)</option>
+      <expand macro="list_string_san"/>
+    </param>
+    <param name="presets" argument="-presets" display="radio" type="select" optional="false" label="Add predefined sets, as shortcut to manually specifying a lot of modifications" help="">
+      <option value="none" selected="true">none</option>
+      <option value="N15">N15</option>
+      <expand macro="list_string_san"/>
+    </param>
+    <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="ctd_out_FLAG">Output used ctd (ini) configuration file</option>
+    </param>
+  </inputs>
+  <outputs>
+    <data name="out" label="${tool.name} on ${on_string}: out" format="idxml"/>
+    <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_StaticModification"/>
+    <expand macro="manutest_StaticModification"/>
+  </tests>
+  <help><![CDATA[Applies a set of modifications to all PeptideIDs in an idXML file.
+
+
+For more information, visit http://www.openms.de/doxygen/release/2.6.0/html/UTILS_StaticModification.html]]></help>
+  <expand macro="references"/>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/filetypes.txt	Tue Oct 13 20:26:46 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 20:26:46 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 20:26:46 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 20:26:46 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 20:26:46 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 20:26:46 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 20:26:46 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 20:26:46 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 20:26:46 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 20:26:46 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 20:26:46 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 20:26:46 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 20:26:46 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 20:26:46 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 20:26:46 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 20:26:46 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 20:26:46 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