view msconvert.xml @ 6:6b6bba73eadb draft

planemo upload commit d56659dd48f8c554a832787e71aca6ae65c90848
author galaxyp
date Tue, 14 Mar 2017 16:52:39 -0400
parents 637e309295cf
children e638f7fad66a
line wrap: on
line source

<tool id="msconvert" name="msconvert" version="0.3.0">
  <!-- BEGIN_VERSION_DEFAULT -->
  <description>Convert and filter a mass spec peak list</description>
  <!-- END_VERSION_DEFAULT -->
  <!--
  <requirements>
    <requirement type="package" version="3_0_4388">proteowizard</requirement>
  </requirements>
-->
  <command interpreter="python">
    #import re
    #set $ext = $input.ext
    msconvert_wrapper.py
    #if $type.input_type == 'wiff':
      #set basename = 'absciex'
      #if hasattr($input, 'display_name')
        #set basename = $re.sub('\W','_',$input.display_name)
      #end if
      --input=${input.extra_files_path}/wiff
      --input_name='${basename}.wiff
      --implicit=${input.extra_files_path}/wiff_scan
      --input=${input.extra_files_path}/wiff_scan
      --input_name='${basename}.wiff.scan
    #else
      --input=${input}
      #if hasattr($input, 'display_name')
      --input_name='${input.display_name}'
      #end if
    #end if
    --output=${output}
    ## BEGIN_VERSION_DEFAULT
    --fromextension=$ext
    ## END_VERSION_DEFAULT


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


    #if $filtering.strip_it.value
    --filter "stripIT"
    #end if

    #if $filtering.filter_mz_windows.do_filter
    --filter "mzWindow [$filtering.filter_mz_windows.from,$filtering.filter_mz_windows.to]"
    #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>

    <!-- BEGIN_VERSION_DEFAULT -->
    <conditional name="type">
      <param name="input_type" type="select" label="Input Type">
        <option value="mzml">mzML</option>
        <option value="mzxml">mzXML</option>
        <option value="mgf">mgf</option>
        <option value="ms2">ms2</option>
        <option value="wiff">wiff</option>
      </param>
      <when value="mzml">
        <param format="mzml" name="input" type="data" label="Input mzML"/>
      </when>
      <when value="mzxml">
        <param format="mzxml" name="input" type="data" label="Input mzXML"/>
      </when>
      <when value="mgf">
        <param format="mgf" name="input" type="data" label="Input mgf"/>
      </when>
      <when value="ms2">
        <param format="ms2" name="input" type="data" label="Input ms2"/>
      </when>
      <when value="wiff">
        <param format="wiff" name="input" type="data" label="Input wiff"/>
      </when>
    </conditional>
    <!-- END_VERSION_DEFAULT -->
    <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?" 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>

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


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

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

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

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

        <param type="boolean" name="strip_it" label="Strip Ion Trap MS1 Scans" />

        <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="${type.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.

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://github.com/galaxyproteomics/tools-galaxyp/

  </help>
</tool>