view MRMTransitionGroupPicker.xml @ 14:1c96645cbfbd draft default tip

planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
author galaxyp
date Fri, 14 Jun 2024 21:35:06 +0000
parents 78796b50831b
children
line wrap: on
line source

<!--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 and OpenSWATH]-->
<tool id="MRMTransitionGroupPicker" name="MRMTransitionGroupPicker" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="21.05">
  <description>Picks peaks in SRM/MRM chromatograms</description>
  <macros>
    <token name="@EXECUTABLE@">MRMTransitionGroupPicker</token>
    <import>macros.xml</import>
  </macros>
  <expand macro="requirements"/>
  <expand macro="stdio"/>
  <command detect_errors="exit_code"><![CDATA[@QUOTE_FOO@
@EXT_FOO@
#import re

## Preprocessing
mkdir in &&
cp '$in' 'in/${re.sub("[^\w\-_]", "_", $in.element_identifier)}.$gxy2omsext($in.ext)' &&
mkdir tr &&
cp '$tr' 'tr/${re.sub("[^\w\-_]", "_", $tr.element_identifier)}.$gxy2omsext($tr.ext)' &&
mkdir out &&

## 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)'
-out
'out/output.${gxy2omsext("featurexml")}'

## 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 argument="-in" type="data" format="mzml" label="Input file" help=" select mzml data sets(s)"/>
    <param argument="-tr" type="data" format="csv,traml" label="transition file ('TraML' or 'csv')" help=" select csv,traml data sets(s)"/>
    <section name="algorithm" title="Algorithm parameters section" help="" expanded="false">
      <param name="stop_after_feature" argument="-algorithm:stop_after_feature" type="integer" value="-1" label="Stop finding after feature (ordered by intensity; -1 means do not stop)" help=""/>
      <param name="stop_after_intensity_ratio" argument="-algorithm:stop_after_intensity_ratio" type="float" value="0.0001" label="Stop after reaching intensity ratio" help=""/>
      <param name="min_peak_width" argument="-algorithm:min_peak_width" type="float" value="0.001" label="Minimal peak width (s), discard all peaks below this value (-1 means no action)" help=""/>
      <param name="peak_integration" argument="-algorithm:peak_integration" type="select" 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" name="peak_integration"/>
      </param>
      <param name="background_subtraction" argument="-algorithm:background_subtraction" type="select" 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" name="background_subtraction"/>
      </param>
      <param name="recalculate_peaks" argument="-algorithm: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: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: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: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="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: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=""/>
      <param name="resample_boundary" argument="-algorithm: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=""/>
      <param name="compute_peak_quality" argument="-algorithm: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: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: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:boundary_selection_method" type="select" 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" name="boundary_selection_method"/>
      </param>
      <section name="PeakPickerMRM" title="" help="" expanded="false">
        <param name="sgolay_frame_length" argument="-algorithm:PeakPickerMRM:sgolay_frame_length" type="integer" 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:PeakPickerMRM:sgolay_polynomial_order" type="integer" value="3" label="Order of the polynomial that is fitted" help=""/>
        <param name="gauss_width" argument="-algorithm:PeakPickerMRM:gauss_width" type="float" value="50.0" label="Gaussian width in seconds, estimated peak size" help=""/>
        <param name="use_gauss" argument="-algorithm: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:PeakPickerMRM:peak_width" type="float" 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:PeakPickerMRM:signal_to_noise" type="float" 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:PeakPickerMRM:sn_win_len" type="float" value="1000.0" label="Signal to noise window length" help=""/>
        <param name="sn_bin_count" argument="-algorithm:PeakPickerMRM:sn_bin_count" type="integer" value="30" label="Signal to noise bin count" help=""/>
        <param name="write_sn_log_messages" argument="-algorithm: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: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:PeakPickerMRM:method" type="select" 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" name="method"/>
        </param>
      </section>
      <section name="PeakIntegrator" title="" help="" expanded="false">
        <param name="integration_type" argument="-algorithm:PeakIntegrator:integration_type" type="select" 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" name="integration_type"/>
        </param>
        <param name="baseline_type" argument="-algorithm:PeakIntegrator:baseline_type" type="select" 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" name="baseline_type"/>
        </param>
        <param name="fit_EMG" argument="-algorithm:PeakIntegrator:fit_EMG" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Fit the chromatogram/spectrum to the EMG peak model" help=""/>
      </section>
    </section>
    <expand macro="adv_opts_macro">
      <param argument="-force" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Overrides tool-specific checks" help=""/>
      <param argument="-test" type="hidden" value="False" label="Enables the test mode (needed for internal use only)" help="" optional="true">
        <expand macro="list_string_san" name="test"/>
      </param>
    </expand>
    <param name="OPTIONAL_OUTPUTS" type="select" optional="true" multiple="true" label="Optional outputs">
      <option value="ctd_out_FLAG">Output used ctd (ini) configuration file</option>
    </param>
  </inputs>
  <outputs>
    <data name="out" label="${tool.name} on ${on_string}: out" format="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>
  <tests>
    <!-- TOPP_MRMTransitionGroupPicker_test_1 -->
    <test expect_num_outputs="2">
      <section name="adv_opts">
        <param name="force" value="false"/>
        <param name="test" value="true"/>
      </section>
      <param name="in" value="MRMTransitionGroupPicker_1_input.mzML"/>
      <param name="tr" value="MRMTransitionGroupPicker_1_input.TraML"/>
      <output name="out" value="MRMTransitionGroupPicker_1_output.featureXML" compare="sim_size" delta_frac="0.7" ftype="featurexml"/>
      <section name="algorithm">
        <param name="stop_after_feature" value="-1"/>
        <param name="stop_after_intensity_ratio" value="0.0001"/>
        <param name="min_peak_width" value="0.001"/>
        <param name="peak_integration" value="original"/>
        <param name="background_subtraction" value="none"/>
        <param name="recalculate_peaks" value="false"/>
        <param name="use_precursors" value="false"/>
        <param name="use_consensus" value="true"/>
        <param name="recalculate_peaks_max_z" value="1.0"/>
        <param name="minimal_quality" value="-10000.0"/>
        <param name="resample_boundary" value="15.0"/>
        <param name="compute_peak_quality" value="false"/>
        <param name="compute_peak_shape_metrics" value="false"/>
        <param name="compute_total_mi" value="false"/>
        <param name="boundary_selection_method" value="largest"/>
        <section name="PeakPickerMRM">
          <param name="sgolay_frame_length" value="15"/>
          <param name="sgolay_polynomial_order" value="3"/>
          <param name="gauss_width" value="50.0"/>
          <param name="use_gauss" value="true"/>
          <param name="peak_width" value="40.0"/>
          <param name="signal_to_noise" value="1.0"/>
          <param name="sn_win_len" value="1000.0"/>
          <param name="sn_bin_count" value="30"/>
          <param name="write_sn_log_messages" value="false"/>
          <param name="remove_overlapping_peaks" value="true"/>
          <param name="method" value="legacy"/>
        </section>
        <section name="PeakIntegrator">
          <param name="integration_type" value="intensity_sum"/>
          <param name="baseline_type" value="base_to_base"/>
          <param name="fit_EMG" value="false"/>
        </section>
      </section>
      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
      <output name="ctd_out" ftype="xml">
        <assert_contents>
          <is_valid_xml/>
        </assert_contents>
      </output>
      <assert_stdout>
        <has_text_matching expression="@EXECUTABLE@ took .* \(wall\), .* \(CPU\), .* \(system\), .* \(user\)(; Peak Memory Usage: 32 MB)?."/>
      </assert_stdout>
    </test>
    <!-- TOPP_MRMTransitionGroupPicker_test_2 -->
    <test expect_num_outputs="2">
      <section name="adv_opts">
        <param name="force" value="false"/>
        <param name="test" value="true"/>
      </section>
      <param name="in" value="MRMTransitionGroupPicker_1_input.mzML"/>
      <param name="tr" value="MRMTransitionGroupPicker_1_input.TraML"/>
      <output name="out" value="MRMTransitionGroupPicker_2_output.featureXML" compare="sim_size" delta_frac="0.7" ftype="featurexml"/>
      <section name="algorithm">
        <param name="stop_after_feature" value="-1"/>
        <param name="stop_after_intensity_ratio" value="0.0001"/>
        <param name="min_peak_width" value="0.001"/>
        <param name="peak_integration" value="original"/>
        <param name="background_subtraction" value="none"/>
        <param name="recalculate_peaks" value="false"/>
        <param name="use_precursors" value="false"/>
        <param name="use_consensus" value="true"/>
        <param name="recalculate_peaks_max_z" value="1.0"/>
        <param name="minimal_quality" value="-10000.0"/>
        <param name="resample_boundary" value="15.0"/>
        <param name="compute_peak_quality" value="false"/>
        <param name="compute_peak_shape_metrics" value="false"/>
        <param name="compute_total_mi" value="true"/>
        <param name="boundary_selection_method" value="largest"/>
        <section name="PeakPickerMRM">
          <param name="sgolay_frame_length" value="15"/>
          <param name="sgolay_polynomial_order" value="3"/>
          <param name="gauss_width" value="50.0"/>
          <param name="use_gauss" value="true"/>
          <param name="peak_width" value="40.0"/>
          <param name="signal_to_noise" value="1.0"/>
          <param name="sn_win_len" value="1000.0"/>
          <param name="sn_bin_count" value="30"/>
          <param name="write_sn_log_messages" value="false"/>
          <param name="remove_overlapping_peaks" value="true"/>
          <param name="method" value="legacy"/>
        </section>
        <section name="PeakIntegrator">
          <param name="integration_type" value="intensity_sum"/>
          <param name="baseline_type" value="base_to_base"/>
          <param name="fit_EMG" value="false"/>
        </section>
      </section>
      <param name="OPTIONAL_OUTPUTS" value="ctd_out_FLAG"/>
      <output name="ctd_out" ftype="xml">
        <assert_contents>
          <is_valid_xml/>
        </assert_contents>
      </output>
      <assert_stdout>
        <has_text_matching expression="@EXECUTABLE@ took .* \(wall\), .* \(CPU\), .* \(system\), .* \(user\)(; Peak Memory Usage: 32 MB)?."/>
      </assert_stdout>
    </test>
  </tests>
  <help><![CDATA[Picks peaks in SRM/MRM chromatograms.


For more information, visit https://openms.de/doxygen/release/3.1.0/html/TOPP_MRMTransitionGroupPicker.html]]></help>
  <expand macro="references"/>
</tool>