diff msconvert_raw.xml @ 4:158a71ee5733 draft

planemo upload commit b4871f9659a924a68430aed3a93f4f9bad733fd6
author galaxyp
date Wed, 07 Dec 2016 17:43:19 -0500
parents 8e2e7ff2b6bd
children 637e309295cf
line wrap: on
line diff
--- a/msconvert_raw.xml	Fri Oct 23 12:57:37 2015 -0400
+++ b/msconvert_raw.xml	Wed Dec 07 17:43:19 2016 -0500
@@ -1,282 +1,396 @@
-<tool id="msconvert_raw" name="msconvert (vendor support)" version="0.3.0">
-  <description>Convert and/or filter mass spectrometry files (with vendor support on Windows)</description>
-
+<tool id="msconvert_raw" name="msconvert RAW" version="0.3.0">
+  <!-- BEGIN_VERSION_RAW -->
+  <description>Convert and filter a Thermo Finnigan RAW file</description>
+  <!-- END_VERSION_RAW -->
   <requirements>
-    <requirement type="package" version="3.0.9016">proteowizard</requirement>
+<!--
+    <requirement type="package" version="3_0_4388">proteowizard</requirement>
+-->
+    <!-- BEGIN_VERSION_RAW -->
+    <requirement type="platform">windows</requirement>
+    <!-- END_VERSION_RAW -->
   </requirements>
+  <command interpreter="python">
+    #set $ext = $input.ext
+    msconvert_wrapper.py
+    --input=${input}
+    #if hasattr($input, 'display_name')
+    --input_name='${input.display_name}'
+    #end if
+    --output=${output}
 
-  <macros>
-    <import>msconvert_macros.xml</import>
-  </macros>
+    ## BEGIN_VERSION_RAW
+    --fromextension=RAW
+    ## END_VERSION_RAW
+
+    --toextension=${output_type}
+
+    #if $settings.settingsType == "full"
+    --binaryencoding=${settings.binary_encoding}
+    --mzencoding=${settings.mz_encoding}
+    --intensityencoding=${settings.intensity_encoding}
+    --zlib=${settings.zlib}
+    #end if
+
+    #if $filtering.filtering_use
+
+    #if $filtering.precursor_recalculation.value
+    --filter "precursorRecalculation"
+    #end if
+
+    #if $filtering.peak_picking.pick_peaks
+    --filter "peakPicking $filtering.peak_picking.prefer_vendor_peaks $filtering.peak_picking.ms_levels"
+    #end if
+
+    #if str($filtering.activation) != "false"
+    --filter "activation $filtering.activation"
+    #end if
+
+    #if len($filtering.indices) > 0
+    --filter "index
+    #for $index in $filtering.indices
+    [${index.from},${index.to}]
+    #end for
+    "
+    #end if
+
+    #if len($filtering.scan_numbers) > 0
+    --filter "scanNumber
+    #for $scan_number in $filtering.scan_numbers
+    [${scan_number.from},${scan_number.to}]
+    #end for
+    "
+    #end if
+
+    #for threshold_entry in $filtering.threshold_repeat
+    --filter "threshold $threshold_entry.threshold.threshold_type $threshold_entry.threshold.value $threshold_entry.orientation"
+    #end for
 
