Mercurial > repos > galaxyp > proteomiqon_peptidespectrummatching
changeset 0:db6faafbf75b draft
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteomiqon_peptidespectrummatching commit 2ae9320c0e55f3a2a7d5b6121002722e59b42ab4"
author | galaxyp |
---|---|
date | Thu, 15 Jul 2021 07:11:01 +0000 |
parents | |
children | a79a24eb9e76 |
files | proteomiqon_peptidespectrummatching.xml static/images/PSM.png test-data/result_1.json test-data/result_2.json test-data/result_3.json test-data/sample.db test-data/sample.mzlite |
diffstat | 7 files changed, 267 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/proteomiqon_peptidespectrummatching.xml Thu Jul 15 07:11:01 2021 +0000 @@ -0,0 +1,195 @@ +<tool id="proteomiqon_peptidespectrummatching" name="ProteomIQon PeptideSpectrumMatching" version="@VERSION@" profile="20.05"> + <description> + iterates across all MS/MS scans in an MS run, determines precursor charge states and possible peptide spectrum matches. + </description> + <macros> + <token name="@VERSION@">0.0.7</token> + </macros> + <requirements> + <requirement type="package" version="@VERSION@">proteomiqon-peptidespectrummatching</requirement> + </requirements> + <command detect_errors="exit_code"><![CDATA[ + #import re + #set basename = $re.sub(r'[^\w ,.\-+]','_',$instrumentOutput.element_identifier) + #if $outputParamfile: + cat '$paramfile' >> '$out_paramfile' && + #end if + ln -s '$instrumentOutput' '${basename}.mzlite' && + ln -s '$out_psm' '${basename}.psm' && + proteomiqon-peptidespectrummatching -i './${basename}.mzlite' -d '$peptideDB' -p '$paramfile' -o ./ + ]]> + </command> + <configfiles> + <configfile name="paramfile"> + <![CDATA[ + { + "ChargeStateDeterminationParams": { + "ExpectedMinimalCharge": ${ChargeStateDeterminationParams.ExpectedMinimalCharge}, + "ExpectedMaximumCharge": ${ChargeStateDeterminationParams.ExpectedMaximumCharge}, + "Width": ${ChargeStateDeterminationParams.Width}, + "MinIntensity": ${ChargeStateDeterminationParams.MinIntensity}, + "DeltaMinIntensity": ${ChargeStateDeterminationParams.DeltaMinIntensity}, + "NrOfRndSpectra": ${ChargeStateDeterminationParams.NrOfRndSpectra} + }, + "LookUpPPM": ${LookUpPPM}, + "nTerminalSeries": { "Case": "${nTerminalSeries}" }, + "cTerminalSeries": { "Case": "${cTerminalSeries}" }, + "Andromeda": { + "PMinPMax": { + "Item1": ${Andromeda.PMin}, + "Item2": ${Andromeda.PMax} + }, + "MatchingIonTolerancePPM": ${Andromeda.MatchingIonTolerancePPM} + } + } + ]]> + </configfile> + </configfiles> + <inputs> + <param name="instrumentOutput" type="data" format="sqlite" label="Instrument output" help="Specify mass spectrometry data you want to analyze."/> + <param name="peptideDB" type="data" format="sqlite" label="Peptide database" help="Specify the peptide data base."/> + <section name="ChargeStateDeterminationParams" title="Charge state determination parameters" > + <param name="ExpectedMinimalCharge" type="integer" min="1" max="8" value="2" label="Expected minimal charge" help="Specify the minimum peptide ion charge state to consider."/> + <param name="ExpectedMaximumCharge" type="integer" min="1" max="8" value="5" label="Expected maximum charge" help="Specify the maximum peptide ion charge state to consider."/> + <param name="Width" type="float" value="1.1" label="Width" help="Specify the width around the picked precursor ion used in charge state determination."/> + <param name="MinIntensity" type="float" value="0.15" label="Min intensity" help="Specify minimum relative intensity within an putative isotopic envelope to be included when performing charge state determination."/> + <param name="DeltaMinIntensity" type="float" value="0.3" label="Delta min intensity" help="Specify minimum relative intensity to the prior peak when iterating through peak lists while performing charge state determination."/> + <param name="NrOfRndSpectra" type="integer" value="10000" label="Number of random spectra" help="When performing charge state determination we compared measured envelopes to the distribution of randomly generated spectra. This parameter tunes the size of the generated data set."/> + </section> + <param name="LookUpPPM" type="float" value="30" label="Lookup PPM" help="Specify the width of the search space when retrieving in silico generated peptide ions from the peptide data base. The width is calculated relative to the precursor mz in ppm."/> + <param name="nTerminalSeries" type="select" optional="false" label="N-terminal series" help="Specify the types of N-terminal charged ion fragments included in the generation of in silico fragment spectra." multiple="true" display="checkboxes"> + <option value="A">A</option> + <option value="B" selected="true">B</option> + <option value="C">C</option> + </param> + <param name="cTerminalSeries" type="select" optional="false" label="C-terminal Series" help="Specify the types of C-terminal charged ion fragments included in the generation of in silico fragment spectra." multiple="true" display="checkboxes"> + <option value="X">X</option> + <option value="Y" selected="true">Y</option> + <option value="Z">Z</option> + </param> + <section name="Andromeda" title="Andromeda"> + <param name="PMin" type="integer" value="4" label="P min" help="Specify the minimum N of the top N most abundand peaks within a 100 Da window used to compute the Andromeda score."/> + <param name="PMax" type="integer" value="10" label="P max" help="Specify the maximum N of the top N most abundand peaks within a 100 Da window used to compute the Andromeda score."/> + <param name="MatchingIonTolerancePPM" type="float" value="100.0" label="Matching ion tolerance PPM" help="Specify the minimum m/z difference between a measured and an in silico generated peak during peak matching. The width is calculated relative to the m/z of the measured peak in ppm."/> + </section> + <param name="outputParamfile" type="boolean" value="false" label="Output parameter file"/> + </inputs> + <outputs> + <data format="tabular" name="out_psm" /> + <data format="json" name="out_paramfile"> + <filter>outputParamfile</filter> + </data> + </outputs> + <tests> + <test expect_num_outputs="1"> + <param name="instrumentOutput" value="sample.mzlite"/> + <param name="peptideDB" value="sample.db"/> + <param name="LookUpPPM" value="30"/> + <param name="nTerminalSeries" value="A"/> + <param name="cTerminalSeries" value="X"/> + <section name="ChargeStateDeterminationParams"> + <param name="ExpectedMinimalCharge" value="2"/> + <param name="ExpectedMaximumCharge" value="5"/> + <param name="Width" value="1.1"/> + <param name="MinIntensity" value="0.15"/> + <param name="DeltaMinIntensity" value="0.3"/> + <param name="NrOfRndSpectra" value="10000"/> + </section> + <section name="Andromeda"> + <param name="PMin" value="4"/> + <param name="PMax" value="10"/> + <param name="MatchingIonTolerancePPM" value="100.0"/> + </section> + <param name="outputParamfile" value="false"/> + </test> + <test expect_num_outputs="2"> + <param name="instrumentOutput" value="sample.mzlite"/> + <param name="peptideDB" value="sample.db"/> + <param name="LookUpPPM" value="30"/> + <param name="nTerminalSeries" value="B"/> + <param name="cTerminalSeries" value="Y"/> + <section name="ChargeStateDeterminationParams"> + <param name="ExpectedMinimalCharge" value="2"/> + <param name="ExpectedMaximumCharge" value="5"/> + <param name="Width" value="1.1"/> + <param name="MinIntensity" value="0.15"/> + <param name="DeltaMinIntensity" value="0.3"/> + <param name="NrOfRndSpectra" value="10000"/> + </section> + <section name="Andromeda"> + <param name="PMin" value="4"/> + <param name="PMax" value="10"/> + <param name="MatchingIonTolerancePPM" value="100.0"/> + </section> + <param name="outputParamfile" value="true"/> + <output name="out_paramfile" file="result_1.json"/> + </test> + <test expect_num_outputs="2"> + <param name="instrumentOutput" value="sample.mzlite"/> + <param name="peptideDB" value="sample.db"/> + <param name="LookUpPPM" value="30"/> + <param name="nTerminalSeries" value="A"/> + <param name="cTerminalSeries" value="Z"/> + <section name="ChargeStateDeterminationParams"> + <param name="ExpectedMinimalCharge" value="2"/> + <param name="ExpectedMaximumCharge" value="5"/> + <param name="Width" value="1.1"/> + <param name="MinIntensity" value="0.15"/> + <param name="DeltaMinIntensity" value="0.3"/> + <param name="NrOfRndSpectra" value="10000"/> + </section> + <section name="Andromeda"> + <param name="PMin" value="4"/> + <param name="PMax" value="10"/> + <param name="MatchingIonTolerancePPM" value="100.0"/> + </section> + <param name="outputParamfile" value="true"/> + <output name="out_paramfile" file="result_2.json"/> + </test> + <test expect_num_outputs="2"> + <param name="instrumentOutput" value="sample.mzlite"/> + <param name="peptideDB" value="sample.db"/> + <param name="LookUpPPM" value="30"/> + <param name="nTerminalSeries" value="C"/> + <param name="cTerminalSeries" value="X"/> + <section name="ChargeStateDeterminationParams"> + <param name="ExpectedMinimalCharge" value="2"/> + <param name="ExpectedMaximumCharge" value="5"/> + <param name="Width" value="1.1"/> + <param name="MinIntensity" value="0.15"/> + <param name="DeltaMinIntensity" value="0.3"/> + <param name="NrOfRndSpectra" value="10000"/> + </section> + <section name="Andromeda"> + <param name="PMin" value="4"/> + <param name="PMax" value="10"/> + <param name="MatchingIonTolerancePPM" value="100.0"/> + </section> + <param name="outputParamfile" value="true"/> + <output name="out_paramfile" file="result_3.json"/> + </test> + </tests> + <help> + <![CDATA[ +What It Does +------------ +**Disclaimer** this tool needs a peptide database to query against, if you did not create one yet you can do so by using the `PeptideDB <https://csbiology.github.io/ProteomIQon/tools/PeptideDB.html>`_ tool. + +Given raw a MS run in the mzite format, this tool iterates accross all recorded MS/MS scans and determines the charge state of precursor ions which were selected for fragmentation. +With this it is possible to query the peptide data base for every precursor ion mass +/- a tolerance (which defines the so called 'search space') and retrieve peptides that are +theoretical candidates for a match. For each of the peptide candidates we create an theoretical spectrum in silico and compare it to the measured MS/MS scan. + +.. image:: PSM.png + :width: 768pt + :height: 563pt + +To measure similarity we use our own implementations of three established search enginge scores: SEQUEST, Andromeda and XTandem. +The search space is extended by so called decoys. Decoys are reversed counterparts of peptides within the search space and allow +us to assign a false discovery rate to each scored peptide using the `PSMStatistics <https://csbiology.github.io/ProteomIQon/tools/PSMStatistics.html>`_ tool. + +Further Reading +--------------- +Additional information about the tool can be found in the `documentation <https://csbiology.github.io/ProteomIQon/tools/PeptideSpectrumMatching.html>`_. + ]]> + </help> +</tool> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/result_1.json Thu Jul 15 07:11:01 2021 +0000 @@ -0,0 +1,24 @@ + + + { + "ChargeStateDeterminationParams": { + "ExpectedMinimalCharge": 2, + "ExpectedMaximumCharge": 5, + "Width": 1.1, + "MinIntensity": 0.15, + "DeltaMinIntensity": 0.3, + "NrOfRndSpectra": 10000 + }, + "LookUpPPM": 30.0, + "nTerminalSeries": { "Case": "B" }, + "cTerminalSeries": { "Case": "Y" }, + "Andromeda": { + "PMinPMax": { + "Item1": 4, + "Item2": 10 + }, + "MatchingIonTolerancePPM": 100.0 + } + } + + \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/result_2.json Thu Jul 15 07:11:01 2021 +0000 @@ -0,0 +1,24 @@ + + + { + "ChargeStateDeterminationParams": { + "ExpectedMinimalCharge": 2, + "ExpectedMaximumCharge": 5, + "Width": 1.1, + "MinIntensity": 0.15, + "DeltaMinIntensity": 0.3, + "NrOfRndSpectra": 10000 + }, + "LookUpPPM": 30.0, + "nTerminalSeries": { "Case": "A" }, + "cTerminalSeries": { "Case": "Z" }, + "Andromeda": { + "PMinPMax": { + "Item1": 4, + "Item2": 10 + }, + "MatchingIonTolerancePPM": 100.0 + } + } + + \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/result_3.json Thu Jul 15 07:11:01 2021 +0000 @@ -0,0 +1,24 @@ + + + { + "ChargeStateDeterminationParams": { + "ExpectedMinimalCharge": 2, + "ExpectedMaximumCharge": 5, + "Width": 1.1, + "MinIntensity": 0.15, + "DeltaMinIntensity": 0.3, + "NrOfRndSpectra": 10000 + }, + "LookUpPPM": 30.0, + "nTerminalSeries": { "Case": "C" }, + "cTerminalSeries": { "Case": "X" }, + "Andromeda": { + "PMinPMax": { + "Item1": 4, + "Item2": 10 + }, + "MatchingIonTolerancePPM": 100.0 + } + } + + \ No newline at end of file