view psm_eval.xml @ 3:91fb73c8619c draft default tip

Uploaded
author galaxyp
date Fri, 26 Sep 2014 14:52:07 -0400
parents f8356c01939b
children
line wrap: on
line source

<?xml version="1.0"?>
<tool name="Peptide-Spectrum-Matches (PSMs) Evaluator" id="psm_eval" version="0.1.0">
    <requirements>
        <requirement type="package" version="22">binaries_for_psm_eval</requirement>
    </requirements>
    <description>Re-evalute potential PSMs using the psm-eval application.</description>
    <command>psm_eval --settings $driver</command>
    <configfiles>
        <configfile name="driver"># YAML driver for PSM Eval
peak_lists:
#for $peak_list in $peak_lists:
  - path: $peak_list
    name: "$peak_list.display_name"
    encoded_id: "${$__app__.security.encode_id( $peak_list.id )}|${$peak_list.extra_dir_file_name if hasattr($peak_list, 'extra_dir_file_name') else ''}"
#end for
psms: $psms_cond.psms
#set $psms_type = $psms_cond.type
#if $psms_type == "tpp_derived_report"
scan_id_column_index: ${int(str($psms_cond.scan_id_column)) - 1}
scan_source_column_index: ${int(str($psms_cond.scan_source_column)) - 1}
peptide_column_index: ${int(str($psms_cond.peptide_column)) - 1}
#end if
psms_type: $psms_cond.type

output: $output
output_format: $output_type
mass_type: $mass_type
mass_tolerance: $default_mass_tolerance
columns:
#for $column in $columns
#set $column_options = $column.column
#set $type = str(column_options['type'])
  - type: ${type}
#if $type in ['ions_matched', 'peaks_matched']
    aggregate_by: $column_options.aggregate_by
#if $column_options.tolerance.specify
    mass_tolerance: $column_options.tolerance.tolerance
#end if
#end if
#if $type in ['ions_matched', 'peaks_matched', 'num_peaks']
## Handle peak filters
    peak_filters:
#for $peak_filter in $column_options.peak_filters
#set $peak_filter_options = $peak_filter.peak_filter
#set $peak_filter_type = str(peak_filter_options['peak_filter_type'])
    - type: $peak_filter_type
#if $peak_filter_type in ['percent_tic', 'quantile', 'percent_max_intensity']
      percent: $peak_filter_options.percent
#end if
#if $peak_filter_type == 'quantile'
      q: $peak_filter_options.q
      k: $peak_filter_options.k
#end if
#if $peak_filter_type in ['mz_range_absolute', 'mz_range_percent_bp']
      min: $peak_filter_options.min
      max: $peak_filter_options.max
#end if
#end for
#end if
#if $type in ['ions_matched', 'peaks_matched']
## Handle ions series
#set $ions = $column_options
    ions:
      series: $ions.ion_series
#if $ions.losses
      losses: $ions.losses
#end if
#end if
#if $type == "source_statistic"
    statistic_name: ${str(column_options['source_statistic'])}
#end if
#if $type == "link"
    link_type: galaxy
