diff OpenSwathRTNormalizer.xml @ 9:f25fbb8ff7cf draft

"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 020906fb54bde7fc143c356f41975c378a741315"
author galaxyp
date Wed, 09 Sep 2020 20:07:15 +0000
parents d9747fc216e9
children 7d73049c05c0
line wrap: on
line diff
--- a/OpenSwathRTNormalizer.xml	Fri May 17 09:38:14 2019 -0400
+++ b/OpenSwathRTNormalizer.xml	Wed Sep 09 20:07:15 2020 +0000
@@ -1,456 +1,236 @@
 <?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: [Targeted Experiments]-->
-<tool id="OpenSwathRTNormalizer" name="OpenSwathRTNormalizer" version="2.3.0">
+<tool id="OpenSwathRTNormalizer" name="OpenSwathRTNormalizer" version="@TOOL_VERSION@+galaxy@GALAXY_VERSION@" profile="20.05">
   <description>This tool will take a description of RT peptides and their normalized retention time to write out a transformation file on how to transform the RT space into the normalized space.</description>
   <macros>
     <token name="@EXECUTABLE@">OpenSwathRTNormalizer</token>
     <import>macros.xml</import>
+    <import>macros_autotest.xml</import>
+    <import>macros_test.xml</import>
   </macros>
-  <expand macro="references"/>
+  <expand macro="requirements"/>
   <expand macro="stdio"/>