-  <expand macro="msconvertCommand" />
+    $filtering.strip_it
+    $filtering.metadataFixer
+    $filtering.sortByScanTime
+
+    #if $filtering.filter_mz_windows.do_filter
+    --filter "mzWindow [$filtering.filter_mz_windows.from,$filtering.filter_mz_windows.to]"
+    #end if
+
+    #if $filtering.filter_chargeStatePredictor.do_filter
+        --filter "chargeStatePredictor $filtering.filter_chargeStatePredictor.overrideExistingCharge $filtering.filter_chargeStatePredictor.maxMultipleCharge $filtering.filter_chargeStatePredictor.minMultipleCharge $filtering.filter_chargeStatePredictor.singleChargeFractionTIC $filtering.filter_chargeStatePredictor.algorithmMakeMS2"
+    #end if
+
+
+    #if $filtering.filter_ms_levels.do_filter
+    --filter "msLevel [$filtering.filter_ms_levels.from, $filtering.filter_ms_levels.to]"
+    #end if
+
+    #if str($filtering.etd_filtering.do_etd_filtering) == "default"
+    --filter "ETDFilter"
+    #end if
+
+    #if str($filtering.etd_filtering.do_etd_filtering) == "advanced"
+    --filter "ETDFilter removePrecursor:$filtering.etd_filtering.remove_precursor removeChargeReduced:$filtering.etd_filtering.remove_charge_reduced  removeNeutralLoss:$filtering.etd_filtering.remove_neutral_loss  blanketRemoval:$filtering.etd_filtering.blanket_removal  MatchingTolerance:$filtering.etd_filtering.matching_tolerance $filtering.etd_filtering.matching_tolerance_units"
+    #end if
+
+    ## BEGIN_VERSION_3
+
+    #if $filtering.precursor_refine.value
+    --filter "precursorRefine"
+    #end if
+
+    #if $filtering.ms2denoise.denoise
+    --filter "MS2Denoise $filtering.ms2denoise.num_peaks $filtering.ms2denoise.window_width $filtering.ms2denoise.relax"
+    #end if
+
+    #if str($filtering.ms2deisotope) == "true"
+    --filter "MS2Deisotope"
+    #end if
+
+    #if str($filtering.polarity) != "false"
+    --filter "polarity $filtering.polarity"
+    #end if
+
+    #if str($filtering.analyzer) != "false"
+    --filter "analyzer $filtering.analyzer"
+    #end if
+
+    ## END_VERSION_3
+
+    #end if
+
+  </command>
 
   <inputs>
-    <!-- TODO: add Bruker, Waters, Agilent types -->
-    <param format="mzml,mzxml,mz5,mgf,wiff,raw" name="input" type="data" label="Input unrefined MS data" />
-
-    <expand macro="msconvertInputParameters" />
-  </inputs>
-
-  <expand macro="msconvertOutput" />
+    <!-- BEGIN_VERSION_RAW -->
+    <param format="RAW" name="input" type="data" label="Thermo Finnigan RAW Input" help="select input file in RAW format"/>
+    <!-- END_VERSION_RAW -->
 
-  <tests>
-    <test>
-      <param name="input" value="small.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="pick_peaks" value="true" />
-      <param name="pick_peaks_algorithm" value="cwt" />
-      <param name="pick_peaks_ms_levels" value="1-" />
-      <output name="output" file="small-peakpicking-cwt-allMS.mzML" />
-    </test>
+    <param name="output_type" type="select" label="Output Type">
+      <option value="mzML">mzML (indexed)</option>
+      <option value="unindexed_mzML">mzML (unindexed)</option>
+      <option value="mzXML">mzXML (indexed)</option>
+      <option value="unindexed_mzXML">mzXML (unindexed)</option>
+      <option value="mgf">mgf</option>
+      <option value="ms2">ms2</option>
+    </param>
+    <conditional name="filtering">
+      <param name="filtering_use" type="boolean" label="Use Filtering?" help="" truevalue="true" falsevalue="false" />
+      <when value="false" />
+      <when value="true">
+        <param type="boolean" name="precursor_recalculation" label="Recalculate Precursor?" />
+        <!-- BEGIN_VERSION_3 -->
+        <param type="boolean" name="precursor_refine" label="Refine Precursor?" />
+        <!-- END_VERSION_3 -->
+
+
+        <conditional name="peak_picking">
+          <param type="boolean" name="pick_peaks" label="Use Peak Picking?" truevalue="true" falsevalue="false" />
+          <when value="false" />
+          <when value="true">
+            <param name="ms_levels" type="select" label="Peak Peaking - Apply to MS Levels">
+              <option value="1">MS1 Only (1)</option>
+              <option value="2">MS2 Only (2)</option>
+              <option value="2-">MS2 and on (2-)</option>
+              <option value="1-">All Levels (1-)</option>
+            </param>
+            <param type="boolean" name="prefer_vendor_peaks" label="Peak Picking - Prefer Vendor Peaks?" truevalue="true" falsevalue="false" checked="true"/>
+          </when>
+        </conditional>
 
