view TOFCalibration.xml @ 14:b6f7cec6cc9e 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:42:11 +0000
parents 9f0e189d093c
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: [Mass Correction and Calibration]-->
<tool id="TOFCalibration" name="TOFCalibration" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="21.05">
  <description>Applies time of flight calibration</description>
  <macros>
    <token name="@EXECUTABLE@">TOFCalibration</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 out &&
mkdir ext_calibrants &&
cp '$ext_calibrants' 'ext_calibrants/${re.sub("[^\w\-_]", "_", $ext_calibrants.element_identifier)}.$gxy2omsext($ext_calibrants.ext)' &&
mkdir ref_masses &&
cp '$ref_masses' 'ref_masses/${re.sub("[^\w\-_]", "_", $ref_masses.element_identifier)}.$gxy2omsext($ref_masses.ext)' &&
mkdir tof_const &&
cp '$tof_const' 'tof_const/${re.sub("[^\w\-_]", "_", $tof_const.element_identifier)}.$gxy2omsext($tof_const.ext)' &&

## 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)'
-out
'out/output.${gxy2omsext("mzml")}'
-ext_calibrants
'ext_calibrants/${re.sub("[^\w\-_]", "_", $ext_calibrants.element_identifier)}.$gxy2omsext($ext_calibrants.ext)'
-ref_masses
'ref_masses/${re.sub("[^\w\-_]", "_", $ref_masses.element_identifier)}.$gxy2omsext($ref_masses.ext)'
-tof_const
'tof_const/${re.sub("[^\w\-_]", "_", $tof_const.element_identifier)}.$gxy2omsext($tof_const.ext)'