#end if
#end for
        </configfile>
    </configfiles>
    <inputs>
        <conditional name="psms_cond">
            <param name="type" type="select" label="PSMs Type" help="ProteinPilot Peptide Report inputs results are generated from the &quot;Convert ProteinPilot Group to Tabular&quot; tool. mzidentML inputs (beta) result from many search tools. Currently only MyriMatch has been tested, and with only one input file">
                <option value="mzid">MzIdentML (mzid)</option>
                <option value="proteinpilot_peptide_report">ProteinPilot Peptide Report</option>
                <option value="tpp_derived_report">Trans-Proteomic Pipeline Derived Peptide Report</option>
            </param>
            <when value="mzid">
                <param format="mzid" name="psms" type="data" label="MzIdentML containing PSMs" help="select appropriate dataset from history" />
            </when>
            <when value="proteinpilot_peptide_report">
                <param format="tabular" name="psms" type="data" label="ProteinPilot Peptide Report" help="select appropriate dataset from history" />
            </when>
            <when value="tpp_derived_report">
                <param format="tabular" name="psms" type="data" label="Trans-Proteomic Pipeline Derived Peptide Report" help="select appropriate dataset from history" />
                <param name="scan_source_column" label="Peak List Column" type="data_column" data_ref="psms" />
                <param name="scan_id_column" label="Scan ID Column" type="data_column" data_ref="psms" />
                <param name="peptide_column" label="Peptide Column" type="data_column" data_ref="psms" />
            </when>
        </conditional>
        <param format="mzml" name="peak_lists" type="data" label="Peak list (mzML)" multiple="true" help="select MZML dataset of experimental MS/MS scans" />
        <param name="output_type" type="select" label="Output Type" help="Tabular is a spreadsheet containing columns of selected properties listed below. (select tabular as the output type and Peptide sequence as the column type. HTML provides visualization of matches (select HTML as the output type and ProtVis Link as the column type)">
            <option value="tsv">Tabular (tsv)</option>
            <option value="html">HTML</option>
        </param>
        <param name="default_mass_tolerance" type="float" label="Default Mass Tolerance" value="0.5" help="error of fragment ion (in Da). Recommended: 0.5 for LTQ/Orbitrap instrument; 0.01 for HCD/Orbitrap acquisition" />
        <param name="mass_type" type="select" label="Mass Type" help="Monoisotopic: selects most abundant isotopic MS peak for theoretical mass calculation. Average: uses average mass values for theoretical mass calculation. Average mass type is not well supported in this tool">
            <option value="monoisotopic" selected="true">Monoisotopic</option>
            <option value="average">Average (has known problems)</option>
        </param>
        <repeat name="columns" title="Column">
            <conditional name="column">
                <param type="select" name="type" label="Column Type" help="select features for tabular or HTML output">
                    <option value="peptide">Peptide Sequence</option>
                    <option value="scan_index">Scan Index</option>
                    <option value="scan_number">Scan Number</option>
                    <option value="scan_id">Scan ID</option>
                    <option value="scan_source">Peak List</option>
                    <option value="num_peaks">Number of Peaks</option>
                    <option value="peaks_matched">Peaks Matched Statistic</option>
                    <option value="ions_matched">Ions Matched Statistic</option>
                    <option value="total_ion_current">Total Ion Current</option>
                    <option value="source_statistic">Statistic from PSM Source</option>
                    <option value="link">ProtVis Link</option>
                </param>
                <when value="num_peaks">
                    <expand macro="peak_filters" />
                </when>
                <when value="peaks_matched">
                    <param name="aggregate_by" label="Peak Matching Statistic" type="select">
                        <option value="count">Number of Matched Peaks</option>
                        <option value="count_missed">Number of Unmatched Peaks</option>
                        <option value="percent">Percent of Matched Peaks</option>
                        <option value="percent_missed">Percent of Unmatched Peaks</option>
                    </param>
                    <expand macro="ions" />
                    <expand macro="peak_filters" />
                    <expand macro="tolerance_conditional" />
                </when>
                <when value="ions_matched">
                    <param name="aggregate_by" label="Ion Matching Statistic" type="select">
                        <option value="count">Number of Matched Ions</option>
                        <option value="count_missed">Number of Unmatched Ions</option>
                        <option value="count_longest_stretch">Longest Stretch of Matched Ions</option>
                        <option value="percent">Percent of Matched Ions</option>
                        <option value="percent_missed">Percent of Unmatched Ions</option>
                        <option value="list_matches">List Matched Ions</option>
                        <option value="list_misses">List Unmatched Ions</option>
                    </param>
                    <expand macro="ions" />
                    <expand macro="peak_filters" />
                    <expand macro="tolerance_conditional" />
                </when>
                <when value="source_statistic">
                    <param name="source_statistic" label="PSM Source Statistic" type="select">
                        <option value="xcorr">xcorr</option>
                        <option value="MyriMatch:MVH">MyriMatch: MVH</option>
                        <option value="MyriMatch:mzFidelity">MyriMatch: mzFidelity</option>
                        <option value="Conf">Conf</option>
                    </param>
                </when>
                <when value="link">
                </when>
            </conditional>
        </repeat>
    </inputs>
    <outputs>
        <data format="tabular" name="output" label="PSM Evaluation of ${on_string}">
            <change_format>
                <when input="output_type" value="html" format="html" />
            </change_format>
        </data>
    </outputs>
    <macros>
        <macro name="ions">
            <param name="ion_series" type="select" multiple="true" label="Ion Series">
                <option value="a1">a1</option>
                <option value="a2">a2</option>
                <option value="a3">a3</option>
                <option value="b1">b1</option>
                <option value="b2">b2</option>
                <option value="b3">b3</option>
                <option value="c1">c1</option>
                <option value="c2">c2</option>
                <option value="c3">c3</option>
                <option value="x1">x1</option>
                <option value="x2">x2</option>
                <option value="x3">x3</option>
                <option value="y1">y1</option>
                <option value="y2">y2</option>
                <option value="y3">y3</option>
                <option value="z1">z1</option>
                <option value="z2">z2</option>
                <option value="z3">z3</option>
                <option value="m1">M1</option>
                <option value="m2">M2</option>
                <option value="internal">Internal Ions</option>
            </param>
            <param name="losses" type="select" multiple="true" label="Losses" value="">
                <option value="H2O">H2O</option>
                <option value="NH3">NH3</option>
                <option value="CO">CO (-28) on internal ions</option>
            </param>
        </macro>
        <macro name="tolerance_conditional">
            <conditional name="tolerance">
                <param name="specify" label="Specify Mass Tolerance" type="boolean" />
                <when value="false">
                </when>
                <when value="true">
                    <param name="tolerance" value="0.5" label="Tolerance" type="float" />
                </when>
            </conditional>
        </macro>
        <!--
        <macro name="conditional_ions">
            <conditional name="specify_ions">
                <param type="boolean" truevalue="true" falsevalue="false" name="specify" label="Specify Ions?" />
                <when value="true">
                    <expand macro="ions" />
                </when>
                <when value="false" />
            </conditional>
        </macro>
        -->
        <macro name="peak_filters">
            <repeat name="peak_filters" title="Peak Filter">
                <expand macro="peak_filter" />
            </repeat>
        </macro>
        <macro name="peak_filter">
            <conditional name="peak_filter">
                <param type="select" label="Filter Peaks on" name="peak_filter_type">
                    <option value="percent_tic">Intensity as a Percent of Total Ion Current</option>
                    <option value="quantile">Intensity Quantile</option>
                    <option value="percent_max_intensity">Intensity as a Percent of Maximum Spectrum Peak Intensity</option>
                    <option value="mz_range_absolute">m/z Range (absolute)</option>
                    <option value="mz_range_percent_bp">m/z Range (percent of base peak m/z)</option>
                </param>
                <when value="percent_tic">
                    <expand macro="percent_param" />
                </when>
                <when value="percent_max_intensity">
                    <param name="percent" label="Percent of Maximum Peak Intensity" type="float" value="0.1" />
                </when>
                <when value="quantile">
                    <param name="q" label="q" type="integer" help="q is the number of partitions to break intensity into, k is the position to pull from. For instance if q=2 and k=1, the peaks above the median intensity will be used and if q=3 and k=2, the middle third of peaks by intensity will be used." value="2" />
                    <param name="k" label="k" type="integer" value="1"/>
                    <expand macro="percent_param" />
                </when>
                <when value="mz_range_absolute">
                    <param name="min" label="Minimum m/z" type="float" help="" value="0.0" />
                    <param name="max" label="Maximum m/z" type="float" help="" value="100000.0" />
                </when>
                <when value="mz_range_percent_bp">
                    <param name="min" label="Minimum m/z (as percent of base peak m/z)" type="float" help="" value="0.0" />
                    <param name="max" label="Maximum m/z (as percent of base peak m/z)" type="float" help="" value="100000.0" />
                </when>
            </conditional>
            <!-- TODO: Add m/z, intensity thresholds. -->
        </macro>
        <macro name="percent_param">
            <param name="percent" label="Percent TIC Threshold" type="float" help="Filter all peaks whose intensity does not exceed this percent of total ion current." value="0.02" />
        </macro>
    </macros>
    <help>
**What it does**

Generates user-selected metrics in a tabular format for peptide-spectral matches using spectral/peptide summary generated from a search tool and mzml input files. The tabular format that is generated can be used for filtering based on user-defined thresholds. Alternatively, it can also provide visualization of peptide-spectral matches, thus allowing further metrics evaluation.
</help>
</tool>