-    <!-- this data file only has profile MS1, so the result is the same -->
-    <test>
-      <param name="input" value="small.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="pick_peaks" value="true" />
-      <param name="pick_peaks_algorithm" value="cwt" />
-      <param name="pick_peaks_ms_levels" value="1" />
-      <output name="output" file="small-peakpicking-cwt-allMS.mzML" /> 
-    </test>
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mz5" />
-      <param name="mz_encoding" value="64" />
-      <param name="intensity_encoding" value="64" />
-      <output name="output" file="small-zlib-64.mz5" compare="sim_size" delta="100" />
-    </test>
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzXML" />
-      <param name="mz_encoding" value="32" />
-      <param name="intensity_encoding" value="32" />
-      <output name="output" file="small-zlib-32.mzXML" />
-    </test>
-    <!-- TODO: how to test gzipped output?
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzXML" />
-      <param name="mz_encoding" value="32" />
-      <param name="intensity_encoding" value="32" />
-      <param name="binary_compression" value="false" />
-      <param name="gzip_compression" value="true" />
-      <output name="output" file="small-off-32.mzXML.gz" compare="sim_size" delta="100" />
-    </test>
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="mz_encoding" value="32" />
-      <param name="intensity_encoding" value="32" />
-      <param name="binary_compression" value="false" />
-      <param name="gzip_compression" value="true" />
-      <output name="output" file="small-off-32.mzML.gz" compare="sim_size" delta="100" />
-    </test>-->
+        <repeat name="threshold_repeat" title="Filter by Threshold">
+          <conditional name="threshold">
+            <param type="select" label="Specify threshold on" name="threshold_type" help="">
+              <option value="count">Peak count</option>
+              <option value="count-after-ties">Peak count (after ties)</option>
+              <option value="absolute">Peak absolute intensity</option><!-- TODO: absolute what? m/z -->
+              <option value="bpi-relative">Percent of base peak intensity</option>
+              <option value="tic-relative">Percent of total ion current</option>
+              <option value="tic-fraction">Aggregate percent of total ion current</option>
+            </param>
+            <when value="count">
+              <param type="integer" name="value" label="Number of peaks to keep" value="100" />
+            </when>
+            <when value="count-after-ties">
+              <param type="integer" name="value" label="Number of peaks to keep (after ties)" value="100" />
+            </when>
+            <when value="absolute">
+              <param type="float" name="value" label="Absolute intensity cut-off" value="100.0" />
+            </when>
+            <when value="bpi-relative">
+              <param type="float" name="value" label="Keep peaks above (or below) this fraction of base peak intensity" value="0.2"
+              />
+            </when>
+            <when value="tic-relative">
+              <param type="float" name="value" label="Keep peaks above (or below) this fraction of total ion current" value="0.2"
+              />
+            </when>
+            <when value="tic-fraction">
+              <param type="float" name="value" label="Keep peaks until this fraction of total ion current is accounted for" value="0.8" />
+            </when>
+          </conditional>
+          <param type="select" label="Keep" name="orientation">
+            <option value="most-intense">Most intense peaks</option>
+            <option value="least-intense">Least intense peaks</option>
+          </param>
+        </repeat>
 
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="binary_compression" value="numpressLinearPic" />
-      <output name="output" file="small-numpressLP.mzML" />
-    </test>
+        <param name="activation" type="select" label="Filter by Activation">
+          <option value="false" selected="true">no</option>
+          <option value="ETD">ETD</option>
+          <option value="CID">CID</option>
+          <option value="SA">SA</option>
+          <option value="HCD">HCD</option>
+          <!-- BEGIN_VERSION_3 -->
+          <option>BIRD</option>
+          <option>ECD</option>
+          <option>IRMPD</option>
+          <option>PD</option>
+          <option>PSD</option>
+          <option>PQD</option>
+          <option>SID</option>
+          <option>SORI</option>
+          <!-- END_VERSION_3 -->
+        </param>
 
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="binary_compression" value="numpressLinearSlof" />
-      <output name="output" file="small-numpressLS.mzML" />
-    </test>
+        <repeat name="indices" title="Filter Scan Indices">
+          <param name="from" type="integer" label="Filter Scan Index From" value="0" optional="false" />
+          <param name="to" type="integer" label="Filter Scan Index To" value="0" optional="true" />
+        </repeat>
 
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="binary_compression" value="numpressLinear" />
-      <output name="output" file="small-numpressL.mzML" />
-    </test>
+        <repeat name="scan_numbers" title="Filter Scan Numbers">
+          <param name="from" type="integer" label="Filter Scan Number From" value="0" optional="false" />
+          <param name="to" type="integer" label="Filter Scan Number To" value="0" optional="true" />
+        </repeat>
 
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="binary_compression" value="numpressPic" />
-      <output name="output" file="small-numpressP.mzML" />
-    </test>
+        <conditional name="filter_mz_windows">
+          <param name="do_filter" type="boolean" truevalue="true" falsevalue="false" label="Filter m/z Window" help="" />
+          <when value="false" />
+          <when value="true">
+            <param name="from" type="float" label="Filter m/z From" value="0.0" optional="false" />
+            <param name="to" type="float" label="Filter m/z To" value="0.0" optional="true" />
+          </when>
+        </conditional>
 
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="binary_compression" value="numpressSlof" />
-      <output name="output" file="small-numpressS.mzML" />
-    </test>
+        <param name="strip_it" type="boolean"
+            truevalue="--filter 'stripIT'" falsevalue=""
+            label="Strip Ion Trap MS1 Scans" />
+        <param name="metadataFixer" type="boolean" truevalue="--filter 'metadataFixer'" falsevalue=""
+            label="This filter is used to add or replace a spectra's TIC/BPI metadata"
+            help="It is usually used after peakPicking where the change from profile to centroided data may make the TIC and BPI values inconsistent with the revised scan data." />
+        <param name="sortByScanTime" type="boolean"
+            truevalue="--filter 'sortByScanTime'" falsevalue=""
+            label=" This filter reorders spectra, sorting them by ascending scan start time." />
 