-  <expand macro="requirements"/>
-  <command detect_errors="aggressive"><![CDATA[OpenSwathRTNormalizer
+  <command detect_errors="exit_code"><![CDATA[@QUOTE_FOO@
+@EXT_FOO@
+#import re
 
--in
-  #for token in $param_in:
-    $token
-  #end for
-#if $param_tr:
-  -tr $param_tr
-#end if
-#if $param_out:
-  -out $param_out
-#end if
-#if $param_rt_norm:
-  -rt_norm $param_rt_norm
-#end if
-#if $param_min_rsq:
-  -min_rsq $param_min_rsq
-#end if
-#if $param_min_coverage:
-  -min_coverage $param_min_coverage
-#end if
-#if $param_estimateBestPeptides:
-  -estimateBestPeptides
-#end if
-#if $param_RTNormalization_outlierMethod:
-  -RTNormalization:outlierMethod
-  #if " " in str($param_RTNormalization_outlierMethod):
-    "$param_RTNormalization_outlierMethod"
-  #else
-    $param_RTNormalization_outlierMethod
-  #end if
-#end if
-#if $param_RTNormalization_useIterativeChauvenet:
-  -RTNormalization:useIterativeChauvenet
-#end if
-#if $param_RTNormalization_RANSACMaxIterations:
-  -RTNormalization:RANSACMaxIterations $param_RTNormalization_RANSACMaxIterations
-#end if
-#if $param_RTNormalization_RANSACMaxPercentRTThreshold:
-  -RTNormalization:RANSACMaxPercentRTThreshold $param_RTNormalization_RANSACMaxPercentRTThreshold
-#end if
-#if $param_RTNormalization_RANSACSamplingSize:
-  -RTNormalization:RANSACSamplingSize $param_RTNormalization_RANSACSamplingSize
-#end if
-#if $param_algorithm_stop_report_after_feature:
-  -algorithm:stop_report_after_feature $param_algorithm_stop_report_after_feature
-#end if
-#if $param_algorithm_rt_extraction_window:
-  -algorithm:rt_extraction_window $param_algorithm_rt_extraction_window
-#end if
-#if $param_algorithm_rt_normalization_factor:
-  -algorithm:rt_normalization_factor $param_algorithm_rt_normalization_factor
-#end if
-#if $param_algorithm_uis_threshold_sn:
-  -algorithm:uis_threshold_sn $param_algorithm_uis_threshold_sn
-#end if
-#if $param_algorithm_uis_threshold_peak_area:
-  -algorithm:uis_threshold_peak_area $param_algorithm_uis_threshold_peak_area
-#end if
-#if $param_algorithm_TransitionGroupPicker_stop_after_feature:
-  -algorithm:TransitionGroupPicker:stop_after_feature $param_algorithm_TransitionGroupPicker_stop_after_feature
-#end if
-#if $param_algorithm_TransitionGroupPicker_stop_after_intensity_ratio:
-  -algorithm:TransitionGroupPicker:stop_after_intensity_ratio $param_algorithm_TransitionGroupPicker_stop_after_intensity_ratio
-#end if
-#if $param_algorithm_TransitionGroupPicker_PeakPickerMRM_sgolay_frame_length:
-  -algorithm:TransitionGroupPicker:PeakPickerMRM:sgolay_frame_length $param_algorithm_TransitionGroupPicker_PeakPickerMRM_sgolay_frame_length
-#end if
-#if $param_algorithm_TransitionGroupPicker_PeakPickerMRM_sgolay_polynomial_order:
-  -algorithm:TransitionGroupPicker:PeakPickerMRM:sgolay_polynomial_order $param_algorithm_TransitionGroupPicker_PeakPickerMRM_sgolay_polynomial_order
-#end if
-#if $param_algorithm_TransitionGroupPicker_PeakPickerMRM_gauss_width:
-  -algorithm:TransitionGroupPicker:PeakPickerMRM:gauss_width $param_algorithm_TransitionGroupPicker_PeakPickerMRM_gauss_width
-#end if
-#if $param_algorithm_TransitionGroupPicker_PeakPickerMRM_use_gauss:
-  -algorithm:TransitionGroupPicker:PeakPickerMRM:use_gauss
-  #if " " in str($param_algorithm_TransitionGroupPicker_PeakPickerMRM_use_gauss):
-    "$param_algorithm_TransitionGroupPicker_PeakPickerMRM_use_gauss"
-  #else
-    $param_algorithm_TransitionGroupPicker_PeakPickerMRM_use_gauss
-  #end if
-#end if
-#if $param_algorithm_TransitionGroupPicker_PeakPickerMRM_peak_width:
-  -algorithm:TransitionGroupPicker:PeakPickerMRM:peak_width $param_algorithm_TransitionGroupPicker_PeakPickerMRM_peak_width
-#end if
-#if $param_algorithm_TransitionGroupPicker_PeakPickerMRM_signal_to_noise:
-  -algorithm:TransitionGroupPicker:PeakPickerMRM:signal_to_noise $param_algorithm_TransitionGroupPicker_PeakPickerMRM_signal_to_noise
-#end if
-#if $param_algorithm_TransitionGroupPicker_PeakPickerMRM_sn_win_len:
-  -algorithm:TransitionGroupPicker:PeakPickerMRM:sn_win_len $param_algorithm_TransitionGroupPicker_PeakPickerMRM_sn_win_len
-#end if
-#if $param_algorithm_TransitionGroupPicker_PeakPickerMRM_sn_bin_count:
-  -algorithm:TransitionGroupPicker:PeakPickerMRM:sn_bin_count $param_algorithm_TransitionGroupPicker_PeakPickerMRM_sn_bin_count
-#end if
-#if $param_algorithm_TransitionGroupPicker_PeakPickerMRM_write_sn_log_messages:
-  -algorithm:TransitionGroupPicker:PeakPickerMRM:write_sn_log_messages
-  #if " " in str($param_algorithm_TransitionGroupPicker_PeakPickerMRM_write_sn_log_messages):
-    "$param_algorithm_TransitionGroupPicker_PeakPickerMRM_write_sn_log_messages"
-  #else
-    $param_algorithm_TransitionGroupPicker_PeakPickerMRM_write_sn_log_messages
-  #end if
+## Preprocessing
+mkdir in &&
+${ ' '.join(["ln -s '%s' 'in/%s.%s' &&" % (_, re.sub('[^\w\-_]', '_', _.element_identifier), $gxy2omsext(_.ext)) for _ in $in if _]) }
+mkdir tr &&
+ln -s '$tr' 'tr/${re.sub("[^\w\-_]", "_", $tr.element_identifier)}.$gxy2omsext($tr.ext)' &&
+mkdir out &&
+#if $rt_norm:
+  mkdir rt_norm &&
+  ln -s '$rt_norm' 'rt_norm/${re.sub("[^\w\-_]", "_", $rt_norm.element_identifier)}.$gxy2omsext($rt_norm.ext)' &&
 #end if
-#if $param_algorithm_TransitionGroupPicker_PeakPickerMRM_remove_overlapping_peaks:
-  -algorithm:TransitionGroupPicker:PeakPickerMRM:remove_overlapping_peaks
-#end if
-#if $param_algorithm_TransitionGroupPicker_PeakPickerMRM_method:
-  -algorithm:TransitionGroupPicker:PeakPickerMRM:method
-  #if " " in str($param_algorithm_TransitionGroupPicker_PeakPickerMRM_method):
-    "$param_algorithm_TransitionGroupPicker_PeakPickerMRM_method"
-  #else
-    $param_algorithm_TransitionGroupPicker_PeakPickerMRM_method
-  #end if
-#end if
-#if $param_algorithm_DIAScoring_dia_extraction_window:
-  -algorithm:DIAScoring:dia_extraction_window $param_algorithm_DIAScoring_dia_extraction_window
-#end if
-#if $param_algorithm_DIAScoring_dia_centroided:
-  -algorithm:DIAScoring:dia_centroided
-#end if
-#if $param_algorithm_DIAScoring_dia_byseries_intensity_min:
-  -algorithm:DIAScoring:dia_byseries_intensity_min $param_algorithm_DIAScoring_dia_byseries_intensity_min
-#end if
-#if $param_algorithm_DIAScoring_dia_byseries_ppm_diff:
-  -algorithm:DIAScoring:dia_byseries_ppm_diff $param_algorithm_DIAScoring_dia_byseries_ppm_diff
-#end if
-#if $param_algorithm_DIAScoring_dia_nr_isotopes:
-  -algorithm:DIAScoring:dia_nr_isotopes $param_algorithm_DIAScoring_dia_nr_isotopes
-#end if
-#if $param_algorithm_DIAScoring_dia_nr_charges:
-  -algorithm:DIAScoring:dia_nr_charges $param_algorithm_DIAScoring_dia_nr_charges
-#end if
-#if $param_algorithm_DIAScoring_peak_before_mono_max_ppm_diff:
-  -algorithm:DIAScoring:peak_before_mono_max_ppm_diff $param_algorithm_DIAScoring_peak_before_mono_max_ppm_diff
-#end if
-#if $param_peptideEstimation_InitialQualityCutoff:
-  -peptideEstimation:InitialQualityCutoff $param_peptideEstimation_InitialQualityCutoff
-#end if
-#if $param_peptideEstimation_OverallQualityCutoff:
-  -peptideEstimation:OverallQualityCutoff $param_peptideEstimation_OverallQualityCutoff
-#end if
-#if $param_peptideEstimation_NrRTBins:
-  -peptideEstimation:NrRTBins $param_peptideEstimation_NrRTBins
-#end if
-#if $param_peptideEstimation_MinPeptidesPerBin:
-  -peptideEstimation:MinPeptidesPerBin $param_peptideEstimation_MinPeptidesPerBin
-#end if
-#if $param_peptideEstimation_MinBinsFilled:
-  -peptideEstimation:MinBinsFilled $param_peptideEstimation_MinBinsFilled
-#end if
-#if $adv_opts.adv_opts_selector=='advanced':
-    #if $adv_opts.param_force:
-  -force
-#end if
-    #if $adv_opts.param_algorithm_quantification_cutoff:
-  -algorithm:quantification_cutoff $adv_opts.param_algorithm_quantification_cutoff
-#end if
-    #if $adv_opts.param_algorithm_write_convex_hull:
-  -algorithm:write_convex_hull
-#end if
-    #if $adv_opts.param_algorithm_add_up_spectra:
-  -algorithm:add_up_spectra $adv_opts.param_algorithm_add_up_spectra
-#end if
-    #if $adv_opts.param_algorithm_spacing_for_spectra_resampling:
-  -algorithm:spacing_for_spectra_resampling $adv_opts.param_algorithm_spacing_for_spectra_resampling
-#end if
-    #if $adv_opts.param_algorithm_TransitionGroupPicker_min_peak_width:
-  -algorithm:TransitionGroupPicker:min_peak_width $adv_opts.param_algorithm_TransitionGroupPicker_min_peak_width
-#end if
-    #if $adv_opts.param_algorithm_TransitionGroupPicker_background_subtraction:
-  -algorithm:TransitionGroupPicker:background_subtraction
-  #if " " in str($adv_opts.param_algorithm_TransitionGroupPicker_background_subtraction):
-    "$adv_opts.param_algorithm_TransitionGroupPicker_background_subtraction"
-  #else
-    $adv_opts.param_algorithm_TransitionGroupPicker_background_subtraction
-  #end if
-#end if
-    #if $adv_opts.param_algorithm_TransitionGroupPicker_recalculate_peaks:
-  -algorithm:TransitionGroupPicker:recalculate_peaks
-#end if
-    #if $adv_opts.param_algorithm_TransitionGroupPicker_use_precursors:
-  -algorithm:TransitionGroupPicker:use_precursors
-#end if
-    #if $adv_opts.param_algorithm_TransitionGroupPicker_recalculate_peaks_max_z:
-  -algorithm:TransitionGroupPicker:recalculate_peaks_max_z $adv_opts.param_algorithm_TransitionGroupPicker_recalculate_peaks_max_z
-#end if
-    #if $adv_opts.param_algorithm_TransitionGroupPicker_minimal_quality:
-  -algorithm:TransitionGroupPicker:minimal_quality $adv_opts.param_algorithm_TransitionGroupPicker_minimal_quality
-#end if
-    #if $adv_opts.param_algorithm_TransitionGroupPicker_resample_boundary:
-  -algorithm:TransitionGroupPicker:resample_boundary $adv_opts.param_algorithm_TransitionGroupPicker_resample_boundary
-#end if
-    #if $adv_opts.param_algorithm_TransitionGroupPicker_compute_peak_quality:
-  -algorithm:TransitionGroupPicker:compute_peak_quality
-#end if
-    #if $adv_opts.param_algorithm_EMGScoring_interpolation_step:
-  -algorithm:EMGScoring:interpolation_step $adv_opts.param_algorithm_EMGScoring_interpolation_step
-#end if
-    #if $adv_opts.param_algorithm_EMGScoring_tolerance_stdev_bounding_box:
-  -algorithm:EMGScoring:tolerance_stdev_bounding_box $adv_opts.param_algorithm_EMGScoring_tolerance_stdev_bounding_box
-#end if
-    #if $adv_opts.param_algorithm_EMGScoring_max_iteration:
-  -algorithm:EMGScoring:max_iteration $adv_opts.param_algorithm_EMGScoring_max_iteration
-#end if
-    #if $adv_opts.param_algorithm_EMGScoring_statistics_mean:
-  -algorithm:EMGScoring:statistics:mean $adv_opts.param_algorithm_EMGScoring_statistics_mean
-#end if
-    #if $adv_opts.param_algorithm_EMGScoring_statistics_variance:
-  -algorithm:EMGScoring:statistics:variance $adv_opts.param_algorithm_EMGScoring_statistics_variance
+
+## 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
+${' '.join(["'in/%s.%s'"%(re.sub('[^\w\-_]', '_', _.element_identifier), $gxy2omsext(_.ext)) for _ in $in if _])}
+-tr
+'tr/${re.sub("[^\w\-_]", "_", $tr.element_identifier)}.$gxy2omsext($tr.ext)'
+-out
+'out/output.${gxy2omsext("trafoxml")}'
+#if $rt_norm:
+  -rt_norm
+  'rt_norm/${re.sub("[^\w\-_]", "_", $rt_norm.element_identifier)}.$gxy2omsext($rt_norm.ext)'
 #end if
-    #if $adv_opts.param_algorithm_Scores_use_shape_score:
-  -algorithm:Scores:use_shape_score
-  #if " " in str($adv_opts.param_algorithm_Scores_use_shape_score):
-    "$adv_opts.param_algorithm_Scores_use_shape_score"
-  #else
-    $adv_opts.param_algorithm_Scores_use_shape_score
-  #end if
-#end if
-    #if $adv_opts.param_algorithm_Scores_use_coelution_score:
-  -algorithm:Scores:use_coelution_score
-  #if " " in str($adv_opts.param_algorithm_Scores_use_coelution_score):
-    "$adv_opts.param_algorithm_Scores_use_coelution_score"
-  #else
-    $adv_opts.param_algorithm_Scores_use_coelution_score
-  #end if
-#end if
-    #if $adv_opts.param_algorithm_Scores_use_rt_score:
-  -algorithm:Scores:use_rt_score
-  #if " " in str($adv_opts.param_algorithm_Scores_use_rt_score):
-    "$adv_opts.param_algorithm_Scores_use_rt_score"
-  #else
-    $adv_opts.param_algorithm_Scores_use_rt_score
-  #end if
-#end if
-    #if $adv_opts.param_algorithm_Scores_use_library_score:
-  -algorithm:Scores:use_library_score
-  #if " " in str($adv_opts.param_algorithm_Scores_use_library_score):
-    "$adv_opts.param_algorithm_Scores_use_library_score"
-  #else
-    $adv_opts.param_algorithm_Scores_use_library_score
-  #end if
-#end if
-    #if $adv_opts.param_algorithm_Scores_use_elution_model_score:
-  -algorithm:Scores:use_elution_model_score
-  #if " " in str($adv_opts.param_algorithm_Scores_use_elution_model_score):
-    "$adv_opts.param_algorithm_Scores_use_elution_model_score"
-  #else
-    $adv_opts.param_algorithm_Scores_use_elution_model_score
-  #end if
-#end if
-    #if $adv_opts.param_algorithm_Scores_use_intensity_score:
-  -algorithm:Scores:use_intensity_score
-  #if " " in str($adv_opts.param_algorithm_Scores_use_intensity_score):
-    "$adv_opts.param_algorithm_Scores_use_intensity_score"
-  #else
-    $adv_opts.param_algorithm_Scores_use_intensity_score
-  #end if
-#end if
-    #if $adv_opts.param_algorithm_Scores_use_nr_peaks_score:
-  -algorithm:Scores:use_nr_peaks_score
-  #if " " in str($adv_opts.param_algorithm_Scores_use_nr_peaks_score):
-    "$adv_opts.param_algorithm_Scores_use_nr_peaks_score"
-  #else
-    $adv_opts.param_algorithm_Scores_use_nr_peaks_score
-  #end if
-#end if
-    #if $adv_opts.param_algorithm_Scores_use_total_xic_score:
-  -algorithm:Scores:use_total_xic_score
-  #if " " in str($adv_opts.param_algorithm_Scores_use_total_xic_score):
-    "$adv_opts.param_algorithm_Scores_use_total_xic_score"
-  #else
-    $adv_opts.param_algorithm_Scores_use_total_xic_score
-  #end if
-#end if
-    #if $adv_opts.param_algorithm_Scores_use_sn_score:
-  -algorithm:Scores:use_sn_score
-  #if " " in str($adv_opts.param_algorithm_Scores_use_sn_score):
-    "$adv_opts.param_algorithm_Scores_use_sn_score"
-  #else
-    $adv_opts.param_algorithm_Scores_use_sn_score
-  #end if
-#end if
-    #if $adv_opts.param_algorithm_Scores_use_dia_scores:
-  -algorithm:Scores:use_dia_scores
-  #if " " in str($adv_opts.param_algorithm_Scores_use_dia_scores):
-    "$adv_opts.param_algorithm_Scores_use_dia_scores"
-  #else
-    $adv_opts.param_algorithm_Scores_use_dia_scores
-  #end if
-#end if
-    #if $adv_opts.param_algorithm_Scores_use_ms1_correlation:
-  -algorithm:Scores:use_ms1_correlation
-#end if
-    #if $adv_opts.param_algorithm_Scores_use_sonar_scores:
-  -algorithm:Scores:use_sonar_scores
-#end if
-    #if $adv_opts.param_algorithm_Scores_use_ms1_fullscan:
-  -algorithm:Scores:use_ms1_fullscan
-#end if
-    #if $adv_opts.param_algorithm_Scores_use_uis_scores:
-  -algorithm:Scores:use_uis_scores
-#end if
-#end if
-]]></command>
+
+## Postprocessing
+&& mv 'out/output.${gxy2omsext("trafoxml")}' '$out'
+#if "ctd_out_FLAG" in $OPTIONAL_OUTPUTS
+  && mv '@EXECUTABLE@.ctd' '$ctd_out'
+#end if]]></command>
+  <configfiles>
+    <inputs name="args_json" data_style="paths"/>
+    <configfile name="hardcoded_json"><![CDATA[{"log": "log.txt", "threads": "\${GALAXY_SLOTS:-1}", "no_progress": true}]]></configfile>
+  </configfiles>
   <inputs>
-    <param name="param_in" type="data" format="mzml" multiple="true" optional="False" size="30" label="Input files separated by blank" help="(-in) ">
-      <sanitizer>
-        <valid initial="string.printable">
-          <remove value="'"/>
-          <remove value="&quot;"/>
-        </valid>
-      </sanitizer>
+    <param name="in" argument="-in" type="data" format="mzml" multiple="true" optional="false" label="Input files separated by blank" help=" select mzml data sets(s)"/>
+    <param name="tr" argument="-tr" type="data" format="csv,traml" optional="false" label="transition file with the RT peptides ('TraML' or 'csv')" help=" select csv,traml data sets(s)"/>
+    <param name="rt_norm" argument="-rt_norm" type="data" format="trafoxml" optional="true" label="RT normalization file (how to map the RTs of this run to the ones stored in the library)" help=" select trafoxml data sets(s)"/>
+    <param name="min_rsq" argument="-min_rsq" type="float" optional="true" value="0.95" label="Minimum r-squared of RT peptides regression" help=""/>
+    <param name="min_coverage" argument="-min_coverage" type="float" optional="true" value="0.6" label="Minimum relative amount of RT peptides to keep" help=""/>
+    <param name="estimateBestPeptides" argument="-estimateBestPeptides" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Whether the algorithms should try to choose the best peptides based on their peak shape for normalization" help="Use this option you do not expect all your peptides to be detected in a sample and too many 'bad' peptides enter the outlier removal step (e.g. due to them being endogenous peptides or using a less curated list of peptides)"/>
+    <section name="RTNormalization" title="Parameters for the RTNormalization" help="RT normalization and outlier detection can be done iteratively (by default) which removes one outlier per iteration or using the RANSAC algorithm" expanded="false">
+      <param name="outlierMethod" argument="-RTNormalization:outlierMethod" display="radio" type="select" optional="false" label="Which outlier detection method to use (valid: 'iter_residual', 'iter_jackknife', 'ransac', 'none')" help="Iterative methods remove one outlier at a time. Jackknife approach optimizes for maximum r-squared improvement while 'iter_residual' removes the datapoint with the largest residual error (removal by residual is computationally cheaper, use this with lots of peptides)">
+        <option value="iter_residual" selected="true">iter_residual</option>
+        <option value="iter_jackknife">iter_jackknife</option>
+        <option value="ransac">ransac</option>
+        <option value="none">none</option>
+        <expand macro="list_string_san"/>
+      </param>
+      <param name="useIterativeChauvenet" argument="-RTNormalization:useIterativeChauvenet" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Whether to use Chauvenet's criterion when using iterative methods" help="This should be used if the algorithm removes too many datapoints but it may lead to true outliers being retained"/>
+      <param name="RANSACMaxIterations" argument="-RTNormalization:RANSACMaxIterations" type="integer" optional="true" value="1000" label="Maximum iterations for the RANSAC outlier detection algorithm" help=""/>
+      <param name="RANSACMaxPercentRTThreshold" argument="-RTNormalization:RANSACMaxPercentRTThreshold" type="integer" optional="true" value="3" label="Maximum threshold in RT dimension for the RANSAC outlier detection algorithm (in percent of the total gradient)" help="Default is set to 3% which is around +/- 4 minutes on a 120 gradient"/>
+      <param name="RANSACSamplingSize" argument="-RTNormalization:RANSACSamplingSize" type="integer" optional="true" value="10" label="Sampling size of data points per iteration for the RANSAC outlier detection algorithm" help=""/>
+    </section>
+    <section name="algorithm" title="Algorithm parameters section" help="" expanded="false">
+      <param name="stop_report_after_feature" argument="-algorithm:stop_report_after_feature" type="integer" optional="true" value="-1" label="Stop reporting after feature (ordered by quality; -1 means do not stop)" help=""/>
+      <param name="rt_extraction_window" argument="-algorithm:rt_extraction_window" type="float" optional="true" value="-1.0" label="Only extract RT around this value (-1 means extract over the whole range, a value of 500 means to extract around +/- 500 s of the expected elution)" help="For this to work, the TraML input file needs to contain normalized RT values"/>
+      <param name="rt_normalization_factor" argument="-algorithm:rt_normalization_factor" type="float" optional="true" value="1.0" label="The normalized RT is expected to be between 0 and 1" help="If your normalized RT has a different range, pass this here (e.g. it goes from 0 to 100, set this value to 100)"/>
+      <param name="quantification_cutoff" argument="-algorithm:quantification_cutoff" type="float" optional="true" min="0.0" value="0.0" label="Cutoff in m/z below which peaks should not be used for quantification any more" help=""/>
+      <param name="write_convex_hull" argument="-algorithm:write_convex_hull" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Whether to write out all points of all features into the featureXML" help=""/>
+      <param name="spectrum_addition_method" argument="-algorithm:spectrum_addition_method" display="radio" type="select" optional="false" label="For spectrum addition, either use simple concatenation or use peak resampling" help="">
+        <option value="simple" selected="true">simple</option>
+        <option value="resample">resample</option>
+        <expand macro="list_string_san"/>
+      </param>
+      <param name="add_up_spectra" argument="-algorithm:add_up_spectra" type="integer" optional="true" min="1" value="1" label="Add up spectra around the peak apex (needs to be a non-even integer)" help=""/>
+      <param name="spacing_for_spectra_resampling" argument="-algorithm:spacing_for_spectra_resampling" type="float" optional="true" min="0.0" value="0.005" label="If spectra are to be added, use this spacing to add them up" help=""/>
+      <param name="uis_threshold_sn" argument="-algorithm:uis_threshold_sn" type="integer" optional="true" value="-1" label="S/N threshold to consider identification transition (set to -1 to consider all)" help=""/>
+      <param name="uis_threshold_peak_area" argument="-algorithm:uis_threshold_peak_area" type="integer" optional="true" value="0" label="Peak area threshold to consider identification transition (set to -1 to consider all)" help=""/>
+      <param name="scoring_model" argument="-algorithm:scoring_model" display="radio" type="select" optional="false" label="Scoring model to use" help="">
+        <option value="default" selected="true">default</option>
+        <option value="single_transition">single_transition</option>
+        <expand macro="list_string_san"/>
+      </param>
+      <param name="im_extra_drift" argument="-algorithm:im_extra_drift" type="float" optional="true" min="0.0" value="0.0" label="Extra drift time to extract for IM scoring (as a fraction" help="e.g. 0.25 means 25% extra on each side)"/>
+      <section name="TransitionGroupPicker" title="" help="" expanded="false">
+        <param name="stop_after_feature" argument="-algorithm:TransitionGroupPicker:stop_after_feature" type="integer" optional="true" value="-1" label="Stop finding after feature (ordered by intensity; -1 means do not stop)" help=""/>
+        <param name="stop_after_intensity_ratio" argument="-algorithm:TransitionGroupPicker:stop_after_intensity_ratio" type="float" optional="true" value="0.0001" label="Stop after reaching intensity ratio" help=""/>
+        <param name="min_peak_width" argument="-algorithm:TransitionGroupPicker:min_peak_width" type="float" optional="true" value="-1.0" label="Minimal peak width (s), discard all peaks below this value (-1 means no action)" help=""/>
+        <param name="peak_integration" argument="-algorithm:TransitionGroupPicker:peak_integration" display="radio" type="select" optional="false" label="Calculate the peak area and height either the smoothed or the raw chromatogram data" help="">
+          <option value="original" selected="true">original</option>
+          <option value="smoothed">smoothed</option>
+          <expand macro="list_string_san"/>
+        </param>
+        <param name="background_subtraction" argument="-algorithm:TransitionGroupPicker:background_subtraction" display="radio" type="select" optional="false" label="Remove background from peak signal using estimated noise levels" help="The 'original' method is only provided for historical purposes, please use the 'exact' method and set parameters using the PeakIntegrator: settings. The same original or smoothed chromatogram specified by peak_integration will be used for background estimation">
+          <option value="none" selected="true">none</option>
+          <option value="original">original</option>
+          <option value="exact">exact</option>
+          <expand macro="list_string_san"/>
+        </param>
+        <param name="recalculate_peaks" argument="-algorithm:TransitionGroupPicker:recalculate_peaks" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Tries to get better peak picking by looking at peak consistency of all picked peaks" help="Tries to use the consensus (median) peak border if the variation within the picked peaks is too large"/>
+        <param name="use_precursors" argument="-algorithm:TransitionGroupPicker:use_precursors" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Use precursor chromatogram for peak picking (note that this may lead to precursor signal driving the peak picking)" help=""/>
+        <param name="use_consensus" argument="-algorithm:TransitionGroupPicker:use_consensus" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Use consensus peak boundaries when computing transition group picking (if false, compute independent peak boundaries for each transition)" help=""/>
+        <param name="recalculate_peaks_max_z" argument="-algorithm:TransitionGroupPicker:recalculate_peaks_max_z" type="float" optional="true" value="1.0" label="Determines the maximal Z-Score (difference measured in standard deviations) that is considered too large for peak boundaries" help="If the Z-Score is above this value, the median is used for peak boundaries (default value 1.0)"/>
+        <param name="minimal_quality" argument="-algorithm:TransitionGroupPicker:minimal_quality" type="float" optional="true" value="-10000.0" label="Only if compute_peak_quality is set, this parameter will not consider peaks below this quality threshold" help=""/>
+        <param name="resample_boundary" argument="-algorithm:TransitionGroupPicker:resample_boundary" type="float" optional="true" value="15.0" label="For computing peak quality, how many extra seconds should be sample left and right of the actual peak" help=""/>
+        <param name="compute_peak_quality" argument="-algorithm:TransitionGroupPicker:compute_peak_quality" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Tries to compute a quality value for each peakgroup and detect outlier transitions" help="The resulting score is centered around zero and values above 0 are generally good and below -1 or -2 are usually bad"/>
+        <param name="compute_peak_shape_metrics" argument="-algorithm:TransitionGroupPicker:compute_peak_shape_metrics" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Calculates various peak shape metrics" help="(e.g., tailing) that can be used for downstream QC/QA"/>
+        <param name="compute_total_mi" argument="-algorithm:TransitionGroupPicker:compute_total_mi" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Compute mutual information metrics for individual transitions that can be used for OpenSWATH/IPF scoring" help=""/>
+        <param name="boundary_selection_method" argument="-algorithm:TransitionGroupPicker:boundary_selection_method" display="radio" type="select" optional="false" label="Method to use when selecting the best boundaries for peaks" help="">
+          <option value="largest" selected="true">largest</option>
+          <option value="widest">widest</option>
+          <expand macro="list_string_san"/>
+        </param>
+        <section name="PeakPickerMRM" title="" help="" expanded="false">
+          <param name="sgolay_frame_length" argument="-algorithm:TransitionGroupPicker:PeakPickerMRM:sgolay_frame_length" type="integer" optional="true" value="15" label="The number of subsequent data points used for smoothing" help="This number has to be uneven. If it is not, 1 will be added"/>
+          <param name="sgolay_polynomial_order" argument="-algorithm:TransitionGroupPicker:PeakPickerMRM:sgolay_polynomial_order" type="integer" optional="true" value="3" label="Order of the polynomial that is fitted" help=""/>
+          <param name="gauss_width" argument="-algorithm:TransitionGroupPicker:PeakPickerMRM:gauss_width" type="float" optional="true" value="50.0" label="Gaussian width in seconds, estimated peak size" help=""/>
+          <param name="use_gauss" argument="-algorithm:TransitionGroupPicker:PeakPickerMRM:use_gauss" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Use Gaussian filter for smoothing (alternative is Savitzky-Golay filter)" help=""/>
+          <param name="peak_width" argument="-algorithm:TransitionGroupPicker:PeakPickerMRM:peak_width" type="float" optional="true" value="-1.0" label="Force a certain minimal peak_width on the data" help="(e.g. extend the peak at least by this amount on both sides) in seconds. -1 turns this feature off"/>
+          <param name="signal_to_noise" argument="-algorithm:TransitionGroupPicker:PeakPickerMRM:signal_to_noise" type="float" optional="true" min="0.0" value="1.0" label="Signal-to-noise threshold at which a peak will not be extended any more" help="Note that setting this too high (e.g. 1.0) can lead to peaks whose flanks are not fully captured"/>
+          <param name="sn_win_len" argument="-algorithm:TransitionGroupPicker:PeakPickerMRM:sn_win_len" type="float" optional="true" value="1000.0" label="Signal to noise window length" help=""/>
+          <param name="sn_bin_count" argument="-algorithm:TransitionGroupPicker:PeakPickerMRM:sn_bin_count" type="integer" optional="true" value="30" label="Signal to noise bin count" help=""/>
+          <param name="write_sn_log_messages" argument="-algorithm:TransitionGroupPicker:PeakPickerMRM:write_sn_log_messages" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Write out log messages of the signal-to-noise estimator in case of sparse windows or median in rightmost histogram bin" help=""/>
+          <param name="remove_overlapping_peaks" argument="-algorithm:TransitionGroupPicker:PeakPickerMRM:remove_overlapping_peaks" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Try to remove overlapping peaks during peak picking" help=""/>
+          <param name="method" argument="-algorithm:TransitionGroupPicker:PeakPickerMRM:method" display="radio" type="select" optional="false" label="Which method to choose for chromatographic peak-picking (OpenSWATH legacy on raw data, corrected picking on smoothed chromatogram or Crawdad on smoothed chromatogram)" help="">
+            <option value="legacy">legacy</option>
+            <option value="corrected" selected="true">corrected</option>
+            <option value="crawdad">crawdad</option>
+            <expand macro="list_string_san"/>
+          </param>
+        </section>
+        <section name="PeakIntegrator" title="" help="" expanded="false">
+          <param name="integration_type" argument="-algorithm:TransitionGroupPicker:PeakIntegrator:integration_type" display="radio" type="select" optional="false" label="The integration technique to use in integratePeak() and estimateBackground() which uses either the summed intensity, integration by Simpson's rule or trapezoidal integration" help="">
+            <option value="intensity_sum" selected="true">intensity_sum</option>
+            <option value="simpson">simpson</option>
+            <option value="trapezoid">trapezoid</option>
+            <expand macro="list_string_san"/>
+          </param>
+          <param name="baseline_type" argument="-algorithm:TransitionGroupPicker:PeakIntegrator:baseline_type" display="radio" type="select" optional="false" label="The baseline type to use in estimateBackground() based on the peak boundaries" help="A rectangular baseline shape is computed based either on the minimal intensity of the peak boundaries, the maximum intensity or the average intensity (base_to_base)">
+            <option value="base_to_base" selected="true">base_to_base</option>
+            <option value="vertical_division">vertical_division</option>
+            <option value="vertical_division_min">vertical_division_min</option>
+            <option value="vertical_division_max">vertical_division_max</option>
+            <expand macro="list_string_san"/>
+          </param>
+          <param name="fit_EMG" argument="-algorithm:TransitionGroupPicker:PeakIntegrator:fit_EMG" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Fit the chromatogram/spectrum to the EMG peak model" help=""/>
+        </section>
+      </section>
+      <section name="DIAScoring" title="" help="" expanded="false">
+        <param name="dia_extraction_window" argument="-algorithm:DIAScoring:dia_extraction_window" type="float" optional="true" min="0.0" value="0.05" label="DIA extraction window in Th or ppm" help=""/>
+        <param name="dia_extraction_unit" argument="-algorithm:DIAScoring:dia_extraction_unit" display="radio" type="select" optional="false" label="DIA extraction window unit" help="">
+          <option value="Th" selected="true">Th</option>
+          <option value="ppm">ppm</option>
+          <expand macro="list_string_san"/>
+        </param>
+        <param name="dia_centroided" argument="-algorithm:DIAScoring:dia_centroided" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Use centroided DIA data" help=""/>
+        <param name="dia_byseries_intensity_min" argument="-algorithm:DIAScoring:dia_byseries_intensity_min" type="float" optional="true" min="0.0" value="300.0" label="DIA b/y series minimum intensity to conside" help=""/>
+        <param name="dia_byseries_ppm_diff" argument="-algorithm:DIAScoring:dia_byseries_ppm_diff" type="float" optional="true" min="0.0" value="10.0" label="DIA b/y series minimal difference in ppm to conside" help=""/>
+        <param name="dia_nr_isotopes" argument="-algorithm:DIAScoring:dia_nr_isotopes" type="integer" optional="true" min="0" value="4" label="DIA number of isotopes to conside" help=""/>
+        <param name="dia_nr_charges" argument="-algorithm:DIAScoring:dia_nr_charges" type="integer" optional="true" min="0" value="4" label="DIA number of charges to conside" help=""/>
+        <param name="peak_before_mono_max_ppm_diff" argument="-algorithm:DIAScoring:peak_before_mono_max_ppm_diff" type="float" optional="true" min="0.0" value="20.0" label="DIA maximal difference in ppm to count a peak at lower m/z when searching for evidence that a peak might not be monoisotopic" help=""/>
+      </section>
+      <section name="EMGScoring" title="" help="" expanded="false">
+        <param name="interpolation_step" argument="-algorithm:EMGScoring:interpolation_step" type="float" optional="true" value="0.2" label="Sampling rate for the interpolation of the model function" help=""/>
+        <param name="tolerance_stdev_bounding_box" argument="-algorithm:EMGScoring:tolerance_stdev_bounding_box" type="float" optional="true" value="3.0" label="Bounding box has range [minimim of data, maximum of data] enlarged by tolerance_stdev_bounding_box times the standard deviation of the data" help=""/>
+        <param name="max_iteration" argument="-algorithm:EMGScoring:max_iteration" type="integer" optional="true" value="500" label="Maximum number of iterations using by Levenberg-Marquardt algorithm" help=""/>
+        <section name="statistics" title="" help="" expanded="false">
+          <param name="mean" argument="-algorithm:EMGScoring:statistics:mean" type="float" optional="true" value="1.0" label="Centroid position of the model" help=""/>
+          <param name="variance" argument="-algorithm:EMGScoring:statistics:variance" type="float" optional="true" value="1.0" label="Variance of the model" help=""/>
+        </section>
+      </section>
+      <section name="Scores" title="" help="" expanded="false">
+        <param name="use_shape_score" argument="-algorithm:Scores:use_shape_score" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Use the shape score (this score measures the similarity in shape of the transitions using a cross-correlation)" help=""/>
+        <param name="use_coelution_score" argument="-algorithm:Scores:use_coelution_score" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Use the coelution score (this score measures the similarity in coelution of the transitions using a cross-correlation)" help=""/>
+        <param name="use_rt_score" argument="-algorithm:Scores:use_rt_score" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Use the retention time score (this score measure the difference in retention time)" help=""/>
+        <param name="use_library_score" argument="-algorithm:Scores:use_library_score" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Use the library score" help=""/>
+        <param name="use_elution_model_score" argument="-algorithm:Scores:use_elution_model_score" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Use the elution model (EMG) score (this score fits a gaussian model to the peak and checks the fit)" help=""/>
+        <param name="use_intensity_score" argument="-algorithm:Scores:use_intensity_score" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Use the intensity score" help=""/>
+        <param name="use_nr_peaks_score" argument="-algorithm:Scores:use_nr_peaks_score" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Use the number of peaks score" help=""/>
+        <param name="use_total_xic_score" argument="-algorithm:Scores:use_total_xic_score" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Use the total XIC score" help=""/>
+        <param name="use_total_mi_score" argument="-algorithm:Scores:use_total_mi_score" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Use the total MI score" help=""/>
+        <param name="use_sn_score" argument="-algorithm:Scores:use_sn_score" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Use the SN (signal to noise) score" help=""/>
+        <param name="use_mi_score" argument="-algorithm:Scores:use_mi_score" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Use the MI (mutual information) score" help=""/>
+        <param name="use_dia_scores" argument="-algorithm:Scores:use_dia_scores" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Use the DIA (SWATH) scores" help="If turned off, will not use fragment ion spectra for scoring"/>
+        <param name="use_ms1_correlation" argument="-algorithm:Scores:use_ms1_correlation" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Use the correlation scores with the MS1 elution profiles" help=""/>
+        <param name="use_sonar_scores" argument="-algorithm:Scores:use_sonar_scores" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Use the scores for SONAR scans (scanning swath)" help=""/>
+        <param name="use_ion_mobility_scores" argument="-algorithm:Scores:use_ion_mobility_scores" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Use the scores for Ion Mobility scans" help=""/>
+        <param name="use_ms1_fullscan" argument="-algorithm:Scores:use_ms1_fullscan" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Use the full MS1 scan at the peak apex for scoring (ppm accuracy of precursor and isotopic pattern)" help=""/>
+        <param name="use_ms1_mi" argument="-algorithm:Scores:use_ms1_mi" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Use the MS1 MI score" help=""/>
+        <param name="use_uis_scores" argument="-algorithm:Scores:use_uis_scores" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Use UIS scores for peptidoform identification" help=""/>
+      </section>
+    </section>
+    <section name="peptideEstimation" title="Parameters for the peptide estimation (use -estimateBestPeptides to enable)" help="" expanded="false">
+      <param name="InitialQualityCutoff" argument="-peptideEstimation:InitialQualityCutoff" type="float" optional="true" value="0.5" label="The initial overall quality cutoff for a peak to be scored (range ca" help="-2 to 2)"/>
+      <param name="OverallQualityCutoff" argument="-peptideEstimation:OverallQualityCutoff" type="float" optional="true" value="5.5" label="The overall quality cutoff for a peak to go into the retention time estimation (range ca" help="0 to 10)"/>
+      <param name="NrRTBins" argument="-peptideEstimation:NrRTBins" type="integer" optional="true" value="10" label="Number of RT bins to use to compute coverage" help="This option should be used to ensure that there is a complete coverage of the RT space (this should detect cases where only a part of the RT gradient is actually covered by normalization peptides)"/>
+      <param name="MinPeptidesPerBin" argument="-peptideEstimation:MinPeptidesPerBin" type="integer" optional="true" value="1" label="Minimal number of peptides that are required for a bin to counted as 'covered'" help=""/>
+      <param name="MinBinsFilled" argument="-peptideEstimation:MinBinsFilled" type="integer" optional="true" value="8" label="Minimal number of bins required to be covered" help=""/>
+    </section>
+    <expand macro="adv_opts_macro">
+      <param name="force" argument="-force" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Overwrite tool specific checks" help=""/>
+      <param name="test" argument="-test" type="hidden" optional="true" value="False" label="Enables the test mode (needed for internal use only)" help="">
+        <expand macro="list_string_san"/>
+      </param>
+    </expand>
+    <param name="OPTIONAL_OUTPUTS" type="select" multiple="true" label="Optional outputs" optional="true">
+      <option value="ctd_out_FLAG">Output used ctd (ini) configuration file</option>
     </param>
-    <param name="param_tr" type="data" format="tabular,traml" optional="False" label="transition file with the RT peptides ('TraML' or 'csv')" help="(-tr) "/>
-    <param name="param_rt_norm" type="data" format="trafoxml" optional="True" label="RT normalization file (how to map the RTs of this run to the ones stored in the library)" help="(-rt_norm) "/>
-    <param name="param_min_rsq" type="float" value="0.95" label="Minimum r-squared of RT peptides regression" help="(-min_rsq) "/>
-    <param name="param_min_coverage" type="float" value="0.6" label="Minimum relative amount of RT peptides to keep" help="(-min_coverage) "/>
-    <param name="param_estimateBestPeptides" display="radio" type="boolean" truevalue="-estimateBestPeptides" falsevalue="" checked="false" optional="True" label="Whether the algorithms should try to choose the best peptides based on their peak shape for normalization. Use this option you do not expect all your peptides to be detected in a sample and too many 'bad' peptides enter the outlier removal step (" help="(-estimateBestPeptides) e.g. due to them being endogenous peptides or using a less curated list of peptides)"/>
-    <param name="param_RTNormalization_outlierMethod" display="radio" type="select" optional="False" value="iter_residual" label="Which outlier detection method to use (valid: 'iter_residual', 'iter_jackknife', 'ransac', 'none')" help="(-outlierMethod) Iterative methods remove one outlier at a time. Jackknife approach optimizes for maximum r-squared improvement while 'iter_residual' removes the datapoint with the largest residual error (removal by residual is computationally cheaper, use this with lots of peptides)">
-      <option value="iter_residual" selected="true">iter_residual</option>
-      <option value="iter_jackknife">iter_jackknife</option>
-      <option value="ransac">ransac</option>
-      <option value="none">none</option>
-    </param>
-    <param name="param_RTNormalization_useIterativeChauvenet" display="radio" type="boolean" truevalue="-RTNormalization:useIterativeChauvenet" falsevalue="" checked="false" optional="True" label="Whether to use Chauvenet's criterion when using iterative methods" help="(-useIterativeChauvenet) This should be used if the algorithm removes too many datapoints but it may lead to true outliers being retained"/>
-    <param name="param_RTNormalization_RANSACMaxIterations" type="integer" value="1000" label="Maximum iterations for the RANSAC outlier detection algorithm" help="(-RANSACMaxIterations) "/>
-    <param name="param_RTNormalization_RANSACMaxPercentRTThreshold" type="integer" value="3" label="Maximum threshold in RT dimension for the RANSAC outlier detection algorithm (in percent of the total gradient)" help="(-RANSACMaxPercentRTThreshold) Default is set to 3% which is around +/- 4 minutes on a 120 gradient"/>
-    <param name="param_RTNormalization_RANSACSamplingSize" type="integer" value="10" label="Sampling size of data points per iteration for the RANSAC outlier detection algorithm" help="(-RANSACSamplingSize) "/>
-    <param name="param_algorithm_stop_report_after_feature" type="integer" value="-1" label="Stop reporting after feature (ordered by quality; -1 means do not stop)" help="(-stop_report_after_feature) "/>
-    <param name="param_algorithm_rt_extraction_window" type="float" value="-1.0" label="Only extract RT around this value (-1 means extract over the whole range, a value of 500 means to extract around +/- 500 s of the expected elution)" help="(-rt_extraction_window) For this to work, the TraML input file needs to contain normalized RT values"/>
-    <param name="param_algorithm_rt_normalization_factor" type="float" value="1.0" label="The normalized RT is expected to be between 0 and 1. If your normalized RT has a different range, pass this here (" help="(-rt_normalization_factor) e.g. it goes from 0 to 100, set this value to 100)"/>
-    <param name="param_algorithm_uis_threshold_sn" type="integer" value="-1" label="S/N threshold to consider identification transition (set to -1 to consider all)" help="(-uis_threshold_sn) "/>
-    <param name="param_algorithm_uis_threshold_peak_area" type="integer" value="0" label="Peak area threshold to consider identification transition (set to -1 to consider all)" help="(-uis_threshold_peak_area) "/>
-    <param name="param_algorithm_TransitionGroupPicker_stop_after_feature" type="integer" value="-1" label="Stop finding after feature (ordered by intensity; -1 means do not stop)" help="(-stop_after_feature) "/>
-    <param name="param_algorithm_TransitionGroupPicker_stop_after_intensity_ratio" type="float" value="0.0001" label="Stop after reaching intensity ratio" help="(-stop_after_intensity_ratio) "/>
-    <param name="param_algorithm_TransitionGroupPicker_PeakPickerMRM_sgolay_frame_length" type="integer" value="15" label="The number of subsequent data points used for smoothing" help="(-sgolay_frame_length) &lt;br&gt;This number has to be uneven. If it is not, 1 will be added"/>
-    <param name="param_algorithm_TransitionGroupPicker_PeakPickerMRM_sgolay_polynomial_order" type="integer" value="3" label="Order of the polynomial that is fitted" help="(-sgolay_polynomial_order) "/>
-    <param name="param_algorithm_TransitionGroupPicker_PeakPickerMRM_gauss_width" type="float" value="50.0" label="Gaussian width in seconds, estimated peak size" help="(-gauss_width) "/>
-    <param name="param_algorithm_TransitionGroupPicker_PeakPickerMRM_use_gauss" display="radio" type="select" optional="False" value="true" label="Use Gaussian filter for smoothing (alternative is Savitzky-Golay filter)" help="(-use_gauss) ">
-      <option value="false">false</option>
-      <option value="true" selected="true">true</option>
-    </param>
-    <param name="param_algorithm_TransitionGroupPicker_PeakPickerMRM_peak_width" type="float" value="-1.0" label="Force a certain minimal peak_width on the data (" help="(-peak_width) e.g. extend the peak at least by this amount on both sides) in seconds. -1 turns this feature off"/>
-    <param name="param_algorithm_TransitionGroupPicker_PeakPickerMRM_signal_to_noise" type="float" min="0.0" optional="True" value="1.0" label="Signal-to-noise threshold at which a peak will not be extended any more. Note that setting this too high (" help="(-signal_to_noise) e.g. 1.0) can lead to peaks whose flanks are not fully captured"/>
-    <param name="param_algorithm_TransitionGroupPicker_PeakPickerMRM_sn_win_len" type="float" value="1000.0" label="Signal to noise window length" help="(-sn_win_len) "/>
-    <param name="param_algorithm_TransitionGroupPicker_PeakPickerMRM_sn_bin_count" type="integer" value="30" label="Signal to noise bin count" help="(-sn_bin_count) "/>
-    <param name="param_algorithm_TransitionGroupPicker_PeakPickerMRM_write_sn_log_messages" display="radio" type="select" optional="False" value="true" label="Write out log messages of the signal-to-noise estimator in case of sparse windows or median in rightmost histogram bin" help="(-write_sn_log_messages) ">
-      <option value="true" selected="true">true</option>
-      <option value="false">false</option>
-    </param>
-    <param name="param_algorithm_TransitionGroupPicker_PeakPickerMRM_remove_overlapping_peaks" display="radio" type="boolean" truevalue="-algorithm:TransitionGroupPicker:PeakPickerMRM:remove_overlapping_peaks" falsevalue="" checked="false" optional="True" label="Try to remove overlapping peaks during peak picking" help="(-remove_overlapping_peaks) "/>
-    <param name="param_algorithm_TransitionGroupPicker_PeakPickerMRM_method" display="radio" type="select" optional="False" value="corrected" label="Which method to choose for chromatographic peak-picking (OpenSWATH legacy on raw data, corrected picking on smoothed chromatogram or Crawdad on smoothed chromatogram)" help="(-method) ">
-      <option value="legacy">legacy</option>
-      <option value="corrected" selected="true">corrected</option>
-      <option value="crawdad">crawdad</option>
-    </param>
-    <param name="param_algorithm_DIAScoring_dia_extraction_window" type="float" min="0.0" optional="True" value="0.05" label="DIA extraction window in Th" help="(-dia_extraction_window) "/>
-    <param name="param_algorithm_DIAScoring_dia_centroided" display="radio" type="boolean" truevalue="-algorithm:DIAScoring:dia_centroided" falsevalue="" checked="false" optional="True" label="Use centroded DIA data" help="(-dia_centroided) "/>
-    <param name="param_algorithm_DIAScoring_dia_byseries_intensity_min" type="float" min="0.0" optional="True" value="300.0" label="DIA b/y series minimum intensity to conside" help="(-dia_byseries_intensity_min) "/>
-    <param name="param_algorithm_DIAScoring_dia_byseries_ppm_diff" type="float" min="0.0" optional="True" value="10.0" label="DIA b/y series minimal difference in ppm to conside" help="(-dia_byseries_ppm_diff) "/>
-    <param name="param_algorithm_DIAScoring_dia_nr_isotopes" type="integer" min="0" optional="True" value="4" label="DIA nr of isotopes to conside" help="(-dia_nr_isotopes) "/>
-    <param name="param_algorithm_DIAScoring_dia_nr_charges" type="integer" min="0" optional="True" value="4" label="DIA nr of charges to conside" help="(-dia_nr_charges) "/>
-    <param name="param_algorithm_DIAScoring_peak_before_mono_max_ppm_diff" type="float" min="0.0" optional="True" value="20.0" label="DIA maximal difference in ppm to count a peak at lower m/z when searching for evidence that a peak might not be monoisotopic" help="(-peak_before_mono_max_ppm_diff) "/>
-    <param name="param_peptideEstimation_InitialQualityCutoff" type="float" value="0.5" label="The initial overall quality cutoff for a peak to be scored (range ca" help="(-InitialQualityCutoff) -2 to 2)"/>
-    <param name="param_peptideEstimation_OverallQualityCutoff" type="float" value="5.5" label="The overall quality cutoff for a peak to go into the retention time estimation (range ca" help="(-OverallQualityCutoff) 0 to 10)"/>
-    <param name="param_peptideEstimation_NrRTBins" type="integer" value="10" label="Number of RT bins to use to compute coverage" help="(-NrRTBins) This option should be used to ensure that there is a complete coverage of the RT space (this should detect cases where only a part of the RT gradient is actually covered by normalization peptides)"/>
-    <param name="param_peptideEstimation_MinPeptidesPerBin" type="integer" value="1" label="Minimal number of peptides that are required for a bin to counted as 'covered'" help="(-MinPeptidesPerBin) "/>
-    <param name="param_peptideEstimation_MinBinsFilled" type="integer" value="8" label="Minimal number of bins required to be covered" help="(-MinBinsFilled) "/>
-    <expand macro="advanced_options">
-      <param name="param_force" display="radio" type="boolean" truevalue="-force" falsevalue="" checked="false" optional="True" label="Overwrite tool specific checks" help="(-force) "/>
-      <param name="param_algorithm_quantification_cutoff" type="float" min="0.0" optional="True" value="0.0" label="Cutoff in m/z below which peaks should not be used for quantification any more" help="(-quantification_cutoff) "/>
-      <param name="param_algorithm_write_convex_hull" display="radio" type="boolean" truevalue="-algorithm:write_convex_hull" falsevalue="" checked="false" optional="True" label="Whether to write out all points of all features into the featureXML" help="(-write_convex_hull) "/>
-      <param name="param_algorithm_add_up_spectra" type="integer" min="1" optional="True" value="1" label="Add up spectra around the peak apex (needs to be a non-even integer)" help="(-add_up_spectra) "/>
-      <param name="param_algorithm_spacing_for_spectra_resampling" type="float" min="0.0" optional="True" value="0.005" label="If spectra are to be added, use this spacing to add them up" help="(-spacing_for_spectra_resampling) "/>
-      <param name="param_algorithm_TransitionGroupPicker_min_peak_width" type="float" value="-1.0" label="Minimal peak width (s), discard all peaks below this value (-1 means no action)" help="(-min_peak_width) "/>
-      <param name="param_algorithm_TransitionGroupPicker_background_subtraction" display="radio" type="select" optional="False" value="none" label="Try to apply a background subtraction to the peak (experimental)" help="(-background_subtraction) The background is estimated at the peak boundaries, either the smoothed or the raw chromatogram data can be used for that">
-        <option value="none" selected="true">none</option>
-        <option value="smoothed">smoothed</option>
-        <option value="original">original</option>
-      </param>
-      <param name="param_algorithm_TransitionGroupPicker_recalculate_peaks" display="radio" type="boolean" truevalue="-algorithm:TransitionGroupPicker:recalculate_peaks" falsevalue="" checked="false" optional="True" label="Tries to get better peak picking by looking at peak consistency of all picked peaks" help="(-recalculate_peaks) Tries to use the consensus (median) peak border if theof variation within the picked peaks is too large"/>
-      <param name="param_algorithm_TransitionGroupPicker_use_precursors" display="radio" type="boolean" truevalue="-algorithm:TransitionGroupPicker:use_precursors" falsevalue="" checked="false" optional="True" label="Use precursor chromatogram for peak picking" help="(-use_precursors) "/>
-      <param name="param_algorithm_TransitionGroupPicker_recalculate_peaks_max_z" type="float" value="1.0" label="Determines the maximal Z-Score (difference measured in standard deviations) that is considered too large for peak boundaries" help="(-recalculate_peaks_max_z) If the Z-Score is above this value, the median is used for peak boundaries (default value 1.0)"/>
-      <param name="param_algorithm_TransitionGroupPicker_minimal_quality" type="float" value="-10000.0" label="Only if compute_peak_quality is set, this parameter will not consider peaks below this quality threshold" help="(-minimal_quality) "/>
-      <param name="param_algorithm_TransitionGroupPicker_resample_boundary" type="float" value="15.0" label="For computing peak quality, how many extra seconds should be sample left and right of the actual peak" help="(-resample_boundary) "/>
-      <param name="param_algorithm_TransitionGroupPicker_compute_peak_quality" display="radio" type="boolean" truevalue="-algorithm:TransitionGroupPicker:compute_peak_quality" falsevalue="" checked="false" optional="True" label="Tries to compute a quality value for each peakgroup and detect outlier transitions" help="(-compute_peak_quality) The resulting score is centered around zero and values above 0 are generally good and below -1 or -2 are usually bad"/>
-      <param name="param_algorithm_EMGScoring_interpolation_step" type="float" value="0.2" label="Sampling rate for the interpolation of the model function" help="(-interpolation_step) "/>
-      <param name="param_algorithm_EMGScoring_tolerance_stdev_bounding_box" type="float" value="3.0" label="Bounding box has range [minimim of data, maximum of data] enlarged by tolerance_stdev_bounding_box times the standard deviation of the data" help="(-tolerance_stdev_bounding_box) "/>
-      <param name="param_algorithm_EMGScoring_max_iteration" type="integer" value="500" label="Maximum number of iterations using by Levenberg-Marquardt algorithm" help="(-max_iteration) "/>
-      <param name="param_algorithm_EMGScoring_statistics_mean" type="float" value="1.0" label="Centroid position of the model" help="(-mean) "/>
-      <param name="param_algorithm_EMGScoring_statistics_variance" type="float" value="1.0" label="Variance of the model" help="(-variance) "/>
-      <param name="param_algorithm_Scores_use_shape_score" display="radio" type="select" optional="False" value="true" label="Use the shape score (this score measures the similarity in shape of the transitions using a cross-correlation)" help="(-use_shape_score) ">
-        <option value="true" selected="true">true</option>
-        <option value="false">false</option>
-      </param>
-      <param name="param_algorithm_Scores_use_coelution_score" display="radio" type="select" optional="False" value="true" label="Use the coelution score (this score measures the similarity in coelution of the transitions using a cross-correlation)" help="(-use_coelution_score) ">
-        <option value="true" selected="true">true</option>
-        <option value="false">false</option>
-      </param>
-      <param name="param_algorithm_Scores_use_rt_score" display="radio" type="select" optional="False" value="true" label="Use the retention time score (this score measure the difference in retention time)" help="(-use_rt_score) ">
-        <option value="true" selected="true">true</option>
-        <option value="false">false</option>
-      </param>
-      <param name="param_algorithm_Scores_use_library_score" display="radio" type="select" optional="False" value="true" label="Use the library score" help="(-use_library_score) ">
-        <option value="true" selected="true">true</option>
-        <option value="false">false</option>
-      </param>
-      <param name="param_algorithm_Scores_use_elution_model_score" display="radio" type="select" optional="False" value="true" label="Use the elution model (EMG) score (this score fits a gaussian model to the peak and checks the fit)" help="(-use_elution_model_score) ">
-        <option value="true" selected="true">true</option>
-        <option value="false">false</option>
-      </param>
-      <param name="param_algorithm_Scores_use_intensity_score" display="radio" type="select" optional="False" value="true" label="Use the intensity score" help="(-use_intensity_score) ">
-        <option value="true" selected="true">true</option>
-        <option value="false">false</option>
-      </param>
-      <param name="param_algorithm_Scores_use_nr_peaks_score" display="radio" type="select" optional="False" value="true" label="Use the number of peaks score" help="(-use_nr_peaks_score) ">
-        <option value="true" selected="true">true</option>
-        <option value="false">false</option>
-      </param>
-      <param name="param_algorithm_Scores_use_total_xic_score" display="radio" type="select" optional="False" value="true" label="Use the total XIC score" help="(-use_total_xic_score) ">
-        <option value="true" selected="true">true</option>
-        <option value="false">false</option>
-      </param>
-      <param name="param_algorithm_Scores_use_sn_score" display="radio" type="select" optional="False" value="true" label="Use the SN (signal to noise) score" help="(-use_sn_score) ">
-        <option value="true" selected="true">true</option>
-        <option value="false">false</option>
-      </param>
-      <param name="param_algorithm_Scores_use_dia_scores" display="radio" type="select" optional="False" value="true" label="Use the DIA (SWATH) scores" help="(-use_dia_scores) If turned off, will not use fragment ion spectra for scoring">
-        <option value="true" selected="true">true</option>
-        <option value="false">false</option>
-      </param>
-      <param name="param_algorithm_Scores_use_ms1_correlation" display="radio" type="boolean" truevalue="-algorithm:Scores:use_ms1_correlation" falsevalue="" checked="false" optional="True" label="Use the correlation scores with the MS1 elution profiles" help="(-use_ms1_correlation) "/>
-      <param name="param_algorithm_Scores_use_sonar_scores" display="radio" type="boolean" truevalue="-algorithm:Scores:use_sonar_scores" falsevalue="" checked="false" optional="True" label="Use the scores for SONAR scans (scanning swath)" help="(-use_sonar_scores) "/>
-      <param name="param_algorithm_Scores_use_ms1_fullscan" display="radio" type="boolean" truevalue="-algorithm:Scores:use_ms1_fullscan" falsevalue="" checked="false" optional="True" label="Use the full MS1 scan at the peak apex for scoring (ppm accuracy of precursor and isotopic pattern)" help="(-use_ms1_fullscan) "/>
-      <param name="param_algorithm_Scores_use_uis_scores" display="radio" type="boolean" truevalue="-algorithm:Scores:use_uis_scores" falsevalue="" checked="false" optional="True" label="Use UIS scores for peptidoform identification" help="(-use_uis_scores) "/>
-    </expand>
   </inputs>
   <outputs>
-    <data name="param_out" format="trafoxml"/>
+    <data name="out" label="${tool.name} on ${on_string}: out" format="trafoxml"/>
+    <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>
-  <help>This tool will take a description of RT peptides and their normalized retention time to write out a transformation file on how to transform the RT space into the normalized space.
+  <tests>
+    <expand macro="autotest_OpenSwathRTNormalizer"/>
+    <expand macro="manutest_OpenSwathRTNormalizer"/>
+  </tests>
+  <help><![CDATA[This tool will take a description of RT peptides and their normalized retention time to write out a transformation file on how to transform the RT space into the normalized space.
 
 
-For more information, visit https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Documentation/release/2.3.0/html/TOPP_OpenSwathRTNormalizer.html</help>
+For more information, visit http://www.openms.de/documentation/TOPP_OpenSwathRTNormalizer.html]]></help>
+  <expand macro="references"/>
 </tool>