view psm_eval.xml @ 2:f8356c01939b draft

Uploaded
author galaxyp
date Fri, 12 Jul 2013 12:40:08 -0400
parents 9743296a53a3
children 91fb73c8619c
line wrap: on
line source

<?xml version="1.0"?>
<tool name="Peptide-Spectrum-Matches (PSMs) Evaluation" id="psm_eval" version="0.1.0">
    <requirements>
        <requirement type="package">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
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
#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 from ProteinPilot search algorithm. mzidentML inputs results from an open source search algorithm">
                <option value="mzid">MzIdentML (mzid)</option>
                <option value="proteinpilot_peptide_report">ProteinPilot Peptide Report</option>
            </param>
            <when value="mzid">
                <param format="mzid" name="psms" type="data" label="MzIdentML containing PSMs" help="select appropriate file from history" />
            </when>
            <when value="proteinpilot_peptide_report">
                <param format="tabular" name="psms" type="data" label="ProteinPilot Peptide Report" help="select appropriate file from history" />
            </when>
        </conditional>
        <param format="mzml" name="peak_lists" type="data" label="Peak list (mzML)" multiple="true" help="select MZML file of experimental MS/MS data" />
        <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 precursor 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">
            <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>
                </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>
            </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 the search algorithm 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>