-    <test>
-      <param name="input" value="Rpal_01.mz5" />
-      <param name="output_type" value="mzML" />
-      <param name="binary_compression" value="numpressLinearPic" />
-      <param name="use_mzrefinement" value="true" />
-      <param name="input_ident" value="Rpal_01.pepXML.gz" />
-      <param name="thresholdScore" value="mvh" />
-      <param name="thresholdValue" value="40-" />
-      <output name="output" file="Rpal_01-mzRefinement.mzML" compare="sim_size" delta="0" />
-      <output name="output.refinement" file="Rpal_01.pepXML.mzRefinement.tsv" />
-    </test>
-    
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="binary_compression" value="numpressLinearPic" />
-      <param name="charge_state_calculation_method" value="predictor" />
-      <param name="predictor_overrideExistingCharge" value="true" />
-      <param name="minMultipleCharge" value="2" />
-      <param name="maxMultipleCharge" value="5" />
-      <param name="singleChargeFractionTIC" value="0.95" />
-      <param name="maxKnownCharge" value="8" />
-      <output name="output" file="small-chargeStatePredictor.mzML" />
-    </test>
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="binary_compression" value="numpressLinearPic" />
-      <param name="charge_state_calculation_method" value="turbocharger" />
-      <param name="minCharge" value="1" />
-      <param name="maxCharge" value="5" />
-      <param name="precursorsBefore" value="1" />
-      <param name="precursorsAfter" value="1" />
-      <param name="halfIsoWidth" value="1.5" />
-      <param name="defaultMinCharge" value="1" />
-      <param name="defaultMaxCharge" value="5" />
-      <output name="output" file="small-turbocharger.mzML" />
-    </test>
-    <test>
-      <param name="input" value="D100930_yeast_SCX10S_rak_ft8E_pc_01.mz5" />
-      <param name="output_type" value="mzML" />
-      <param name="do_etd_filtering" value="true" />
-      <param name="remove_precursor" value="true" />
-      <param name="remove_charge_reduced" value="true" />
-      <param name="remove_neutral_loss" value="false" />
-      <param name="blanket_removal" value="false" />
-      <param name="matching_tolerance" value="50" />
-      <param name="matching_tolerance_units" value="ppm" />
-      <param name="binary_compression" value="numpressLinearPic" />
-      <output name="output" file="D100930_yeast_SCX10S_rak_ft8E_pc_01-etdfilter.mzML" />
-    </test>
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="thresholds_0|threshold_type" value="count" />
-      <param name="thresholds_0|value" value="100" />
-      <param name="thresholds_0|orientation" value="most-intense" />
-      <param name="thresholds_1|threshold_type" value="absolute" />
-      <param name="thresholds_1|value" value="1" />
-      <param name="thresholds_1|orientation" value="most-intense" />
-      <param name="binary_compression" value="numpressLinearPic" />
-      <output name="output" file="small-threshold.mzML" />
-    </test>
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="do_mzwindow_filter" value="true" />
-      <param name="mz_window_from" value="420" />
-      <param name="mz_window_to" value="840" />
-      <param name="binary_compression" value="numpressLinearPic" />
-      <output name="output" file="small-mzWindow.mzML" />
-    </test>
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="denoise" value="true" />
-      <param name="num_peaks" value="10" />
-      <param name="window_width" value="40" />
-      <param name="relax" value="false" />
-      <param name="binary_compression" value="numpressLinearPic" />
-      <output name="output" file="small-denoise.mzML" />
-    </test>
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="ms2deisotope" value="true" />
-      <param name="binary_compression" value="numpressLinearPic" />
-      <output name="output" file="small-deisotope.mzML" />
-    </test>
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="activation" value="CID" />
-      <param name="binary_compression" value="numpressLinearPic" />
-      <output name="output" file="small-activation.mzML" />
-    </test>
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="indices_0|from" value="2" />
-      <param name="indices_0|to" value="4" />
-      <param name="indices_1|from" value="10" />
-      <param name="indices_1|to" value="10" />
-      <param name="indices_2|from" value="13" />
-      <param name="indices_2|to" value="15" />
-      <param name="binary_compression" value="numpressLinearPic" />
-      <output name="output" file="small-index-filter.mzML" />
-    </test>
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="strip_it" value="true" />
-      <param name="binary_compression" value="numpressLinearPic" />
-      <output name="output" file="small-strip-it.mzML" />
-    </test>
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="do_ms_level_filter" value="true" />
-      <param name="ms_level_from" value="2" />
-      <param name="ms_level_to" value="2" />
-      <param name="binary_compression" value="numpressLinearPic" />
-      <output name="output" file="small-ms-level-filter.mzML" />
-    </test>
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="polarity" value="positive" />
-      <param name="binary_compression" value="numpressLinearPic" />
-      <output name="output" file="small-polarity-filter.mzML" />
-    </test>
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="analyzer" value="IT" />
-      <param name="binary_compression" value="numpressLinearPic" />
-      <output name="output" file="small-analyzer-filter.mzML" />
-    </test>
-    <test>
-      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="scan_numbers_0|from" value="3" />
-      <param name="scan_numbers_0|to" value="5" />
-      <param name="scan_numbers_1|from" value="11" />
-      <param name="scan_numbers_1|to" value="11" />
-      <param name="scan_numbers_2|from" value="14" />
-      <param name="scan_numbers_2|to" value="16" />
-      <param name="binary_compression" value="numpressLinearPic" />
-      <output name="output" file="small-index-filter.mzML" /> <!-- the scan numbers here produce the same output as the index test above -->
-    </test>
-    <!--<test>
-      <param name="input" value="small.mzML" />
-      <param name="output_type" value="mzML" />
-      <param name="binary_compression" value="numpressLinearPic" />
-      <output name="output" file="small-deisotope-poisson.mzML" />
-    </test>-->
-  </tests>
+        <conditional name="filter_chargeStatePredictor">
+            <param name="do_filter" type="boolean"
+                label=" Predicts MSn spectrum precursors to be singly or multiply charged depending on the ratio of intensity above and below the precursor m/z"
+                help="or optionally using the 'makeMS2' algorithm" />
+            <when value="false" />
+            <when value="true">
+                <param name="overrideExistingCharge" type="boolean" checked="True" truevalue="true" falsevalue="false"
+                    label="always override existing charge information"/>
+                <param name="minMultipleCharge" type="integer" value="2" optional="true"
+                    label="Minimum of the range of values to add to the spectrum's existing 'MS_possible_charge_state' values."
+                    help="If these are the same values, the spectrum's MS_possible_charge_state values are removed and replaced with this single."/>
+                <param name="maxMultipleCharge" type="integer" value="3" optional="false"
+                    label="Maximum of the range of values to add to the spectrum's existing 'MS_possible_charge_state' values." />
+
+                <param name="singleChargeFractionTIC" type="float" min="0.0" max="1.0" value="0.9"
+                    help="Is a percentage expressed as a value between 0 and 1"
+                    label="This is the value used as the previously mentioned ratio of intensity above and below the precursor m/z." />
+
+                <param name="algorithmMakeMS2" type="boolean" checked="False" truevalue="true" falsevalue="false"
+                    label="Use 'makeMS2' algorithm instead of the one described above"/>
+
+          </when>
+          <when value="false"/>
+        </conditional>
+
+        <conditional name="filter_ms_levels">
+          <param name="do_filter" type="boolean" label="Filter MS Levels" />
+          <when value="false" />
+          <when value="true">
+            <param name="from" type="integer" label="Filter MS Level From" value="0" optional="false" />
+            <param name="to" type="integer" label="Filter MS Level To" value="0" optional="true" />
+          </when>
+        </conditional>
+
+        <conditional name="etd_filtering">
+          <param name="do_etd_filtering" type="select" label="ETD Filtering">
+            <option value="none" selected="true">none</option>
+            <option value="default">yes (with default options)</option>
+            <option value="advanced">yes (show advanced options) </option>
+          </param>
+          <when value="none" />
+          <when value="default" />
+          <when value="advanced">
+            <param name="matching_tolerance" type="float" label="ETD Matching Tolernace" value="3.1">
+            </param>
+            <param name="matching_tolerance_units" type="select" label="Units for ETD Matching Tolerance">
+              <option value="MZ" selected="true">mz</option>
+              <option value="PPM">ppm</option>
+            </param>
+            <param name="remove_precursor" type="select" label="ETD Remove Precursor">
+              <option value="true" selected="true">yes</option>
+              <option value="false">no</option>
+            </param>
+            <param name="remove_charge_reduced" type="select" label="ETD Remove Charge Reduced">
+              <option value="true" selected="true">yes</option>
+              <option value="false">no</option>
+            </param>
+            <param name="remove_neutral_loss" type="select" label="ETD Remove Neutral Loss">
+              <option value="true" selected="true">yes</option>
+              <option value="false">no</option>
+            </param>
+            <param name="blanket_removal" type="select" label="ETD Blanket Removal">
+              <option value="true" selected="true">yes</option>
+              <option value="false">no</option>
+            </param>
+          </when>
+        </conditional>
+
+
+        <!-- BEGIN_VERSION_3 -->
+        <conditional name="ms2denoise">
+          <param name="denoise" type="boolean" label="De-noise MS2 with moving window filter"  />
+          <when value="true">
+            <param name="num_peaks" label="De-noise: Number of peaks in window" value="6" type="integer" />
+            <param name="window_width" type="float" label="De-noise: Window width (Daltons)" value="30" />
+            <param name="relax" label="De-noise: Multicharge fragment relaxation" checked="true" type="boolean" truevalue="true" falsevalue="false" />
+          </when>
+          <when value="false" />
+        </conditional>
+        <param name="ms2deisotope" type="boolean" label="Deisotope MS2 using Markey method" help="" truevalue="true" falsevalue="false" />
+
+        <param name="polarity" type="select" label="Filter by Polarity">
+          <option value="false" selected="true">no</option>
+          <option value="positive">positive</option>
+          <option value="negative">negative</option>
+        </param>
+
+        <param name="analyzer" type="select" label="Filter by Analyzer">
+          <option value="false" selected="true">no</option>
+          <option value="quad">quad</option>
+          <option value="orbi">orbi</option>
+          <option value="FT">FT</option>
+          <option value="IT">IT</option>
+          <option value="TOF">TOF</option>
+        </param>
+        <!-- END_VERSION_3 -->
+      </when>
+    </conditional>
+
+    <conditional name="settings">
+      <param name="settingsType" type="select" label="Advanced Settings" help="">
+        <option value="default">Use Defaults</option>
+        <option value="full">Full Parameter List</option>
+      </param>
+      <when value="default" />
+      <when value="full">
+        <param type="select" name="binary_encoding" label="Binary Encoding Precision">
+          <option value="64" selected="true">64</option>
+          <option value="32">32</option>
+        </param>
+        <param type="select" name="mz_encoding" label="m/z Encoding Precision">
+          <option value="64" selected="true">64</option>
+          <option value="32">32</option>
+        </param>
+        <param type="select" name="intensity_encoding" label="Intensity Encoding Precision" value="32">
+          <option value="64">64</option>
+          <option value="32" selected="true">32</option>
+        </param>
+        <param type="boolean" name="zlib" label="Use zlib">
+        </param>
+      </when>
+    </conditional>
+
+
+  </inputs>
+  <outputs>
+    <data format="mzml" name="output" label="${input.name.rsplit('.',1)[0]}.${output_type}" >
+      <change_format>
+        <when input="output_type" value="mzXML" format="mzxml" />
+        <when input="output_type" value="unindexed_mzXML" format="mzxml" />
+        <when input="output_type" value="ms2" format="ms2" />
+        <when input="output_type" value="mgf" format="mgf" />
+      </change_format>
+    </data>
+  </outputs>
   <help>
 **What it does**
 
