diff MSSimulator.xml @ 13:9e6a371d539b draft default tip

planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 3d1e5f37fd16524a415f707772eeb7ead848c5e3
author galaxyp
date Thu, 01 Dec 2022 19:08:01 +0000
parents 04228172e123
children
line wrap: on
line diff
--- a/MSSimulator.xml	Fri Nov 06 20:26:22 2020 +0000
+++ b/MSSimulator.xml	Thu Dec 01 19:08:01 2022 +0000
@@ -1,13 +1,11 @@
 <?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="MSSimulator" name="MSSimulator" version="@TOOL_VERSION@+galaxy@GALAXY_VERSION@" profile="20.05">
+<tool id="MSSimulator" name="MSSimulator" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="21.05">
   <description>A highly configurable simulator for mass spectrometry experiments.</description>
   <macros>
     <token name="@EXECUTABLE@">MSSimulator</token>
     <import>macros.xml</import>
-    <import>macros_autotest.xml</import>
-    <import>macros_test.xml</import>
   </macros>
   <expand macro="requirements"/>
   <expand macro="stdio"/>
@@ -16,8 +14,13 @@
 #import re
 
 ## Preprocessing
-mkdir in &&
-${ ' '.join(["ln -s '%s' 'in/%s.%s' &&" % (_, re.sub('[^\w\-_]', '_', _.element_identifier), $gxy2omsext(_.ext)) for _ in $in if _]) }
+mkdir in_cond.in &&
+#if $in_cond.in_select == "no"
+mkdir ${' '.join(["'in_cond.in/%s'" % (i) for i, f in enumerate($in_cond.in) if f])} && 
+${' '.join(["ln -s '%s' 'in_cond.in/%s/%s.%s' && " % (f, i, re.sub('[^\w\-_]', '_', f.element_identifier), $gxy2omsext(f.ext)) for i, f in enumerate($in_cond.in) if f])}
+#else
+ln -s '$in_cond.in' 'in_cond.in/${re.sub("[^\w\-_]", "_", $in_cond.in.element_identifier)}.$gxy2omsext($in_cond.in.ext)' &&
+#end if
 #if "out_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
   mkdir out &&
 #end if
@@ -47,7 +50,11 @@
 python3 '$__tool_directory__/fill_ctd.py' '@EXECUTABLE@.ctd' '$args_json' '$hardcoded_json' &&
 @EXECUTABLE@ -ini @EXECUTABLE@.ctd
 -in
-${' '.join(["'in/%s.%s'"%(re.sub('[^\w\-_]', '_', _.element_identifier), $gxy2omsext(_.ext)) for _ in $in if _])}
+#if $in_cond.in_select == "no"
+${' '.join(["'in_cond.in/%s/%s.%s'"%(i, re.sub('[^\w\-_]', '_', f.element_identifier), $gxy2omsext(f.ext)) for i, f in enumerate($in_cond.in) if f])}
+#else
+'in_cond.in/${re.sub("[^\w\-_]", "_", $in_cond.in.element_identifier)}.$gxy2omsext($in_cond.in.ext)'
+#end if
 #if "out_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
   -out
   'out/output.${gxy2omsext("mzml")}'
@@ -107,53 +114,64 @@
 #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>
+    <configfile name="hardcoded_json"><![CDATA[{"log": "log.txt", "threads": "\${GALAXY_SLOTS:-1}", "no_progress": true, "algorithm": {"MSSim": {"RT": {"HPLC": {"model_file": "SIMULATION/RTPredict.model"}}, "Detectability": {"dt_model_file": "SIMULATION/DTPredict.model"}}}}]]></configfile>
   </configfiles>
   <inputs>
-    <param name="in" argument="-in" type="data" format="fasta" multiple="true" optional="false" label="Input protein sequences" help=" select fasta data sets(s)"/>
+    <conditional name="in_cond">
+      <param name="in_select" type="select" label="Run tool in batch mode for -in">
+        <option value="no">No: process all datasets jointly</option>
+        <option value="yes">Yes: process each dataset in an independent job</option>
+      </param>
+      <when value="no">
+        <param argument="-in" type="data" format="fasta" multiple="true" optional="false" label="Input protein sequences" help=" select fasta data sets(s)"/>
+      </when>
+      <when value="yes">
+        <param argument="-in" type="data" format="fasta" multiple="false" optional="false" label="Input protein sequences" help=" select fasta data sets(s)"/>
+      </when>
+    </conditional>
     <section name="algorithm" title="Algorithm parameters section" help="" expanded="false">
       <section name="MSSim" title="" help="" expanded="false">
         <section name="Digestion" title="" help="" expanded="false">
