view 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 source

<?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@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>
  </macros>
  <expand macro="requirements"/>
  <expand macro="stdio"/>
  <command detect_errors="exit_code"><![CDATA[@QUOTE_FOO@
@EXT_FOO@
#import re

## Preprocessing
mkdir in_cond.in &&
#if $in_cond.in_select == "no"
mkdir ${' '.join(["'in_cond.in/%s'" % (i) for i, f in enumerate($in_cond.in) if f])} && 
${' '.join(["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
#if "out_pm_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
  mkdir out_pm &&
#end if
#if "out_fm_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
  mkdir out_fm &&
#end if
#if "out_cm_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
  mkdir out_cm &&
#end if
#if "out_lcm_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
  mkdir out_lcm &&
#end if
#if "out_cntm_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
  mkdir out_cntm &&
#end if
#if "out_id_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
  mkdir out_id &&
#end if

## Main program call

set -o pipefail &&
@EXECUTABLE@ -write_ctd ./ &&
python3 '$__tool_directory__/fill_ctd.py' '@EXECUTABLE@.ctd' '$args_json' '$hardcoded_json' &&
@EXECUTABLE@ -ini @EXECUTABLE@.ctd
-in
#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")}'
#end if
#if "out_pm_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
  -out_pm
  'out_pm/output.${gxy2omsext("mzml")}'
#end if
#if "out_fm_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
  -out_fm
  'out_fm/output.${gxy2omsext("featurexml")}'
#end if
#if "out_cm_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
  -out_cm
  'out_cm/output.${gxy2omsext("consensusxml")}'
#end if
#if "out_lcm_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
  -out_lcm
  'out_lcm/output.${gxy2omsext("consensusxml")}'
#end if
#if "out_cntm_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
  -out_cntm
  'out_cntm/output.${gxy2omsext("featurexml")}'
#end if
#if "out_id_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
  -out_id
  'out_id/output.${gxy2omsext("idxml")}'
#end if
#if len(str($OPTIONAL_OUTPUTS).split(',')) == 0
  | tee '$stdout'
#end if

## Postprocessing
#if "out_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
  && mv 'out/output.${gxy2omsext("mzml")}' '$out'
#end if
#if "out_pm_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
  && mv 'out_pm/output.${gxy2omsext("mzml")}' '$out_pm'
#end if
#if "out_fm_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
  && mv 'out_fm/output.${gxy2omsext("featurexml")}' '$out_fm'
#end if
#if "out_cm_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
  && mv 'out_cm/output.${gxy2omsext("consensusxml")}' '$out_cm'
#end if
#if "out_lcm_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
  && mv 'out_lcm/output.${gxy2omsext("consensusxml")}' '$out_lcm'
#end if
#if "out_cntm_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
  && mv 'out_cntm/output.${gxy2omsext("featurexml")}' '$out_cntm'
#end if
#if "out_id_FLAG" in str($OPTIONAL_OUTPUTS).split(',')
  && mv 'out_id/output.${gxy2omsext("idxml")}' '$out_id'
#end if
#if "ctd_out_FLAG" in $OPTIONAL_OUTPUTS
  && mv '@EXECUTABLE@.ctd' '$ctd_out'
#end if]]></command>
  <configfiles>
    <inputs name="args_json" data_style="paths"/>
    <configfile name="hardcoded_json"><![CDATA[{"log": "log.txt", "threads": "\${GALAXY_SLOTS:-1}", "no_progress": true, "algorithm": {"MSSim": {"RT": {"HPLC": {"model_file": "SIMULATION/RTPredict.model"}}, "Detectability": {"dt_model_file": "SIMULATION/DTPredict.model"}}}}]]></configfile>
  </configfiles>
  <inputs>
    <conditional name="in_cond">
      <param name="in_select" type="select" label="Run tool in batch mode for -in">
        <option value="no">No: process all datasets jointly</option>
        <option value="yes">Yes: process each dataset in an independent job</option>
      </param>
      <when value="no">
        <param argument="-in" type="data" format="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="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="proline endopeptidase">proline endopeptidase</option>
            <option value="glutamyl endopeptidase">glutamyl endopeptidase</option>
            <option value="Alpha-lytic protease">Alpha-lytic protease</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="Trypsin" selected="true">Trypsin</option>
            <expand macro="list_string_san" name="enzyme"/>
          </param>
          <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" 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">
            <param name="threshold" argument="-algorithm:MSSim:Digestion:model_trained:threshold" type="float" optional="true" min="-2.0" max="4.0" value="0.5" label="Model threshold for calling a cleavage" help="Higher values increase the number of cleavages. -2 will give no cleavages, +4 almost full cleavage"/>
          </section>
          <section name="model_naive" title="" help="" expanded="false">
            <param name="missed_cleavages" argument="-algorithm:MSSim:Digestion:model_naive:missed_cleavages" type="integer" optional="true" min="0" value="1" label="Maximum number of missed cleavages considered" help="All possible resulting peptides will be created"/>
          </section>
        </section>
        <section name="RT" title="" help="" expanded="false">
          <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" 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=""/>
          <param name="sampling_rate" argument="-algorithm:MSSim:RT:sampling_rate" type="float" optional="true" min="0.01" max="60.0" value="2.0" label="Time interval [s] between consecutive scans" help=""/>
          <section name="scan_window" title="" help="" expanded="false">
            <param name="min" argument="-algorithm:MSSim:RT:scan_window:min" type="float" optional="true" min="0.0" value="500.0" label="Start of RT Scan Window [s]" help=""/>
            <param name="max" argument="-algorithm:MSSim:RT:scan_window:max" type="float" optional="true" min="1.0" value="1500.0" label="End of RT Scan Window [s]" help=""/>
          </section>
          <section name="variation" title="Random component that simulates technical/biological variation" help="" expanded="false">
            <param name="feature_stddev" argument="-algorithm:MSSim:RT:variation:feature_stddev" type="integer" optional="true" value="3" label="Standard deviation of shift in retention time [s] from predicted model (applied to every single feature independently)" help=""/>
            <param name="affine_offset" argument="-algorithm:MSSim:RT:variation:affine_offset" type="integer" optional="true" value="0" label="Global offset in retention time [s] from predicted model" help=""/>
            <param name="affine_scale" argument="-algorithm:MSSim:RT:variation:affine_scale" type="integer" optional="true" value="1" label="Global scaling in retention time from predicted model" help=""/>
          </section>
          <section name="column_condition" title="" help="" expanded="false">
            <param name="distortion" argument="-algorithm:MSSim:RT:column_condition:distortion" type="integer" optional="true" min="0" max="10" value="0" label="Distortion of the elution profiles" help="Good presets are 0 for a perfect elution profile, 1 for a slightly distorted elution profile etc... For trapping instruments (e.g. Orbitrap) distortion should be &gt;4"/>
          </section>
          <section name="profile_shape" title="" help="" expanded="false">
            <section name="width" title="Width of the EGH elution shape" help="i.e. the sigma^2 parameter, which is computed using 'value' + rnd_cauchy('variance')" expanded="false">
              <param name="value" argument="-algorithm:MSSim:RT:profile_shape:width:value" type="float" optional="true" min="0.0" value="9.0" label="Width of the Exponential Gaussian Hybrid distribution shape of the elution profile" help="This does not correspond directly to the width in [s]"/>
              <param name="variance" argument="-algorithm:MSSim:RT:profile_shape:width:variance" type="float" optional="true" min="0.0" value="1.6" label="Random component of the width (set to 0 to disable randomness)" help="i.e. scale parameter for the lorentzian variation of the variance (Note: The scale parameter has to be &gt;= 0)"/>
            </section>
            <section name="skewness" title="Skewness of the EGH elution shape" help="i.e. the tau parameter, which is computed using 'value' + rnd_cauchy('variance')" expanded="false">
              <param name="value" argument="-algorithm:MSSim:RT:profile_shape:skewness:value" type="float" optional="true" value="0.1" label="Asymmetric component of the EGH" help="Higher absolute(!) values lead to more skewness (negative values cause fronting, positive values cause tailing). Tau parameter of the EGH, i.e. time constant of the exponential decay of the Exponential Gaussian Hybrid distribution shape of the elution profile"/>
              <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="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=""/>
            <param name="mu_eo" argument="-algorithm:MSSim:RT:CE:mu_eo" type="float" optional="true" min="0.0" max="5.0" value="0.0" label="Electroosmotic flow" help=""/>
            <param name="lenght_d" argument="-algorithm:MSSim:RT:CE:lenght_d" type="float" optional="true" min="0.0" max="1000.0" value="70.0" label="Length of capillary [cm] from injection site to MS" help=""/>
            <param name="length_total" argument="-algorithm:MSSim:RT:CE:length_total" type="float" optional="true" min="0.0" max="1000.0" value="75.0" label="Total length of capillary [cm]" help=""/>
            <param name="voltage" argument="-algorithm:MSSim:RT:CE:voltage" type="float" optional="true" min="0.0" value="1000.0" label="Voltage applied to capillary" help=""/>
          </section>
        </section>
        <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"/>
        </section>
        <section name="Ionization" title="" help="" expanded="false">
          <section name="esi" title="" help="" expanded="false">
            <param name="ionized_residues" argument="-algorithm:MSSim:Ionization:esi:ionized_residues" multiple="true" type="select" optional="true" label="List of residues (as three letter code) that will be considered during ES ionization" help="The N-term is always assumed to carry a charge. This parameter will be ignored during MALDI ionization">
              <option value="Ala">Ala</option>
              <option value="Cys">Cys</option>
              <option value="Asp">Asp</option>
              <option value="Glu">Glu</option>
              <option value="Phe">Phe</option>
              <option value="Gly">Gly</option>
              <option value="His" selected="true">His</option>
              <option value="Ile">Ile</option>
              <option value="Lys" selected="true">Lys</option>
              <option value="Leu">Leu</option>
              <option value="Met">Met</option>
              <option value="Asn">Asn</option>
              <option value="Pro">Pro</option>
              <option value="Gln">Gln</option>
              <option value="Arg" selected="true">Arg</option>
              <option value="Sec">Sec</option>
              <option value="Ser">Ser</option>
              <option value="Thr">Thr</option>
              <option value="Val">Val</option>
              <option value="Trp">Trp</option>
              <option value="Tyr">Tyr</option>
              <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" 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" name="ionization_probabilities"/>
            </param>
          </section>
          <section name="mz" title="" help="" expanded="false">
            <param name="lower_measurement_limit" argument="-algorithm:MSSim:Ionization:mz:lower_measurement_limit" type="float" optional="true" min="0.0" value="200.0" label="Lower m/z detector limit" help=""/>
            <param name="upper_measurement_limit" argument="-algorithm:MSSim:Ionization:mz:upper_measurement_limit" type="float" optional="true" min="0.0" value="1200.0" label="Upper m/z detector limit" help=""/>
          </section>
        </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" 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" 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" 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" name="type"/>
            </param>
          </section>
          <section name="baseline" title="Baseline modeling for MALDI ionization" help="" expanded="false">
            <param name="scaling" argument="-algorithm:MSSim:RawSignal:baseline:scaling" type="float" optional="true" min="0.0" value="0.0" label="Scale of baseline" help="Set to 0 to disable simulation of baseline"/>
            <param name="shape" argument="-algorithm:MSSim:RawSignal:baseline:shape" type="float" optional="true" min="0.0" value="0.5" label="The baseline is modeled by an exponential probability density function (pdf) with f(x) = shape*e^(- shape*x)" help=""/>
          </section>
          <section name="mz" title="" help="" expanded="false">
            <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="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">
            <section name="mz" title="Shifts in mass to charge dimension of the simulated signals" help="" expanded="false">
              <param name="error_mean" argument="-algorithm:MSSim:RawSignal:variation:mz:error_mean" type="float" optional="true" value="0.0" label="Average systematic m/z error (in Da)" help=""/>
              <param name="error_stddev" argument="-algorithm:MSSim:RawSignal:variation:mz:error_stddev" type="float" optional="true" value="0.0" label="Standard deviation for m/z errors" help="Set to 0 to disable simulation of m/z errors"/>
            </section>
            <section name="intensity" title="Variations in intensity to model randomness in feature intensity" help="" expanded="false">
              <param name="scale" argument="-algorithm:MSSim:RawSignal:variation:intensity:scale" type="float" optional="true" min="0.0" value="100.0" label="Constant scale factor of the feature intensity" help="Set to 1.0 to get the real intensity values provided in the FASTA file"/>
              <param name="scale_stddev" argument="-algorithm:MSSim:RawSignal:variation:intensity:scale_stddev" type="float" optional="true" min="0.0" value="0.0" label="Standard deviation of peak intensity (relative to the scaled peak height)" help="Set to 0 to get simple rescaled intensities"/>
            </section>
          </section>
          <section name="noise" title="Parameters modeling noise in mass spectrometry measurements" help="" expanded="false">
            <section name="shot" title="Parameters of Poisson and Exponential for shot noise modeling (set :rate OR :mean = 0 to disable)" help="" expanded="false">
              <param name="rate" argument="-algorithm:MSSim:RawSignal:noise:shot:rate" type="float" optional="true" min="0.0" value="0.0" label="Poisson rate of shot noise per unit m/z (random peaks in m/z, where the number of peaks per unit m/z follows a Poisson distribution)" help="Set this to 0 to disable simulation of shot noise"/>
              <param name="intensity_mean" argument="-algorithm:MSSim:RawSignal:noise:shot:intensity-mean" type="float" optional="true" value="1.0" label="Shot noise intensity mean (exponentially distributed with given mean)" help=""/>
            </section>
            <section name="white" title="Parameters of Gaussian distribution for white noise modeling (set :mean AND :stddev = 0 to disable)" help="No new peaks are generated; only intensity of existing ones is changed" expanded="false">
              <param name="mean" argument="-algorithm:MSSim:RawSignal:noise:white:mean" type="float" optional="true" value="0.0" label="Mean value of white noise (Gaussian) being added to each *measured* signal intensity" help=""/>
              <param name="stddev" argument="-algorithm:MSSim:RawSignal:noise:white:stddev" type="float" optional="true" value="0.0" label="Standard deviation of white noise being added to each *measured* signal intensity" help=""/>
            </section>
            <section name="detector" title="Parameters of Gaussian distribution for detector noise modeling (set :mean AND :stddev = 0 to disable)" help="If enabled, ALL possible m/z positions (up to sampling frequency of detector) will receive an intensity increase/decrease according to the specified Gaussian intensity distribution (similar to a noisy baseline)" expanded="false">
              <param name="mean" argument="-algorithm:MSSim:RawSignal:noise:detector:mean" type="float" optional="true" value="0.0" label="Mean intensity value of the detector noise (Gaussian distribution)" help=""/>
              <param name="stddev" argument="-algorithm:MSSim:RawSignal:noise:detector:stddev" type="float" optional="true" value="0.0" label="Standard deviation of the detector noise (Gaussian distribution)" help=""/>
            </section>
          </section>
        </section>
        <section name="RawTandemSignal" title="" help="" expanded="false">
          <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" 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="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=""/>
            <param name="min_mz_peak_distance" argument="-algorithm:MSSim:RawTandemSignal:Precursor:min_mz_peak_distance" type="float" optional="true" min="0.0001" value="2.0" label="The minimal distance (in Th) between two peaks for concurrent selection for fragmentation" help="Also used to define the m/z width of an exclusion window (distance +/- from m/z of precursor). If you set this lower than the isotopic envelope of a peptide, you might get multiple fragment spectra pointing to the same precursor"/>
            <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" 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>
            </param>
            <section name="Exclusion" title="" help="" expanded="false">
              <param name="use_dynamic_exclusion" argument="-algorithm:MSSim:RawTandemSignal:Precursor:Exclusion:use_dynamic_exclusion" type="boolean" truevalue="true" falsevalue="false" checked="false" label="If true dynamic exclusion is applied" help=""/>
              <param name="exclusion_time" argument="-algorithm:MSSim:RawTandemSignal:Precursor:Exclusion:exclusion_time" type="float" optional="true" min="0.0" value="100.0" label="The time (in seconds) a feature is excluded" help=""/>
            </section>
            <section name="ProteinBasedInclusion" title="" help="" expanded="false">
              <param name="max_list_size" argument="-algorithm:MSSim:RawTandemSignal:Precursor:ProteinBasedInclusion:max_list_size" type="integer" optional="true" min="1" value="1000" label="The maximal number of precursors in the inclusion list" help=""/>
              <section name="rt" title="" help="" expanded="false">
                <param name="min_rt" argument="-algorithm:MSSim:RawTandemSignal:Precursor:ProteinBasedInclusion:rt:min_rt" type="float" optional="true" min="0.0" value="960.0" label="Minimal rt in seconds" help=""/>
                <param name="max_rt" argument="-algorithm:MSSim:RawTandemSignal:Precursor:ProteinBasedInclusion:rt:max_rt" type="float" optional="true" min="0.0" value="3840.0" label="Maximal rt in seconds" help=""/>
                <param name="rt_step_size" argument="-algorithm:MSSim:RawTandemSignal:Precursor:ProteinBasedInclusion:rt:rt_step_size" type="float" optional="true" min="1.0" value="30.0" label="rt step size in seconds" help=""/>
                <param name="rt_window_size" argument="-algorithm:MSSim:RawTandemSignal:Precursor:ProteinBasedInclusion:rt:rt_window_size" type="integer" optional="true" min="1" value="100" label="rt window size in seconds" help=""/>
              </section>
              <section name="thresholds" title="" help="" expanded="false">
                <param name="min_protein_id_probability" argument="-algorithm:MSSim:RawTandemSignal:Precursor:ProteinBasedInclusion:thresholds:min_protein_id_probability" type="float" optional="true" min="0.0" max="1.0" value="0.95" label="Minimal protein probability for a protein to be considered identified" help=""/>
                <param name="min_pt_weight" argument="-algorithm:MSSim:RawTandemSignal:Precursor:ProteinBasedInclusion:thresholds:min_pt_weight" type="float" optional="true" min="0.0" max="1.0" value="0.5" label="Minimal pt weight of a precurso" help=""/>
                <param name="min_mz" argument="-algorithm:MSSim:RawTandemSignal:Precursor:ProteinBasedInclusion:thresholds:min_mz" type="float" optional="true" min="0.0" value="500.0" label="Minimal mz to be considered in protein based LP formulation" help=""/>
                <param name="max_mz" argument="-algorithm:MSSim:RawTandemSignal:Precursor:ProteinBasedInclusion:thresholds:max_mz" type="float" optional="true" min="0.0" value="5000.0" label="Minimal mz to be considered in protein based LP formulation" help=""/>
                <param name="use_peptide_rule" argument="-algorithm:MSSim:RawTandemSignal:Precursor:ProteinBasedInclusion:thresholds:use_peptide_rule" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Use peptide rule instead of minimal protein id probability" help=""/>
                <param name="min_peptide_ids" argument="-algorithm:MSSim:RawTandemSignal:Precursor:ProteinBasedInclusion:thresholds:min_peptide_ids" type="integer" optional="true" min="1" value="2" label="If use_peptide_rule is true, this parameter sets the minimal number of peptide ids for a protein id" help=""/>
                <param name="min_peptide_probability" argument="-algorithm:MSSim:RawTandemSignal:Precursor:ProteinBasedInclusion:thresholds:min_peptide_probability" type="float" optional="true" min="0.0" max="1.0" value="0.95" label="If use_peptide_rule is true, this parameter sets the minimal probability for a peptide to be safely identified" help=""/>
              </section>
            </section>
          </section>
          <section name="MS_E" title="" help="" expanded="false">
            <param name="add_single_spectra" argument="-algorithm:MSSim:RawTandemSignal:MS_E:add_single_spectra" type="boolean" truevalue="true" falsevalue="false" checked="false" label="If true, the MS2 spectra for each peptide signal are included in the output (might be a lot)" help="They will have a meta value 'MSE_DebugSpectrum' attached, so they can be filtered out. Native MS_E spectra will have 'MSE_Spectrum' instead"/>
          </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" 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" 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=""/>
              <param name="add_metainfo" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:add_metainfo" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Adds the type of peaks as metainfo to the peaks, like y8+, [M-H2O+2H]++" help=""/>
              <param name="add_losses" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:add_losses" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Adds common losses to those ion expect to have them, only water and ammonia loss is considered" help=""/>
              <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 (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=""/>
              <param name="add_a_ions" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:Simple:add_a_ions" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Add peaks of a-ions to the spectrum" help=""/>
              <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" 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=""/>
              <param name="max_isotope" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:SVM:max_isotope" type="integer" optional="true" value="2" label="Defines the maximal isotopic peak which is added, add_isotopes must be set to 1" help=""/>
              <param name="add_metainfo" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:SVM:add_metainfo" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Adds the type of peaks as metainfo to the peaks, like y8+, [M-H2O+2H]++" help=""/>
              <param name="add_first_prefix_ion" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:SVM: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="hide_y_ions" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:SVM:hide_y_ions" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Add peaks of y-ions to the spectrum" help=""/>
              <param name="hide_y2_ions" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:SVM:hide_y2_ions" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Add peaks of y-ions to the spectrum" help=""/>
              <param name="hide_b_ions" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:SVM:hide_b_ions" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Add peaks of b-ions to the spectrum" help=""/>
              <param name="hide_b2_ions" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:SVM:hide_b2_ions" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Add peaks of b-ions to the spectrum" help=""/>
              <param name="hide_a_ions" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:SVM:hide_a_ions" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Add peaks of a-ions to the spectrum" help=""/>
              <param name="hide_c_ions" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:SVM:hide_c_ions" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Add peaks of c-ions to the spectrum" help=""/>
              <param name="hide_x_ions" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:SVM:hide_x_ions" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Add peaks of  x-ions to the spectrum" help=""/>
              <param name="hide_z_ions" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:SVM:hide_z_ions" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Add peaks of z-ions to the spectrum" help=""/>
              <param name="hide_losses" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:SVM:hide_losses" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Adds common losses to those ion expect to have them, only water and ammonia loss is considered" help=""/>
              <param name="y_intensity" argument="-algorithm:MSSim:RawTandemSignal:TandemSim:SVM: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:SVM: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:SVM: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:SVM: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:SVM: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:SVM: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:SVM:relative_loss_intensity" type="float" optional="true" value="0.1" label="Intensity of loss ions, in relation to the intact ion intensity" help=""/>
            </section>
          </section>
        </section>
        <section name="Global" title="" help="" expanded="false">
          <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" name="ionization_type"/>
          </param>
        </section>
        <section name="Labeling" title="" help="" expanded="false">
          <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" 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" 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" 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" 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" 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" 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" 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" 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" 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" 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" 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" 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" 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" 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>
          <section name="o18" title="18O labeling on MS1 level with 2 channels, requiring trypsin digestion" help="" expanded="false">
            <param name="labeling_efficiency" argument="-algorithm:MSSim:Labeling:o18:labeling_efficiency" type="float" optional="true" min="0.0" max="1.0" value="1.0" label="Describes the distribution of the labeled peptide over the different states (unlabeled, mono- and di-labeled)" help=""/>
          </section>
        </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" 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" name="biological"/>
        </param>
        <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" name="technical"/>
        </param>
      </section>
    </section>
    <expand macro="adv_opts_macro">
      <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">
      <option value="out_FLAG">out (output: simulated MS raw (profile) data)</option>
      <option value="out_pm_FLAG">out_pm (output: ground-truth picked (centroided) MS data)</option>
      <option value="out_fm_FLAG">out_fm (output: ground-truth features)</option>
      <option value="out_cm_FLAG">out_cm (output: ground-truth features, grouping ESI charge variants of each parent peptide)</option>
      <option value="out_lcm_FLAG">out_lcm (output: ground-truth features, grouping labeled variants)</option>
      <option value="out_cntm_FLAG">out_cntm (output: ground-truth features caused by contaminants)</option>
      <option value="out_id_FLAG">out_id (output: ground-truth MS2 peptide identifications)</option>
      <option value="ctd_out_FLAG">Output used ctd (ini) configuration file</option>
    </param>
  </inputs>
  <outputs>
    <data name="out" label="${tool.name} on ${on_string}: out" format="mzml">
      <filter>OPTIONAL_OUTPUTS is not None and "out_FLAG" in OPTIONAL_OUTPUTS</filter>
    </data>
    <data name="out_pm" label="${tool.name} on ${on_string}: out_pm" format="mzml">
      <filter>OPTIONAL_OUTPUTS is not None and "out_pm_FLAG" in OPTIONAL_OUTPUTS</filter>
    </data>
    <data name="out_fm" label="${tool.name} on ${on_string}: out_fm" format="featurexml">
      <filter>OPTIONAL_OUTPUTS is not None and "out_fm_FLAG" in OPTIONAL_OUTPUTS</filter>
    </data>
    <data name="out_cm" label="${tool.name} on ${on_string}: out_cm" format="consensusxml">
      <filter>OPTIONAL_OUTPUTS is not None and "out_cm_FLAG" in OPTIONAL_OUTPUTS</filter>
    </data>
    <data name="out_lcm" label="${tool.name} on ${on_string}: out_lcm" format="consensusxml">
      <filter>OPTIONAL_OUTPUTS is not None and "out_lcm_FLAG" in OPTIONAL_OUTPUTS</filter>
    </data>
    <data name="out_cntm" label="${tool.name} on ${on_string}: out_cntm" format="featurexml">
      <filter>OPTIONAL_OUTPUTS is not None and "out_cntm_FLAG" in OPTIONAL_OUTPUTS</filter>
    </data>
    <data name="out_id" label="${tool.name} on ${on_string}: out_id" format="idxml">
      <filter>OPTIONAL_OUTPUTS is not None and "out_id_FLAG" in OPTIONAL_OUTPUTS</filter>
    </data>
    <data name="stdout" format="txt" label="${tool.name} on ${on_string}: stdout">
      <filter>OPTIONAL_OUTPUTS is None</filter>
    </data>
    <data name="ctd_out" format="xml" label="${tool.name} on ${on_string}: ctd">
      <filter>OPTIONAL_OUTPUTS is not None and "ctd_out_FLAG" in OPTIONAL_OUTPUTS</filter>
    </data>
  </outputs>
  <tests><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.8.0/html/UTILS_MSSimulator.html]]></help>
  <expand macro="references"/>
</tool>