-Allows interconversion within various mass spectrometry peak list formats. Additional options such as filtering and/or precursor recalculation are available.
+Converts between various mass spectrometry peak list representations. Additional options such as filtering and/or precursor recalculation are available.
 
 You can view the original documentation here_.
 
 .. _here: http://proteowizard.sourceforge.net/tools/msconvert.html
+
+------
+
+**Citation**
+
+For the underlying tool, please cite `ProteoWizard: Open Source Software for Rapid Proteomics Tools Development. Darren Kessner; Matt Chambers; Robert Burke; David Agus; Parag Mallick. Bioinformatics 2008; doi: 10.1093/bioinformatics/btn323.`
+
+If you use this tool in Galaxy, please cite Chilton J, et al. https://bitbucket.org/galaxyp/msconvert
+
   </help>
-    <citations>
-        <citation type="doi">10.1093/bioinformatics/btn323</citation>
-        <citation type="bibtex">@misc{toolsGalaxyP, author = {Chilton, J, Chambers MC, et al.}, title = {Galaxy Proteomics Tools}, publisher = {GitHub}, journal = {GitHub repository},
-                                      year = {2015}, url = {https://github.com/galaxyproteomics/tools-galaxyp}}</citation> <!-- TODO: fix substitution of commit ", commit = {$sha1$}" -->
-    </citations>
 </tool>