-          <param name="enzyme" argument="-algorithm:MSSim:Digestion:enzyme" type="select" optional="false" label="Enzyme to use for digestion (select 'no cleavage' to skip digestion)" help="">
+          <param name="enzyme" argument="-algorithm:MSSim:Digestion:enzyme" type="select" optional="true" label="Enzyme to use for digestion (select 'no cleavage' to skip digestion)" help="">
+            <option value="Asp-N/B">Asp-N/B</option>
+            <option value="Asp-N_ambic">Asp-N_ambic</option>
+            <option value="Chymotrypsin">Chymotrypsin</option>
+            <option value="2-iodobenzoate">2-iodobenzoate</option>
+            <option value="iodosobenzoate">iodosobenzoate</option>
+            <option value="Arg-C">Arg-C</option>
+            <option value="Chymotrypsin/P">Chymotrypsin/P</option>
+            <option value="CNBr">CNBr</option>
+            <option value="Formic_acid">Formic_acid</option>
+            <option value="Arg-C/P">Arg-C/P</option>
+            <option value="Asp-N">Asp-N</option>
+            <option value="cyanogen-bromide">cyanogen-bromide</option>
+            <option value="Clostripain/P">Clostripain/P</option>
+            <option value="elastase-trypsin-chymotrypsin">elastase-trypsin-chymotrypsin</option>
+            <option value="no cleavage">no cleavage</option>
+            <option value="unspecific cleavage">unspecific cleavage</option>
+            <option value="Lys-C">Lys-C</option>
+            <option value="Lys-N">Lys-N</option>
+            <option value="Lys-C/P">Lys-C/P</option>
+            <option value="PepsinA">PepsinA</option>
+            <option value="TrypChymo">TrypChymo</option>
             <option value="Trypsin/P">Trypsin/P</option>
             <option value="V8-DE">V8-DE</option>
             <option value="V8-E">V8-E</option>
             <option value="leukocyte elastase">leukocyte elastase</option>
-            <option value="Asp-N/B">Asp-N/B</option>
-            <option value="Asp-N_ambic">Asp-N_ambic</option>
-            <option value="Chymotrypsin">Chymotrypsin</option>
-            <option value="Chymotrypsin/P">Chymotrypsin/P</option>
-            <option value="CNBr">CNBr</option>
-            <option value="Formic_acid">Formic_acid</option>
-            <option value="Lys-C">Lys-C</option>
             <option value="proline endopeptidase">proline endopeptidase</option>
             <option value="glutamyl endopeptidase">glutamyl endopeptidase</option>
             <option value="Alpha-lytic protease">Alpha-lytic protease</option>
-            <option value="2-iodobenzoate">2-iodobenzoate</option>
-            <option value="iodosobenzoate">iodosobenzoate</option>
             <option value="staphylococcal protease/D">staphylococcal protease/D</option>
             <option value="proline-endopeptidase/HKR">proline-endopeptidase/HKR</option>
             <option value="Glu-C+P">Glu-C+P</option>
             <option value="PepsinA + P">PepsinA + P</option>
-            <option value="cyanogen-bromide">cyanogen-bromide</option>
-            <option value="Clostripain/P">Clostripain/P</option>
-            <option value="elastase-trypsin-chymotrypsin">elastase-trypsin-chymotrypsin</option>
-            <option value="Arg-C">Arg-C</option>
-            <option value="Arg-C/P">Arg-C/P</option>
-            <option value="Asp-N">Asp-N</option>
-            <option value="no cleavage">no cleavage</option>
-            <option value="unspecific cleavage">unspecific cleavage</option>
-            <option value="Lys-N">Lys-N</option>
-            <option value="Lys-C/P">Lys-C/P</option>
-            <option value="PepsinA">PepsinA</option>
-            <option value="TrypChymo">TrypChymo</option>
             <option value="Trypsin" selected="true">Trypsin</option>
-            <expand macro="list_string_san"/>
+            <expand macro="list_string_san" name="enzyme"/>
           </param>
-          <param name="model" argument="-algorithm:MSSim:Digestion:model" display="radio" type="select" optional="false" label="The cleavage model to use for digestion" help="'Trained' is based on a log likelihood model (see DOI:10.1021/pr060507u)">
+          <param name="model" argument="-algorithm:MSSim:Digestion:model" type="select" optional="true" label="The cleavage model to use for digestion" help="'Trained' is based on a log likelihood model (see DOI:10.1021/pr060507u)">
             <option value="trained">trained</option>
             <option value="naive" selected="true">naive</option>
-            <expand macro="list_string_san"/>
+            <expand macro="list_string_san" name="model"/>
           </param>
           <param name="min_peptide_length" argument="-algorithm:MSSim:Digestion:min_peptide_length" type="integer" optional="true" min="1" value="3" label="Minimum peptide length after digestion (shorter ones will be discarded)" help=""/>
           <section name="model_trained" title="" help="" expanded="false">
@@ -164,11 +182,11 @@
           </section>
         </section>
         <section name="RT" title="" help="" expanded="false">
-          <param name="rt_column" argument="-algorithm:MSSim:RT:rt_column" display="radio" type="select" optional="false" label="Modelling of an RT or CE column" help="">
+          <param name="rt_column" argument="-algorithm:MSSim:RT:rt_column" type="select" optional="true" label="Modelling of an RT or CE column" help="">
             <option value="none">none</option>
             <option value="HPLC" selected="true">HPLC</option>
             <option value="CE">CE</option>
-            <expand macro="list_string_san"/>
+            <expand macro="list_string_san" name="rt_column"/>
           </param>
           <param name="auto_scale" argument="-algorithm:MSSim:RT:auto_scale" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Scale predicted RT's/MT's to given 'total_gradient_time'" help="If 'true', for CE this means that 'CE:lenght_d', 'CE:length_total', 'CE:voltage' have no influence"/>
           <param name="total_gradient_time" argument="-algorithm:MSSim:RT:total_gradient_time" type="float" optional="true" min="1e-05" value="2500.0" label="The duration [s] of the gradient" help=""/>
