diff OpenSwathAnalyzer.xml @ 9:bc57c90ba60f 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:14:25 +0000
parents 9f0a3a6b5df6
children 7ca917175b23
line wrap: on
line diff
--- a/OpenSwathAnalyzer.xml	Fri May 17 10:14:18 2019 -0400
+++ b/OpenSwathAnalyzer.xml	Wed Sep 09 20:14:25 2020 +0000
@@ -1,424 +1,234 @@
 <?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="OpenSwathAnalyzer" name="OpenSwathAnalyzer" version="2.3.0">
+<tool id="OpenSwathAnalyzer" name="OpenSwathAnalyzer" version="@TOOL_VERSION@+galaxy@GALAXY_VERSION@" profile="20.05">
   <description>Picks peaks and finds features in an SWATH-MS or SRM experiment.</description>
   <macros>
     <token name="@EXECUTABLE@">OpenSwathAnalyzer</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[OpenSwathAnalyzer
+  <command detect_errors="exit_code"><![CDATA[@QUOTE_FOO@
+@EXT_FOO@
+#import re
 
-#if $param_in:
-  -in $param_in
-#end if
-#if $param_tr:
-  -tr $param_tr
-#end if
-#if $param_rt_norm:
-  -rt_norm $param_rt_norm
-#end if
-#if $param_out:
-  -out $param_out
-#end if
-#if $param_no_strict:
-  -no-strict
-#end if
--swath_files
-  #for token in $param_swath_files:
-    $token
-  #end for
-#if $param_min_upper_edge_dist:
-  -min_upper_edge_dist $param_min_upper_edge_dist
-#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
+## Preprocessing
+mkdir in &&
+ln -s '$in' 'in/${re.sub("[^\w\-_]", "_", $in.element_identifier)}.$gxy2omsext($in.ext)' &&
+mkdir tr &&
+ln -s '$tr' 'tr/${re.sub("[^\w\-_]", "_", $tr.element_identifier)}.$gxy2omsext($tr.ext)' &&
+#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_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
-#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 $adv_opts.adv_opts_selector=='advanced':
-    #if $adv_opts.param_force:
-  -force
-#end if
-    #if $adv_opts.param_model_type:
-  -model:type
-  #if " " in str($adv_opts.param_model_type):
-    "$adv_opts.param_model_type"
-  #else
-    $adv_opts.param_model_type
-  #end if
-#end if
-    #if $adv_opts.param_model_symmetric_regression:
-  -model:symmetric_regression
-#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
+mkdir out &&
+#if $swath_files:
+  mkdir swath_files &&
+  ${ ' '.join(["ln -s '%s' 'swath_files/%s.%s' &&" % (_, re.sub('[^\w\-_]', '_', _.element_identifier), $gxy2omsext(_.ext)) for _ in $swath_files if _]) }
 #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
-#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
+
+## Main program call
+
+set -o pipefail &&
+@EXECUTABLE@ -write_ctd ./ &&
+python3 '$__tool_directory__/fill_ctd.py' '@EXECUTABLE@.ctd' '$args_json' '$hardcoded_json' &&
+@EXECUTABLE@ -ini @EXECUTABLE@.ctd
+-in
+'in/${re.sub("[^\w\-_]", "_", $in.element_identifier)}.$gxy2omsext($in.ext)'
+-tr
+'tr/${re.sub("[^\w\-_]", "_", $tr.element_identifier)}.$gxy2omsext($tr.ext)'
+#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_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
+-out
+'out/output.${gxy2omsext("featurexml")}'
+#if $swath_files:
+  -swath_files
+  ${' '.join(["'swath_files/%s.%s'"%(re.sub('[^\w\-_]', '_', _.element_identifier), $gxy2omsext(_.ext)) for _ in $swath_files 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("featurexml")}' '$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" optional="False" label="input file containing the chromatograms" help="(-in) "/>
-    <param name="param_tr" type="data" format="traml" optional="False" label="transition file" 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_no_strict" display="radio" type="boolean" truevalue="-no-strict" falsevalue="" checked="false" optional="True" label="run in non-strict mode and allow some chromatograms to not be mapped" help="(-no-strict) "/>
-    <param name="param_swath_files" type="data" format="mzml" multiple="true" optional="True" size="30" label="[applies only if you have full MS2 spectra maps] Swath files that were used to extract the transitions" help="(-swath_files) If present, SWATH specific scoring will be used">
-      <sanitizer>
-        <valid initial="string.printable">
-          <remove value="'"/>
-          <remove value="&quot;"/>
-        </valid>
-      </sanitizer>
-    </param>
-    <param name="param_min_upper_edge_dist" type="float" value="0.0" label="[applies only if you have full MS2 spectra maps] Minimal distance to the edge to still consider a precursor, in Thomson (only in SWATH)" help="(-min_upper_edge_dist) "/>
-    <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) "/>
-    <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_model_type" display="radio" type="select" optional="False" value="linear" label="Type of model" help="(-type) ">
+    <param name="in" argument="-in" type="data" format="mzml" optional="false" label="input file containing the chromatograms" help=" select mzml data sets(s)"/>
+    <param name="tr" argument="-tr" type="data" format="traml" optional="false" label="transition file" help=" select 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="no_strict" argument="-no-strict" type="boolean" truevalue="true" falsevalue="false" checked="false" label="run in non-strict mode and allow some chromatograms to not be mapped" help=""/>
+    <param name="swath_files" argument="-swath_files" type="data" format="mzml" multiple="true" optional="true" label="[applies only if you have full MS2 spectra maps] Swath files that were used to extract the transitions" help="If present, SWATH specific scoring will be used select mzml data sets(s)"/>
+    <param name="min_upper_edge_dist" argument="-min_upper_edge_dist" type="float" optional="true" value="0.0" label="[applies only if you have full MS2 spectra maps] Minimal distance to the edge to still consider a precursor, in Thomson (only in SWATH)" help=""/>
+    <section name="model" title="Options to control the modeling of retention time transformations from data" help="" expanded="false">
+      <param name="type" argument="-model:type" display="radio" type="select" optional="false" label="Type of model" help="">
         <option value="linear" selected="true">linear</option>
         <option value="b_spline">b_spline</option>
         <option value="interpolated">interpolated</option>
         <option value="lowess">lowess</option>
-      </param>
-      <param name="param_model_symmetric_regression" display="radio" type="boolean" truevalue="-model:symmetric_regression" falsevalue="" checked="false" optional="True" label="Only for 'linear' model: Perform linear regression on 'y - x' vs" help="(-symmetric_regression) 'y + x', instead of on 'y' vs. 'x'"/>
-      <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>
+        <expand macro="list_string_san"/>
       </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 name="symmetric_regression" argument="-model:symmetric_regression" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Only for 'linear' model: Perform linear regression on 'y - x' vs" help="'y + x', instead of on 'y' vs. 'x'"/>
+    </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="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 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="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 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>
+    <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>
-      <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>
+    <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>
   </inputs>
   <outputs>
-    <data name="param_out" format="featurexml"/>
+    <data name="out" label="${tool.name} on ${on_string}: out" format="featurexml"/>
+    <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>Picks peaks and finds features in an SWATH-MS or SRM experiment.
+  <tests>
+    <expand macro="autotest_OpenSwathAnalyzer"/>
+    <expand macro="manutest_OpenSwathAnalyzer"/>
+  </tests>
+  <help><![CDATA[Picks peaks and finds features in an SWATH-MS or SRM experiment.
 
 
-For more information, visit https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Documentation/release/2.3.0/html/TOPP_OpenSwathAnalyzer.html</help>
+For more information, visit http://www.openms.de/documentation/TOPP_OpenSwathAnalyzer.html]]></help>
+  <expand macro="references"/>
 </tool>