## Postprocessing
&& mv 'out/output.${gxy2omsext("mzml")}' '$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 peak or raw data file" help=" select mzml data sets(s)"/>
    <param argument="-ext_calibrants" type="data" format="mzml" label="input file containing the external calibrant spectra (peak or raw data)" help=" select mzml data sets(s)"/>
    <param argument="-ref_masses" type="data" format="tabular,txt" label="input file containing reference masses of the external calibrant spectra (one per line)" help=" select tabular,txt data sets(s)"/>
    <param argument="-tof_const" type="data" format="tabular" label="File containing TOF conversion constants" help="These can be either two or three constants. per set, depending on the conversion type. Either one set for all calibrant spectra . (tab separated), or one for each spectrum.. For a detailed description, please have a look at the doxygen documentation.(one set, tab separated, per line) select tabular data sets(s)"/>
    <param argument="-peak_data" type="boolean" truevalue="true" falsevalue="false" checked="false" label="set this flag, if you have peak data, not raw data (the picking parameters are accessible only from the INI file)" help=""/>
    <section name="algorithm" title="Algorithm section for peak picking" help="" expanded="false">
      <section name="PeakPicker" title="" help="" expanded="false">
        <param name="signal_to_noise" argument="-algorithm:PeakPicker:signal_to_noise" type="float" min="0.0" value="1.0" label="Minimal signal to noise ratio for a peak to be picked" help=""/>
        <param name="centroid_percentage" argument="-algorithm:PeakPicker:centroid_percentage" type="float" min="0.0" max="1.0" value="0.8" label="Percentage of the maximum height that the raw data points must exceed to be taken into account for the calculation of the centroid" help="If it is 1 the centroid position corresponds to the position of the highest intensity"/>
        <param name="peak_width" argument="-algorithm:PeakPicker:peak_width" type="float" min="0.0" value="0.15" label="Approximate fwhm of the peaks" help=""/>
        <param name="estimate_peak_width" argument="-algorithm:PeakPicker:estimate_peak_width" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Flag if the average peak width shall be estimated" help="Attention: when this flag is set, the peak_width is ignored"/>
        <param name="fwhm_lower_bound_factor" argument="-algorithm:PeakPicker:fwhm_lower_bound_factor" type="float" min="0.0" value="0.7" label="Factor that calculates the minimal fwhm value from the peak_width" help="All peaks with width smaller than fwhm_bound_factor * peak_width are discarded"/>
        <param name="fwhm_upper_bound_factor" argument="-algorithm:PeakPicker:fwhm_upper_bound_factor" type="float" min="0.0" value="20.0" label="Factor that calculates the maximal fwhm value from the peak_width" help="All peaks with width greater than fwhm_upper_bound_factor * peak_width are discarded"/>
        <section name="optimization" title="" help="" expanded="false">
          <param name="iterations" argument="-algorithm:PeakPicker:optimization:iterations" type="integer" min="1" value="400" label="maximal number of iterations for the fitting step" help=""/>
          <section name="penalties" title="" help="" expanded="false">
            <param name="position" argument="-algorithm:PeakPicker:optimization:penalties:position" type="float" min="0.0" value="0.0" label="penalty term for the fitting of the position:If it differs too much from the initial one it can be penalized" help=""/>
            <param name="left_width" argument="-algorithm:PeakPicker:optimization:penalties:left_width" type="float" min="0.0" value="1.0" label="penalty term for the fitting of the left width:If the left width differs too much from the initial one during the fitting it can be penalized" help=""/>
            <param name="right_width" argument="-algorithm:PeakPicker:optimization:penalties:right_width" type="float" min="0.0" value="1.0" label="penalty term for the fitting of the right width:If the right width differs too much from the initial one during the fitting it can be penalized" help=""/>
            <param name="height" argument="-algorithm:PeakPicker:optimization:penalties:height" type="float" min="0.0" value="1.0" label="penalty term for the fitting of the intensity (only used in 2D Optimization):If it gets negative during the fitting it can be penalized" help=""/>
          </section>
          <section name="2d" title="" help="" expanded="false">
            <param name="tolerance_mz" argument="-algorithm:PeakPicker:optimization:2d:tolerance_mz" type="float" min="0.0" value="2.2" label="mz tolerance for cluster construction" help=""/>
            <param name="max_peak_distance" argument="-algorithm:PeakPicker:optimization:2d:max_peak_distance" type="float" min="0.0" value="1.2" label="maximal peak distance in mz in a cluste" help=""/>
          </section>
        </section>
        <section name="thresholds" title="" help="" expanded="false">
          <param name="peak_bound" argument="-algorithm:PeakPicker:thresholds:peak_bound" type="float" min="0.0" value="10.0" label="Minimal peak intensity" help=""/>
          <param name="peak_bound_ms2_level" argument="-algorithm:PeakPicker:thresholds:peak_bound_ms2_level" type="float" min="0.0" value="10.0" label="Minimal peak intensity for MS/MS peaks" help=""/>
          <param name="correlation" argument="-algorithm:PeakPicker:thresholds:correlation" type="float" min="0.0" max="1.0" value="0.5" label="minimal correlation of a peak and the raw signal" help="If a peak has a lower correlation it is skipped"/>
          <param name="noise_level" argument="-algorithm:PeakPicker:thresholds:noise_level" type="float" min="0.0" value="0.1" label="noise level for the search of the peak endpoints" help=""/>
          <param name="search_radius" argument="-algorithm:PeakPicker:thresholds:search_radius" type="integer" min="0" value="3" label="search radius for the search of the maximum in the signal after a maximum in the cwt was found" help=""/>
        </section>
        <section name="wavelet_transform" title="" help="" expanded="false">
          <param name="spacing" argument="-algorithm:PeakPicker:wavelet_transform:spacing" type="float" min="0.0" value="0.001" label="Spacing of the CWT" help="Note that the accuracy of the picked peak's centroid position depends in the Raw data spacing, i.e., 50% of raw peak distance at most"/>
        </section>
        <section name="deconvolution" title="" help="" expanded="false">
          <param name="deconvolution" argument="-algorithm:PeakPicker:deconvolution:deconvolution" type="boolean" truevalue="true" falsevalue="false" checked="false" label="If you want heavily overlapping peaks to be separated set this value to &quot;true&quot;" help=""/>
          <param name="asym_threshold" argument="-algorithm:PeakPicker:deconvolution:asym_threshold" type="float" min="0.0" value="0.3" label="If the symmetry of a peak is smaller than asym_thresholds it is assumed that it consists of more than one peak and the deconvolution procedure is started" help=""/>
          <param name="left_width" argument="-algorithm:PeakPicker:deconvolution:left_width" type="float" min="0.0" value="2.0" label="1/left_width is the initial value for the left width of the peaks found in the deconvolution step" help=""/>
          <param name="right_width" argument="-algorithm:PeakPicker:deconvolution:right_width" type="float" min="0.0" value="2.0" label="1/right_width is the initial value for the right width of the peaks found in the deconvolution step" help=""/>
          <param name="scaling" argument="-algorithm:PeakPicker:deconvolution:scaling" type="float" min="0.0" value="0.12" label="Initial scaling of the cwt used in the separation of heavily overlapping peaks" help="The initial value is used for charge 1, for higher charges it is adapted to scaling/charge"/>
          <section name="fitting" title="" help="" expanded="false">
            <param name="fwhm_threshold" argument="-algorithm:PeakPicker:deconvolution:fitting:fwhm_threshold" type="float" min="0.0" value="0.7" label="If the FWHM of a peak is higher than 'fwhm_thresholds' it is assumed that it consists of more than one peak and the deconvolution procedure is started" help=""/>
            <param name="eps_abs" argument="-algorithm:PeakPicker:deconvolution:fitting:eps_abs" type="float" min="0.0" value="9.999999747378752e-06" label="if the absolute error gets smaller than this value the fitting is stopped" help=""/>
            <param name="eps_rel" argument="-algorithm:PeakPicker:deconvolution:fitting:eps_rel" type="float" min="0.0" value="9.999999747378752e-06" label="if the relative error gets smaller than this value the fitting is stopped" help=""/>
            <param name="max_iteration" argument="-algorithm:PeakPicker:deconvolution:fitting:max_iteration" type="integer" min="1" value="10" label="maximal number of iterations for the fitting step" help=""/>
            <section name="penalties" title="" help="" expanded="false">
              <param name="position" argument="-algorithm:PeakPicker:deconvolution:fitting:penalties:position" type="float" min="0.0" value="0.0" label="penalty term for the fitting of the peak position:If the position changes more than 0.5Da during the fitting it can be penalized as well as discrepancies of the peptide mass rule" help=""/>
              <param name="height" argument="-algorithm:PeakPicker:deconvolution:fitting:penalties:height" type="float" min="0.0" value="1.0" label="penalty term for the fitting of the intensity:If it gets negative during the fitting it can be penalized" help=""/>
              <param name="left_width" argument="-algorithm:PeakPicker:deconvolution:fitting:penalties:left_width" type="float" min="0.0" value="0.0" label="penalty term for the fitting of the left width:If the left width gets too broad or negative during the fitting it can be penalized" help=""/>
              <param name="right_width" argument="-algorithm:PeakPicker:deconvolution:fitting:penalties:right_width" type="float" min="0.0" value="0.0" label="penalty term for the fitting of the right width:If the right width gets too broad or negative during the fitting it can be penalized" help=""/>
            </section>
          </section>
        </section>
        <section name="SignalToNoiseEstimationParameter" title="" help="" expanded="false">
          <param name="max_intensity" argument="-algorithm:PeakPicker:SignalToNoiseEstimationParameter:max_intensity" type="integer" min="-1" value="-1" label="maximal intensity considered for histogram construction" help="By default, it will be calculated automatically (see auto_mode). Only provide this parameter if you know what you are doing (and change 'auto_mode' to '-1')! All intensities EQUAL/ABOVE 'max_intensity' will not be added to the histogram. If you choose 'max_intensity' too small, the noise estimate might be too small as well. If chosen too big, the bins become quite large (which you could counter by increasing 'bin_count', which increases runtime)"/>
          <param name="auto_max_stdev_factor" argument="-algorithm:PeakPicker:SignalToNoiseEstimationParameter:auto_max_stdev_factor" type="float" min="0.0" max="999.0" value="3.0" label="parameter for 'max_intensity' estimation (if 'auto_mode' == 0): mean + 'auto_max_stdev_factor' * stdev" help=""/>
          <param name="auto_max_percentile" argument="-algorithm:PeakPicker:SignalToNoiseEstimationParameter:auto_max_percentile" type="integer" min="0" max="100" value="95" label="parameter for 'max_intensity' estimation (if 'auto_mode' == 1): auto_max_percentile th percentile" help=""/>
          <param name="auto_mode" argument="-algorithm:PeakPicker:SignalToNoiseEstimationParameter:auto_mode" type="integer" min="-1" max="1" value="0" label="method to use to determine maximal intensity: -1 --&gt; use 'max_intensity'; 0 --&gt; 'auto_max_stdev_factor' method (default); 1 --&gt; 'auto_max_percentile' method" help=""/>
          <param name="win_len" argument="-algorithm:PeakPicker:SignalToNoiseEstimationParameter:win_len" type="float" min="1.0" value="200.0" label="window length in Thomson" help=""/>
          <param name="bin_count" argument="-algorithm:PeakPicker:SignalToNoiseEstimationParameter:bin_count" type="integer" min="3" value="30" label="number of bins for intensity values" help=""/>
          <param name="stdev_mp" argument="-algorithm:PeakPicker:SignalToNoiseEstimationParameter:stdev_mp" type="float" min="0.01" max="999.0" value="3.0" label="multiplier for stdev" help=""/>
          <param name="min_required_elements" argument="-algorithm:PeakPicker:SignalToNoiseEstimationParameter:min_required_elements" type="integer" min="1" value="10" label="minimum number of elements required in a window (otherwise it is considered sparse)" help=""/>
          <param name="noise_for_empty_window" argument="-algorithm:PeakPicker:SignalToNoiseEstimationParameter:noise_for_empty_window" type="float" value="1e+20" label="noise value used for sparse windows" help=""/>
        </section>
      </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="mzml"/>
    <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_TOFCalibration_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="TOFCalibration_1_input.mzML"/>
      <output name="out" value="TOFCalibration.tmp" compare="sim_size" delta_frac="0.7" ftype="mzml"/>
      <param name="ext_calibrants" value="TOFCalibration_1_calibrants.mzML"/>
      <param name="ref_masses" value="TOFCalibration_ref_masses.tsv" ftype="tabular"/>
      <param name="tof_const" value="TOFCalibration_const.tsv" ftype="tabular"/>
      <param name="peak_data" value="false"/>
      <section name="algorithm">
        <section name="PeakPicker">
          <param name="signal_to_noise" value="3.0"/>
          <param name="centroid_percentage" value="0.6"/>
          <param name="peak_width" value="0.15"/>
          <param name="estimate_peak_width" value="false"/>
          <param name="fwhm_lower_bound_factor" value="0.7"/>
          <param name="fwhm_upper_bound_factor" value="20.0"/>
          <section name="optimization">
            <param name="iterations" value="400"/>
            <section name="penalties">
              <param name="position" value="0.0"/>
              <param name="left_width" value="1.0"/>
              <param name="right_width" value="1.0"/>
              <param name="height" value="1.0"/>
            </section>
            <section name="2d">
              <param name="tolerance_mz" value="2.2"/>
              <param name="max_peak_distance" value="1.2"/>
            </section>
          </section>
          <section name="thresholds">
            <param name="peak_bound" value="400.0"/>
            <param name="peak_bound_ms2_level" value="10.0"/>
            <param name="correlation" value="0.0"/>
            <param name="noise_level" value="0.1"/>
            <param name="search_radius" value="3"/>
          </section>
          <section name="wavelet_transform">
            <param name="spacing" value="0.001"/>
          </section>
          <section name="deconvolution">
            <param name="deconvolution" value="false"/>
            <param name="asym_threshold" value="0.3"/>
            <param name="left_width" value="2.0"/>
            <param name="right_width" value="2.0"/>
            <param name="scaling" value="0.12"/>
            <section name="fitting">
              <param name="fwhm_threshold" value="0.7"/>
              <param name="eps_abs" value="9.999999747378752e-06"/>
              <param name="eps_rel" value="9.999999747378752e-06"/>
              <param name="max_iteration" value="10"/>
              <section name="penalties">
                <param name="position" value="0.0"/>
                <param name="height" value="1.0"/>
                <param name="left_width" value="0.0"/>
                <param name="right_width" value="0.0"/>
              </section>
            </section>
          </section>
          <section name="SignalToNoiseEstimationParameter">
            <param name="max_intensity" value="-1"/>
            <param name="auto_max_stdev_factor" value="3.0"/>
            <param name="auto_max_percentile" value="95"/>
            <param name="auto_mode" value="0"/>
            <param name="win_len" value="200.0"/>
            <param name="bin_count" value="30"/>
            <param name="stdev_mp" value="3.0"/>
            <param name="min_required_elements" value="10"/>
            <param name="noise_for_empty_window" value="1e+20"/>
          </section>
        </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_TOFCalibration_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="TOFCalibration_2_input.mzML"/>
      <output name="out" value="TOFCalibration_2.tmp" compare="sim_size" delta_frac="0.7" ftype="mzml"/>
      <param name="ext_calibrants" value="TOFCalibration_2_calibrants.mzML"/>
      <param name="ref_masses" value="TOFCalibration_ref_masses.tsv" ftype="tabular"/>
      <param name="tof_const" value="TOFCalibration_const.tsv" ftype="tabular"/>
      <param name="peak_data" value="true"/>
      <section name="algorithm">
        <section name="PeakPicker">
          <param name="signal_to_noise" value="3.0"/>
          <param name="centroid_percentage" value="0.6"/>
          <param name="peak_width" value="0.15"/>
          <param name="estimate_peak_width" value="false"/>
          <param name="fwhm_lower_bound_factor" value="0.7"/>
          <param name="fwhm_upper_bound_factor" value="20.0"/>
          <section name="optimization">
            <param name="iterations" value="400"/>
            <section name="penalties">
              <param name="position" value="0.0"/>
              <param name="left_width" value="1.0"/>
              <param name="right_width" value="1.0"/>
              <param name="height" value="1.0"/>
            </section>
            <section name="2d">
              <param name="tolerance_mz" value="2.2"/>
              <param name="max_peak_distance" value="1.2"/>
            </section>
          </section>
          <section name="thresholds">
            <param name="peak_bound" value="400.0"/>
            <param name="peak_bound_ms2_level" value="10.0"/>
            <param name="correlation" value="0.0"/>
            <param name="noise_level" value="0.1"/>
            <param name="search_radius" value="3"/>
          </section>
          <section name="wavelet_transform">
            <param name="spacing" value="0.001"/>
          </section>
          <section name="deconvolution">
            <param name="deconvolution" value="false"/>
            <param name="asym_threshold" value="0.3"/>
            <param name="left_width" value="2.0"/>
            <param name="right_width" value="2.0"/>
            <param name="scaling" value="0.12"/>
            <section name="fitting">
              <param name="fwhm_threshold" value="0.7"/>
              <param name="eps_abs" value="9.999999747378752e-06"/>
              <param name="eps_rel" value="9.999999747378752e-06"/>
              <param name="max_iteration" value="10"/>
              <section name="penalties">
                <param name="position" value="0.0"/>
                <param name="height" value="1.0"/>
                <param name="left_width" value="0.0"/>
                <param name="right_width" value="0.0"/>
              </section>
            </section>
          </section>
          <section name="SignalToNoiseEstimationParameter">
            <param name="max_intensity" value="-1"/>
            <param name="auto_max_stdev_factor" value="3.0"/>
            <param name="auto_max_percentile" value="95"/>
            <param name="auto_mode" value="0"/>
            <param name="win_len" value="200.0"/>
            <param name="bin_count" value="30"/>
            <param name="stdev_mp" value="3.0"/>
            <param name="min_required_elements" value="10"/>
            <param name="noise_for_empty_window" value="1e+20"/>
          </section>
        </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[Applies time of flight calibration.


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