@@ -195,11 +213,6 @@
               <param name="variance" argument="-algorithm:MSSim:RT:profile_shape:skewness:variance" type="float" optional="true" min="0.0" value="0.3" label="Random component of skewness (set to 0 to disable randomness)" help="i.e. scale parameter for the lorentzian variation of the time constant (Note: The scale parameter has to be &gt; 0)"/>
             </section>
           </section>
-          <section name="HPLC" title="" help="" expanded="false">
-            <param name="model_file" argument="-algorithm:MSSim:RT:HPLC:model_file" type="text" optional="true" value="examples/simulation/RTPredict.model" label="SVM model for retention time prediction" help="">
-              <expand macro="list_string_san"/>
-            </param>
-          </section>
           <section name="CE" title="" help="" expanded="false">
             <param name="pH" argument="-algorithm:MSSim:RT:CE:pH" type="float" optional="true" min="0.0" max="14.0" value="3.0" label="pH of buffe" help=""/>
             <param name="alpha" argument="-algorithm:MSSim:RT:CE:alpha" type="float" optional="true" min="0.0" max="1.0" value="0.5" label="Exponent Alpha used to calculate mobility" help=""/>
@@ -212,9 +225,6 @@
         <section name="Detectability" title="" help="" expanded="false">
           <param name="dt_simulation_on" argument="-algorithm:MSSim:Detectability:dt_simulation_on" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Modelling detectibility enabled" help="This can serve as a filter to remove peptides which ionize badly, thus reducing peptide count"/>
           <param name="min_detect" argument="-algorithm:MSSim:Detectability:min_detect" type="float" optional="true" value="0.5" label="Minimum peptide detectability accepted" help="Peptides with a lower score will be removed"/>
-          <param name="dt_model_file" argument="-algorithm:MSSim:Detectability:dt_model_file" type="text" optional="true" value="examples/simulation/DTPredict.model" label="SVM model for peptide detectability prediction" help="">
-            <expand macro="list_string_san"/>
-          </param>
         </section>
         <section name="Ionization" title="" help="" expanded="false">
           <section name="esi" title="" help="" expanded="false">
@@ -240,18 +250,18 @@
               <option value="Val">Val</option>
               <option value="Trp">Trp</option>
               <option value="Tyr">Tyr</option>
-              <expand macro="list_string_san"/>
+              <expand macro="list_string_san" name="ionized_residues"/>
             </param>
             <param name="charge_impurity" argument="-algorithm:MSSim:Ionization:esi:charge_impurity" type="text" optional="true" value="H+:1" label="List of charged ions that contribute to charge with weight of occurrence (their sum is scaled to 1 internally)" help="e.g. ['H:1'] or ['H:0.7' 'Na:0.3'], ['H:4' 'Na:1'] (which internally translates to ['H:0.8' 'Na:0.2']) (space separated list, in order to allow for spaces in list items surround them by single quotes)">
-              <expand macro="list_string_val"/>
-              <expand macro="list_string_san"/>
+              <expand macro="list_string_val" name="charge_impurity"/>
+              <expand macro="list_string_san" name="charge_impurity"/>
             </param>
             <param name="max_impurity_set_size" argument="-algorithm:MSSim:Ionization:esi:max_impurity_set_size" type="integer" optional="true" value="3" label="Maximal #combinations of charge impurities allowed (each generating one feature) per charge state" help="E.g. assuming charge=3 and this parameter is 2, then we could choose to allow '3H+, 2H+Na+' features (given a certain 'charge_impurity' constraints), but no '3H+, 2H+Na+, 3Na+'"/>
             <param name="ionization_probability" argument="-algorithm:MSSim:Ionization:esi:ionization_probability" type="float" optional="true" value="0.8" label="Probability for the binomial distribution of the ESI charge states" help=""/>
           </section>
           <section name="maldi" title="" help="" expanded="false">
             <param name="ionization_probabilities" argument="-algorithm:MSSim:Ionization:maldi:ionization_probabilities" type="text" optional="true" value="0.9 0.1 0.0" label="List of probabilities for different charge states (starting at charge=1, 2, ...) during MALDI ionization (the list must sum up to 1.0)" help=" (space separated list, in order to allow for spaces in list items surround them by single quotes)">
-              <expand macro="list_float_valsan"/>
+              <expand macro="list_float_valsan" name="ionization_probabilities"/>
             </param>
           </section>
           <section name="mz" title="" help="" expanded="false">
@@ -261,18 +271,18 @@
         </section>
         <section name="RawSignal" title="" help="" expanded="false">
           <param name="enabled" argument="-algorithm:MSSim:RawSignal:enabled" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Enable RAW signal simulation" help="(select 'false' if you only need feature-maps)"/>
-          <param name="peak_shape" argument="-algorithm:MSSim:RawSignal:peak_shape" display="radio" type="select" optional="false" label="Peak Shape used around each isotope peak (be aware that the area under the curve is constant for both types, but the maximal height will differ (~ 2:3 = Lorentz:Gaussian) due to the wider base of the Lorentzian" help="">
+          <param name="peak_shape" argument="-algorithm:MSSim:RawSignal:peak_shape" type="select" optional="true" label="Peak Shape used around each isotope peak (be aware that the area under the curve is constant for both types, but the maximal height will differ (~ 2:3 = Lorentz:Gaussian) due to the wider base of the Lorentzian" help="">
             <option value="Gaussian" selected="true">Gaussian</option>
             <option value="Lorentzian">Lorentzian</option>
-            <expand macro="list_string_san"/>
+            <expand macro="list_string_san" name="peak_shape"/>
           </param>
           <section name="resolution" title="" help="" expanded="false">
             <param name="value" argument="-algorithm:MSSim:RawSignal:resolution:value" type="integer" optional="true" value="50000" label="Instrument resolution at 400 Th" help=""/>
-            <param name="type" argument="-algorithm:MSSim:RawSignal:resolution:type" display="radio" type="select" optional="false" label="How does resolution change with increasing m/z" help="QTOFs usually show 'constant' behavior, FTs have linear degradation, and on Orbitraps the resolution decreases with square root of mass">
+            <param name="type" argument="-algorithm:MSSim:RawSignal:resolution:type" type="select" optional="true" label="How does resolution change with increasing m/z" help="QTOFs usually show 'constant' behavior, FTs have linear degradation, and on Orbitraps the resolution decreases with square root of mass">
               <option value="constant">constant</option>
               <option value="linear" selected="true">linear</option>
               <option value="sqrt">sqrt</option>
-              <expand macro="list_string_san"/>
+              <expand macro="list_string_san" name="type"/>
             </param>
           </section>
           <section name="baseline" title="Baseline modeling for MALDI ionization" help="" expanded="false">
@@ -283,8 +293,8 @@
             <param name="sampling_points" argument="-algorithm:MSSim:RawSignal:mz:sampling_points" type="integer" optional="true" min="2" value="3" label="Number of raw data points per FWHM of the peak" help=""/>
           </section>
           <section name="contaminants" title="" help="" expanded="false">
-            <param name="file" argument="-algorithm:MSSim:RawSignal:contaminants:file" type="text" optional="true" value="examples/simulation/contaminants.csv" label="Contaminants file with sum formula and absolute RT interval" help="See 'OpenMS/examples/simulation/contaminants.txt' for details">
-              <expand macro="list_string_san"/>
+            <param name="file" argument="-algorithm:MSSim:RawSignal:contaminants:file" type="text" optional="true" value="SIMULATION/contaminants.csv" label="Contaminants file with sum formula and absolute RT interval" help="See 'share/OpenMS/SIMULATION/contaminants.txt' for details">
+              <expand macro="list_string_san" name="file"/>
             </param>
           </section>
           <section name="variation" title="Random components that simulate biological and technical variations of the simulated data" help="" expanded="false">
@@ -313,15 +323,15 @@
           </section>
         </section>
         <section name="RawTandemSignal" title="" help="" expanded="false">
-          <param name="status" argument="-algorithm:MSSim:RawTandemSignal:status" display="radio" type="select" optional="false" label="Create Tandem-MS scans?" help="">
+          <param name="status" argument="-algorithm:MSSim:RawTandemSignal:status" type="select" optional="true" label="Create Tandem-MS scans?" help="">
             <option value="disabled" selected="true">disabled</option>
             <option value="precursor">precursor</option>
             <option value="MS^E">MS^E</option>
-            <expand macro="list_string_san"/>
+            <expand macro="list_string_san" name="status"/>
           </param>
           <param name="tandem_mode" argument="-algorithm:MSSim:RawTandemSignal:tandem_mode" type="integer" optional="true" min="0" max="2" value="0" label="Algorithm to generate the tandem-MS spectra" help="0 - fixed intensities, 1 - SVC prediction (abundant/missing), 2 - SVR prediction of peak intensity . "/>
-          <param name="svm_model_set_file" argument="-algorithm:MSSim:RawTandemSignal:svm_model_set_file" type="text" optional="true" value="examples/simulation/SvmModelSet.model" label="File containing the filenames of SVM Models for different charge variants" help="">
-            <expand macro="list_string_san"/>
+          <param name="svm_model_set_file" argument="-algorithm:MSSim:RawTandemSignal:svm_model_set_file" type="text" optional="true" value="SIMULATION/SvmModelSet.model" label="File containing the filenames of SVM Models for different charge variants" help="">
+            <expand macro="list_string_san" name="svm_model_set_file"/>
           </param>
           <section name="Precursor" title="" help="" expanded="false">
             <param name="ms2_spectra_per_rt_bin" argument="-algorithm:MSSim:RawTandemSignal:Precursor:ms2_spectra_per_rt_bin" type="integer" optional="true" min="1" value="5" label="Number of allowed MS/MS spectra in a retention time bin" help=""/>
@@ -329,7 +339,7 @@
             <param name="mz_isolation_window" argument="-algorithm:MSSim:RawTandemSignal:Precursor:mz_isolation_window" type="float" optional="true" min="0.0" value="2.0" label="All peaks within a mass window (in Th) of a selected peak are also selected for fragmentation" help=""/>
             <param name="exclude_overlapping_peaks" argument="-algorithm:MSSim:RawTandemSignal:Precursor:exclude_overlapping_peaks" type="boolean" truevalue="true" falsevalue="false" checked="false" label="If true, overlapping or nearby peaks (within 'min_mz_peak_distance') are excluded for selection" help=""/>
             <param name="charge_filter" argument="-algorithm:MSSim:RawTandemSignal:Precursor:charge_filter" type="text" optional="true" value="2 3" label="Charges considered for MS2 fragmentation" help=" (space separated list, in order to allow for spaces in list items surround them by single quotes)">
-              <expand macro="list_integer_valsan">
+              <expand macro="list_integer_valsan" name="charge_filter">
                 <validator type="expression" message="a space separated list of integer values in the range 1:5 is required"><![CDATA[len(value.split(' ')) == len([_ for _ in value.split(' ') if  1 <= int(_) <= 5])
 ]]></validator>
               </expand>
@@ -362,11 +372,11 @@
           </section>
           <section name="TandemSim" title="" help="" expanded="false">
             <section name="Simple" title="" help="" expanded="false">
-              <param name="isotope_model" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:isotope_model" display="radio" type="select" optional="false" label="Model to use for isotopic peaks ('none' means no isotopic peaks are added, 'coarse' adds isotopic peaks in unit mass distance, 'fine' uses the hyperfine isotopic generator to add accurate isotopic peaks" help="Note that adding isotopic peaks is very slow">
+              <param name="isotope_model" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:isotope_model" type="select" optional="true" label="Model to use for isotopic peaks ('none' means no isotopic peaks are added, 'coarse' adds isotopic peaks in unit mass distance, 'fine' uses the hyperfine isotopic generator to add accurate isotopic peaks" help="Note that adding isotopic peaks is very slow">
                 <option value="none" selected="true">none</option>
                 <option value="coarse">coarse</option>
                 <option value="fine">fine</option>
-                <expand macro="list_string_san"/>
+                <expand macro="list_string_san" name="isotope_model"/>
               </param>
               <param name="max_isotope" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:max_isotope" type="integer" optional="true" value="2" label="Defines the maximal isotopic peak which is added if 'isotope_model' is 'coarse'" help=""/>
               <param name="max_isotope_probability" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:max_isotope_probability" type="float" optional="true" value="0.05" label="Defines the maximal isotopic probability to cover if 'isotope_model' is 'fine'" help=""/>
@@ -375,7 +385,7 @@
               <param name="sort_by_position" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:sort_by_position" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Sort output by position" help=""/>
               <param name="add_precursor_peaks" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:add_precursor_peaks" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Adds peaks of the unfragmented precursor ion to the spectrum" help=""/>
               <param name="add_all_precursor_charges" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:add_all_precursor_charges" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Adds precursor peaks with all charges in the given range" help=""/>
-              <param name="add_abundant_immonium_ions" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:add_abundant_immonium_ions" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Add most abundant immonium ions" help=""/>
+              <param name="add_abundant_immonium_ions" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:add_abundant_immonium_ions" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Add most abundant immonium ions (for Proline, Cystein, Iso/Leucine, Histidin, Phenylalanin, Tyrosine, Tryptophan)" help=""/>
               <param name="add_first_prefix_ion" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:add_first_prefix_ion" type="boolean" truevalue="true" falsevalue="false" checked="false" label="If set to true e.g. b1 ions are added" help=""/>
               <param name="add_y_ions" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:add_y_ions" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Add peaks of y-ions to the spectrum" help=""/>
               <param name="add_b_ions" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:add_b_ions" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Add peaks of b-ions to the spectrum" help=""/>
@@ -383,16 +393,16 @@
               <param name="add_c_ions" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:add_c_ions" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Add peaks of c-ions to the spectrum" help=""/>
               <param name="add_x_ions" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:add_x_ions" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Add peaks of  x-ions to the spectrum" help=""/>
               <param name="add_z_ions" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:add_z_ions" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Add peaks of z-ions to the spectrum" help=""/>
-              <param name="y_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:y_intensity" type="float" optional="true" value="1.0" label="Intensity of the y-ions" help=""/>
-              <param name="b_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:b_intensity" type="float" optional="true" value="1.0" label="Intensity of the b-ions" help=""/>
-              <param name="a_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:a_intensity" type="float" optional="true" value="1.0" label="Intensity of the a-ions" help=""/>
-              <param name="c_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:c_intensity" type="float" optional="true" value="1.0" label="Intensity of the c-ions" help=""/>
-              <param name="x_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:x_intensity" type="float" optional="true" value="1.0" label="Intensity of the x-ions" help=""/>
-              <param name="z_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:z_intensity" type="float" optional="true" value="1.0" label="Intensity of the z-ions" help=""/>
-              <param name="relative_loss_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:relative_loss_intensity" type="float" optional="true" value="0.1" label="Intensity of loss ions, in relation to the intact ion intensity" help=""/>
-              <param name="precursor_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:precursor_intensity" type="float" optional="true" value="1.0" label="Intensity of the precursor peak" help=""/>
-              <param name="precursor_H2O_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:precursor_H2O_intensity" type="float" optional="true" value="1.0" label="Intensity of the H2O loss peak of the precurso" help=""/>
-              <param name="precursor_NH3_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:precursor_NH3_intensity" type="float" optional="true" value="1.0" label="Intensity of the NH3 loss peak of the precurso" help=""/>
+              <param name="y_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:y_intensity" type="float" optional="true" min="0.0" value="1.0" label="Intensity of the y-ions" help=""/>
+              <param name="b_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:b_intensity" type="float" optional="true" min="0.0" value="1.0" label="Intensity of the b-ions" help=""/>
+              <param name="a_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:a_intensity" type="float" optional="true" min="0.0" value="1.0" label="Intensity of the a-ions" help=""/>
+              <param name="c_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:c_intensity" type="float" optional="true" min="0.0" value="1.0" label="Intensity of the c-ions" help=""/>
+              <param name="x_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:x_intensity" type="float" optional="true" min="0.0" value="1.0" label="Intensity of the x-ions" help=""/>
+              <param name="z_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:z_intensity" type="float" optional="true" min="0.0" value="1.0" label="Intensity of the z-ions" help=""/>
+              <param name="relative_loss_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:relative_loss_intensity" type="float" optional="true" min="0.0" max="1.0" value="0.1" label="Intensity of loss ions, in relation to the intact ion intensity" help=""/>
+              <param name="precursor_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:precursor_intensity" type="float" optional="true" min="0.0" value="1.0" label="Intensity of the precursor peak" help=""/>
+              <param name="precursor_H2O_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:precursor_H2O_intensity" type="float" optional="true" min="0.0" value="1.0" label="Intensity of the H2O loss peak of the precurso" help=""/>
+              <param name="precursor_NH3_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:precursor_NH3_intensity" type="float" optional="true" min="0.0" value="1.0" label="Intensity of the NH3 loss peak of the precurso" help=""/>
             </section>
             <section name="SVM" title="" help="" expanded="false">
               <param name="add_isotopes" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:SVM:add_isotopes" type="boolean" truevalue="true" falsevalue="false" checked="false" label="If set to 1 isotope peaks of the product ion peaks are added" help=""/>
@@ -419,75 +429,75 @@
           </section>
         </section>
         <section name="Global" title="" help="" expanded="false">
-          <param name="ionization_type" argument="-algorithm:MSSim:Global:ionization_type" display="radio" type="select" optional="false" label="Type of Ionization (MALDI or ESI)" help="">
+          <param name="ionization_type" argument="-algorithm:MSSim:Global:ionization_type" type="select" optional="true" label="Type of Ionization (MALDI or ESI)" help="">
             <option value="MALDI">MALDI</option>
             <option value="ESI" selected="true">ESI</option>
-            <expand macro="list_string_san"/>
+            <expand macro="list_string_san" name="ionization_type"/>
           </param>
         </section>
         <section name="Labeling" title="" help="" expanded="false">
-          <param name="type" argument="-algorithm:MSSim:Labeling:type" type="select" optional="false" label="Select the labeling type you want for your experiment" help="">
+          <param name="type" argument="-algorithm:MSSim:Labeling:type" type="select" optional="true" label="Select the labeling type you want for your experiment" help="">
             <option value="ICPL">ICPL</option>
             <option value="SILAC">SILAC</option>
             <option value="itraq">itraq</option>
             <option value="labelfree" selected="true">labelfree</option>
             <option value="o18">o18</option>
-            <expand macro="list_string_san"/>
+            <expand macro="list_string_san" name="type"/>
           </param>
           <section name="ICPL" title="ICPL labeling on MS1 level of lysines and n-term (on protein or peptide level) with either two or three channels" help="" expanded="false">
             <param name="ICPL_fixed_rtshift" argument="-algorithm:MSSim:Labeling:ICPL:ICPL_fixed_rtshift" type="float" optional="true" value="0.0" label="Fixed retention time shift between labeled pairs" help="If set to 0.0 only the retention times, computed by the RT model step are used"/>
             <param name="label_proteins" argument="-algorithm:MSSim:Labeling:ICPL:label_proteins" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Enables protein-labeling" help="(select 'false' if you only need peptide-labeling)"/>
             <param name="ICPL_light_channel_label" argument="-algorithm:MSSim:Labeling:ICPL:ICPL_light_channel_label" type="text" optional="true" value="UniMod:365" label="UniMod Id of the light channel ICPL label" help="">
-              <expand macro="list_string_san"/>
+              <expand macro="list_string_san" name="ICPL_light_channel_label"/>
             </param>
             <param name="ICPL_medium_channel_label" argument="-algorithm:MSSim:Labeling:ICPL:ICPL_medium_channel_label" type="text" optional="true" value="UniMod:687" label="UniMod Id of the medium channel ICPL label" help="">
-              <expand macro="list_string_san"/>
+              <expand macro="list_string_san" name="ICPL_medium_channel_label"/>
             </param>
             <param name="ICPL_heavy_channel_label" argument="-algorithm:MSSim:Labeling:ICPL:ICPL_heavy_channel_label" type="text" optional="true" value="UniMod:364" label="UniMod Id of the heavy channel ICPL label" help="">
-              <expand macro="list_string_san"/>
+              <expand macro="list_string_san" name="ICPL_heavy_channel_label"/>
             </param>
           </section>
           <section name="SILAC" title="SILAC labeling on MS1 level with up to 3 channels and custom modifications" help="" expanded="false">
             <param name="fixed_rtshift" argument="-algorithm:MSSim:Labeling:SILAC:fixed_rtshift" type="float" optional="true" min="0.0" value="0.0001" label="Fixed retention time shift between labeled peptides" help="If set to 0.0 only the retention times computed by the RT model step are used"/>
             <section name="medium_channel" title="Modifications for the medium SILAC channel" help="" expanded="false">
               <param name="modification_lysine" argument="-algorithm:MSSim:Labeling:SILAC:medium_channel:modification_lysine" type="text" optional="true" value="UniMod:481" label="Modification of Lysine in the medium SILAC channel" help="">
-                <expand macro="list_string_san"/>
+                <expand macro="list_string_san" name="modification_lysine"/>
               </param>
               <param name="modification_arginine" argument="-algorithm:MSSim:Labeling:SILAC:medium_channel:modification_arginine" type="text" optional="true" value="UniMod:188" label="Modification of Arginine in the medium SILAC channel" help="">
-                <expand macro="list_string_san"/>
+                <expand macro="list_string_san" name="modification_arginine"/>
               </param>
             </section>
             <section name="heavy_channel" title="Modifications for the heavy SILAC channel" help="If you want to use only 2 channels, just leave the Labels as they are and provide only 2 input files" expanded="false">
               <param name="modification_lysine" argument="-algorithm:MSSim:Labeling:SILAC:heavy_channel:modification_lysine" type="text" optional="true" value="UniMod:259" label="Modification of Lysine in the heavy SILAC channel" help="If left empty, two channelSILAC is assumed">
-                <expand macro="list_string_san"/>
+                <expand macro="list_string_san" name="modification_lysine"/>
               </param>
               <param name="modification_arginine" argument="-algorithm:MSSim:Labeling:SILAC:heavy_channel:modification_arginine" type="text" optional="true" value="UniMod:267" label="Modification of Arginine in the heavy SILAC channel" help="If left empty, two-channel SILAC is assumed">
-                <expand macro="list_string_san"/>
+                <expand macro="list_string_san" name="modification_arginine"/>
               </param>
             </section>
           </section>
           <section name="itraq" title="iTRAQ labeling on MS2 level with up to 4 (4plex) or 8 (8plex) channels" help="" expanded="false">
-            <param name="iTRAQ" argument="-algorithm:MSSim:Labeling:itraq:iTRAQ" display="radio" type="select" optional="false" label="4plex or 8plex iTRAQ?" help="">
+            <param name="iTRAQ" argument="-algorithm:MSSim:Labeling:itraq:iTRAQ" type="select" optional="true" label="4plex or 8plex iTRAQ?" help="">
               <option value="4plex" selected="true">4plex</option>
               <option value="8plex">8plex</option>
-              <expand macro="list_string_san"/>
+              <expand macro="list_string_san" name="iTRAQ"/>
             </param>
             <param name="reporter_mass_shift" argument="-algorithm:MSSim:Labeling:itraq:reporter_mass_shift" type="float" optional="true" min="0.0" max="0.5" value="0.1" label="Allowed shift (uniformly distributed - left to right) in Da from the expected position (of" help="e.g. 114.1, 115.1)"/>
             <param name="channel_active_4plex" argument="-algorithm:MSSim:Labeling:itraq:channel_active_4plex" type="text" optional="true" value="114:myReference" label="Four-plex only: Each channel that was used in the experiment and its description (114-117) in format &lt;channel&gt;:&lt;name" help="e.g. &quot;114:myref&quot;,&quot;115:liver&quot; (space separated list, in order to allow for spaces in list items surround them by single quotes)">
-              <expand macro="list_string_val"/>
-              <expand macro="list_string_san"/>
+              <expand macro="list_string_val" name="channel_active_4plex"/>
+              <expand macro="list_string_san" name="channel_active_4plex"/>
             </param>
             <param name="channel_active_8plex" argument="-algorithm:MSSim:Labeling:itraq:channel_active_8plex" type="text" optional="true" value="113:myReference" label="Eight-plex only: Each channel that was used in the experiment and its description (113-121) in format &lt;channel&gt;:&lt;name" help="e.g. &quot;113:myref&quot;,&quot;115:liver&quot;,&quot;118:lung&quot; (space separated list, in order to allow for spaces in list items surround them by single quotes)">
-              <expand macro="list_string_val"/>
-              <expand macro="list_string_san"/>
+              <expand macro="list_string_val" name="channel_active_8plex"/>
+              <expand macro="list_string_san" name="channel_active_8plex"/>
             </param>
             <param name="isotope_correction_values_4plex" argument="-algorithm:MSSim:Labeling:itraq:isotope_correction_values_4plex" type="text" optional="true" value="114:0.0/1.0/5.9/0.2 115:0.0/2.0/5.6/0.1 116:0.0/3.0/4.5/0.1 117:0.1/4.0/3.5/0.1" label="override default values (see Documentation); use the following format: &lt;channel&gt;:&lt;-2Da&gt;/&lt;-1Da&gt;/&lt;+1Da&gt;/&lt;+2Da&gt; ;" help="e.g. '114:0/0.3/4/0' , '116:0.1/0.3/3/0.2'  (space separated list, in order to allow for spaces in list items surround them by single quotes)">
-              <expand macro="list_string_val"/>
-              <expand macro="list_string_san"/>
+              <expand macro="list_string_val" name="isotope_correction_values_4plex"/>
+              <expand macro="list_string_san" name="isotope_correction_values_4plex"/>
             </param>
             <param name="isotope_correction_values_8plex" argument="-algorithm:MSSim:Labeling:itraq:isotope_correction_values_8plex" type="text" optional="true" value="113:0.0/0.0/6.89/0.22 114:0.0/0.94/5.9/0.16 115:0.0/1.88/4.9/0.1 116:0.0/2.82/3.9/0.07 117:0.06/3.77/2.99/0.0 118:0.09/4.71/1.88/0.0 119:0.14/5.66/0.87/0.0 121:0.27/7.44/0.18/0.0" label="override default values (see Documentation); use the following format: &lt;channel&gt;:&lt;-2Da&gt;/&lt;-1Da&gt;/&lt;+1Da&gt;/&lt;+2Da&gt; ;" help="e.g. '113:0/0.3/4/0' , '116:0.1/0.3/3/0.2'  (space separated list, in order to allow for spaces in list items surround them by single quotes)">
-              <expand macro="list_string_val"/>
-              <expand macro="list_string_san"/>
+              <expand macro="list_string_val" name="isotope_correction_values_8plex"/>
+              <expand macro="list_string_san" name="isotope_correction_values_8plex"/>
             </param>
             <param name="Y_contamination" argument="-algorithm:MSSim:Labeling:itraq:Y_contamination" type="float" optional="true" min="0.0" max="1.0" value="0.3" label="Efficiency of labeling tyrosine ('Y') residues" help="0=off, 1=full labeling"/>
           </section>
@@ -497,22 +507,22 @@
         </section>
       </section>
       <section name="RandomNumberGenerators" title="Parameters for generating the random aspects" help="(e.g. noise) in the simulated data. The generation is separated into two parts, the technical part, like noise in the raw signal, and the biological part, like systematic deviations in the predicted retention times" expanded="false">
-        <param name="biological" argument="-algorithm:RandomNumberGenerators:biological" display="radio" type="select" optional="false" label="Controls the 'biological' randomness of the generated data" help="(e.g. systematic effects like deviations in RT). If set to 'random' each experiment will look different. If set to 'reproducible' each experiment will have the same outcome (given that the input data is the same)">
+        <param name="biological" argument="-algorithm:RandomNumberGenerators:biological" type="select" optional="true" label="Controls the 'biological' randomness of the generated data" help="(e.g. systematic effects like deviations in RT). If set to 'random' each experiment will look different. If set to 'reproducible' each experiment will have the same outcome (given that the input data is the same)">
           <option value="reproducible">reproducible</option>
           <option value="random" selected="true">random</option>
-          <expand macro="list_string_san"/>
+          <expand macro="list_string_san" name="biological"/>
         </param>
-        <param name="technical" argument="-algorithm:RandomNumberGenerators:technical" display="radio" type="select" optional="false" label="Controls the 'technical' randomness of the generated data" help="(e.g. noise in the raw signal). If set to 'random' each experiment will look different. If set to 'reproducible' each experiment will have the same outcome (given that the input data is the same)">
+        <param name="technical" argument="-algorithm:RandomNumberGenerators:technical" type="select" optional="true" label="Controls the 'technical' randomness of the generated data" help="(e.g. noise in the raw signal). If set to 'random' each experiment will look different. If set to 'reproducible' each experiment will have the same outcome (given that the input data is the same)">
           <option value="reproducible">reproducible</option>
           <option value="random" selected="true">random</option>
-          <expand macro="list_string_san"/>
+          <expand macro="list_string_san" name="technical"/>
         </param>
       </section>
     </section>
     <expand macro="adv_opts_macro">
-      <param name="force" argument="-force" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Overrides tool-specific checks" help=""/>
-      <param name="test" argument="-test" type="hidden" optional="true" value="False" label="Enables the test mode (needed for internal use only)" help="">
-        <expand macro="list_string_san"/>
+      <param argument="-force" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Overrides tool-specific checks" help=""/>
+      <param argument="-test" type="hidden" optional="true" value="False" label="Enables the test mode (needed for internal use only)" help="">
+        <expand macro="list_string_san" name="test"/>
       </param>
     </expand>
     <param name="OPTIONAL_OUTPUTS" type="select" optional="true" multiple="true" label="Optional outputs">
@@ -555,13 +565,27 @@
       <filter>OPTIONAL_OUTPUTS is not None and "ctd_out_FLAG" in OPTIONAL_OUTPUTS</filter>
     </data>
   </outputs>
-  <tests>
-    <expand macro="autotest_MSSimulator"/>
-    <expand macro="manutest_MSSimulator"/>
-  </tests>
+  <tests><test expect_num_outputs="1"><!-- same input as used in the MSGF+Adapter -->
+    <param name="adv_opts|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|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>
+</tests>
   <help><![CDATA[A highly configurable simulator for mass spectrometry experiments.
 
 
-For more information, visit http://www.openms.de/doxygen/release/2.6.0/html/UTILS_MSSimulator.html]]></help>
+For more information, visit http://www.openms.de/doxygen/release/2.8.0/html/UTILS_MSSimulator.html]]></help>
   <expand macro="references"/>
 </tool>