Repository 'percolator'
hg clone https://toolshed.g2.bx.psu.edu/repos/galaxyp/percolator

Changeset 2:7a0951d0e13e (2017-03-10)
Previous changeset 1:86770eea5b09 (2017-03-04) Next changeset 3:abed51712ed0 (2017-04-08)
Commit message:
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/percolator commit 4ca7fcd1587c906db3314048a223d23b63b3f038
modified:
datatypes_conf.xml
nested_collection.py
nested_collection.xml
percolator.xml
test-data/percolatorOut.xml
test-data/target_ds2_withperco.mzid
test-data/target_ds3_withperco.mzid
added:
percolator_converters.xml
test-data/percolatorOut_alloptions.xml
removed:
msgf2pin.xml
percolator_datatypes.py
b
diff -r 86770eea5b09 -r 7a0951d0e13e datatypes_conf.xml
--- a/datatypes_conf.xml Sat Mar 04 20:36:03 2017 -0500
+++ b/datatypes_conf.xml Fri Mar 10 03:20:52 2017 -0500
b
@@ -5,7 +5,7 @@
   </datatype_files>
   <registration>
     <datatype extension="percin" type="galaxy.datatypes.data:Text" subclass="true" />
-    <datatype extension="percout" type="galaxy.datatypes.percolator:PercolatorOutXml" />
+    <datatype extension="percout" type="galaxy.datatypes.xml:GenericXml" subclass="true" />
     <datatype extension="meta2pin" type="galaxy.datatypes.data:Text" subclass="true" />
   </registration>
 </datatypes>
b
diff -r 86770eea5b09 -r 7a0951d0e13e msgf2pin.xml
--- a/msgf2pin.xml Sat Mar 04 20:36:03 2017 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,116 +0,0 @@
-<tool id="msgfplus2pin" name="MS-GF+ output to Pin converter" version="3.0.1">
-    <description>to create Percolator input files</description>
-    <requirements>
-        <requirement type="package" version="3.0">percolator</requirement>
-    </requirements>
-    <stdio>
-        <exit_code range="1:"/>
-    </stdio>
-    <command><![CDATA[
-             mkdir target && mkdir decoy &&
-             
-             #if $mzids.inputtype == "multi"
-                 #for $key in $mzids.target.keys()
-                     ln -s '$mzids.target[$key]' 'target/$key' &&
-                     echo 'target/$key' >> targetmeta &&
-                 #end for
-                 #for $key in $mzids.decoy.keys()
-                     ln -s '$mzids.decoy[$key]' 'decoy/$key' &&
-                     echo 'decoy/$key' >> decoymeta &&
-                 #end for
-                 msgf2pin -o $pinout -e $enzyme
-                 #if $matches
-                     -m $matches
-                 #end if
-                 $aafreq $ptm $pngase $isotope targetmeta decoymeta
-             
-             #else
-                 ln -s '$mzids.target' 'target/$target.display_name' &&
-                 ln -s '$mzids.decoy' 'decoy/$decoy.display_name' &&
-                 msgf2pin -o $pinout -e $enzyme
-                 #if $matches
-                     -m $matches
-                 #end if
-                 $aafreq $ptm $pngase $isotope
-                 'target/$mzids.target.display_name' 'decoy/$mzids.decoy.display_name'
-             #end if
-    ]]></command>
-    <inputs>
-        <conditional name="mzids">
-            <param name="inputtype" type="select" display="radio">
-                <option value="single">Single mzIdentML</option>
-                <option value="multi">Multiple mzIdentMLs</option>
-            </param>
-     <when value="single">
-                <param name="target" type="data" format="mzid" label="Target MSGF+ results" />
-                <param name="decoy" type="data" format="mzid" label="Decoy MSGF+ results" />
-            </when>
-     <when value="multi">
-                <param name="target" type="data_collection" collection_type="list" format="mzid" label="Target MSGF+ results" />
-                <param name="decoy" type="data_collection" collection_type="list" format="mzid" label="Decoy MSGF+ results" />
-            </when>
-        </conditional>
-        <param name="enzyme" type="select" label="Enzyme used">
-          <option value="trypsin">trypsin</option>
-          <option value="no_enzyme">no enzyme</option>
-          <option value="elastase">elastase</option>
-          <option value="pepsin">pepsin</option>
-          <option value="proteinasek">proteinase K</option>
-          <option value="thermolysin">thermolysin</option>
-          <option value="chymotrypsin">chymotrypsin</option>
-          <option value="lys-n">lys-N</option>
-          <option value="lys-c">lys-C</option>
-          <option value="arg-c">arg-C</option>
-          <option value="asp-n">asp-N</option>
-          <option value="glu-c">glu-C</option>
-        </param>
-        <param name="matches" type="integer" optional="true" label="Max number of PSMs for a spectrum" />
- <param name="aafreq" type="boolean" label="Calculate amino acid frequency features" truevalue="-a" falsevalue="" />
-        <param name="ptm" type="boolean" label="Calculate feature for number of PTMs" truevalue="-b" falsevalue="" />
-        <param name="pngase" type="boolean" label="Calculate feature based on N-linked glycosylation resulting from PNGaseF" truevalue="-N" falsevalue="" />
-        <param name="isotope" type="boolean" label="Calculate mass difference to closest isotope instead of avg. mass" truevalue="-M" falsevalue="" />
-    </inputs>
-    <outputs>
-        <data format="percin" name="pinout"/>
-    </outputs>
-    <tests>
-        <test>
-          <param name="mzids|inputtype" value="single" />
-          <param name="mzids|target" value="target.mzid" />
-          <param name="mzids|decoy" value="decoy.mzid" />
-          <param name="ptm" value="true"/>
-          <param name="matches" value="1"/>
-          <output name="pinout" value="percolatorInresult.txt" compare="sim_size" delta="20" />
-        </test>
-        <test>
-          <param name="mzids|inputtype" value="multi" />
-          <param name="mzids|target">
-                <collection type="list">
-                    <element name="target1" value="target.mzid" />
-                    <element name="target2" value="target.mzid" />
-                </collection>
-          </param>
-          <param name="mzids|decoy">
-                <collection type="list">
-                    <element name="decoy1" value="decoy.mzid" />
-                    <element name="decoy2" value="decoy.mzid" />
-                </collection>
-          </param>
-          <param name="ptm" value="true"/>
-          <param name="matches" value="1"/>
-          <output name="pinout" value="percolatorInresult_multifractions.txt" compare="sim_size" delta="20" />
-        </test>
-    </tests>
-    <help>
-The percolator converter msgf2pin converts mzIdentML to input for percolator.
-Target and decoy inputs are MzIdentML-files of MS-GF+ from
-separate target and decoy searches. Internal MS-GF+ target/decoy
-analysis should be turned off, and the addFeatures options turned on.
-Multiple MzIdentML-files can be merged by passing lists of these.
-For successful results, the different runs should be generated under 
-similar conditions.
-    </help>
-    <citations>
-        <citation type="doi">10.1021/pr400937n</citation>
-    </citations>
-</tool>
b
diff -r 86770eea5b09 -r 7a0951d0e13e nested_collection.py
--- a/nested_collection.py Sat Mar 04 20:36:03 2017 -0500
+++ b/nested_collection.py Fri Mar 10 03:20:52 2017 -0500
[
@@ -44,7 +44,7 @@
     for batchcount, (pool_id, batch) in enumerate(get_batches_of_galaxyfiles(
             args.realnames, args.batchsize, args.poolids)):
         for fncount, batchfile in enumerate([args.galaxyfiles[index] for index in batch]):
-            dsetname = '{}___batch{}_inputfn{}.mzid'.format(pool_id, batchcount, fncount)
+            dsetname = '{}_batch{}___inputfn{}.mzid'.format(pool_id, batchcount, fncount)
             print('producing', dsetname)
             os.symlink(batchfile, dsetname)
 
b
diff -r 86770eea5b09 -r 7a0951d0e13e nested_collection.xml
--- a/nested_collection.xml Sat Mar 04 20:36:03 2017 -0500
+++ b/nested_collection.xml Fri Mar 10 03:20:52 2017 -0500
[
@@ -1,4 +1,4 @@
-<tool id="batched_set_list_creator" name="Create nested list" version="3.0.1">
+<tool id="batched_set_list_creator" name="Create nested list" version="3.1">
     <description>based on filenames and batch sizes</description>
     <stdio>
         <exit_code range="1:" />
@@ -32,7 +32,7 @@
     </inputs>
     <outputs>
         <collection name="batched_fractions" type="list:list" label="Pooled batched data">
-          <discover_datasets pattern="[a-zA-z0-9_]*___(?P&lt;identifier_0&gt;[^_]+)_(?P&lt;identifier_1&gt;[^_]+)\.mzid" ext="mzid" visible="true" />
+          <discover_datasets pattern="(?P&lt;identifier_0&gt;\w+[^_][^_][^_])___(?P&lt;identifier_1&gt;[^_]+)\.mzid" ext="mzid" visible="true" />
         </collection>
     </outputs>
     <tests>
@@ -47,11 +47,11 @@
                 </collection>
             </param>
             <output_collection name="batched_fractions" type="list:list">
-                <element name="batch0">
+                <element name="pool0_batch0">
                     <element name="inputfn0" file="empty_file1.mzid"/>
                     <element name="inputfn1" file="empty_file2.mzid"/>
                 </element>
-                <element name="batch1">
+                <element name="pool0_batch1">
                     <element name="inputfn0" file="empty_file3.mzid"/>
                     <element name="inputfn1" file="empty_file4.mzid"/>
                 </element>
@@ -75,12 +75,12 @@
                 </collection>
             </param>
             <output_collection name="batched_fractions" type="list:list">
-                <element name="batch0">
+                <element name="set1_batch0">
                     <element name="inputfn0" file="empty_file1.mzid"/>
                     <element name="inputfn1" file="empty_file2.mzid"/>
                     <element name="inputfn2" file="empty_file3.mzid"/>
                 </element>
-                <element name="batch1">
+                <element name="set2_batch1">
                     <element name="inputfn0" file="empty_file4.mzid"/>
                     <element name="inputfn1" file="empty_file5.mzid"/>
                     <element name="inputfn2" file="empty_file6.mzid"/>
@@ -106,18 +106,18 @@
                 </collection>
             </param>
             <output_collection name="batched_fractions" type="list:list">
-                <element name="batch0">
+                <element name="set1_batch0">
                     <element name="inputfn0" file="empty_file1.mzid"/>
                     <element name="inputfn1" file="empty_file2.mzid"/>
                 </element>
-                <element name="batch1">
+                <element name="set1_batch1">
                     <element name="inputfn0" file="empty_file3.mzid"/>
                 </element>
-                <element name="batch2">
+                <element name="set2_batch2">
                     <element name="inputfn0" file="empty_file4.mzid"/>
                     <element name="inputfn1" file="empty_file5.mzid"/>
                 </element>
-                <element name="batch3">
+                <element name="set2_batch3">
                     <element name="inputfn0" file="empty_file6.mzid"/>
                 </element>
             </output_collection>
b
diff -r 86770eea5b09 -r 7a0951d0e13e percolator.xml
--- a/percolator.xml Sat Mar 04 20:36:03 2017 -0500
+++ b/percolator.xml Fri Mar 10 03:20:52 2017 -0500
b
@@ -1,7 +1,7 @@
-<tool id="percolator" name="Percolator" version="3.0.1">
+<tool id="percolator" name="Percolator" version="3.1.0">
     <description>accurate peptide identification</description>
     <requirements>
-        <requirement type="package" version="3.0">percolator</requirement>
+        <requirement type="package" version="3.1">percolator</requirement>
     </requirements>
     <stdio>
         <exit_code range="1:"/>
@@ -13,6 +13,7 @@
     #else
         -J '$percoout'
     #end if
+    $tdmethod
     #if $cpos
         -p $cpos
     #end if
@@ -37,18 +38,22 @@
     $quickval $unitnorm $override $onlypsms
     </command>
     <inputs>
-        <param name="output_type" label="What filetype to output" type="select" display="radio">
-            <option value="xml" selected="true">percolator XML (for further processing)</option>
-     <option value="tsv">Tab-separated</option>
+        <param name="output_type" label="What to output" type="select" display="radio">
+            <option value="xml" selected="true">Percolator output (XML)</option>
+     <option value="tsv">Computed features of input (Tab separated)</option>
         </param>
         <param name="input" type="data" format="percin" label="Percolator input data" />
+        <param name="tdmethod" type="select" label="Target decoy method">
+            <option value="-y" selected="true">Mix-max</option>
+     <option value="-Y">Target-decoy competition (also good when unequal amounts of target/decoy PSMs)</option>
+        </param>
         <param name="cpos" label="Penalty for mistakes on positive examples" type="float" optional="true" />
         <param name="cneg" label="Penalty for mistakes on negative examples" type="float" optional="true" />
         <param name="trainfdr" label="FDR threshold to define positive examples" type="float" optional="true" help="Set by cross validation if 0."/>
         <param name="testfdr" label="FDR threshold for evaluating best cross validation result" type="float" optional="true" />
         <param name="maxiter" label="Maximal number of iterations" type="integer" optional="true" />
         <param name="quickval" label="Quicker execution by reduced internal cross-validation" type="boolean" truevalue="-x" falsevalue=""/>
-        <param name="default_direction" label="Most informative feature given as feature number" type="integer" optional="true" />
+        <param name="default_direction" label="Most informative feature given as feature name." help="Can be negated to indicate lower value=better, e.g -featureName" type="text" optional="true" />
         <param name="unitnorm" type="boolean" label="Unit normalization instead of standard deviation" truevalue="-u" falsevalue=""/>
         <param name="override" label="Override error check?" help="and no fallback on default score vector in case of suspect score vector" type="boolean" truevalue="-O" falsevalue=""/>
         <param name="seed" label="Seed of random number generator" type="integer" optional="true" />
@@ -70,8 +75,25 @@
         </test>
         <test>
             <param name="input" value="percolatorTab" />
+            <param name="output_type" value="xml" />
+            <param name="tdmethod" value="-Y" />
+            <param name="cpos" value="0.00001" />
+            <param name="cneg" value="0.00001" />
+            <param name="trainfdr" value="0.1" />
+            <param name="testfdr" value="0.1" />
+            <param name="maxiter" value="5" />
+            <param name="quickval" value="-x" />
+            <param name="default_direction" value="RawScore" />
+            <param name="unitnorm" value="-u" />
+            <param name="override" value="-O" />
+            <param name="seed" value="2" />
+            <param name="onlypsms" value="-U" />
+            <output name="percoout" value="percolatorOut_alloptions.xml" lines_diff="2" />
+        </test>
+        <test>
+            <param name="input" value="percolatorTab" />
             <param name="output_type" value="tsv" />
-            <output name="percoout" value="percolatorOut.txt" />
+            <output name="percoout" value="percolatorOut.txt" lines_diff="1" />
         </test>
     </tests>
     <help>The first step in analyzing an mass spectrometry assay is to match the harvested spectra against a target database using database search engines such as Sequest and Mascot, a process that renders list of peptide-spectrum matches. However, it is not trivial to assess the accuracy of these identifications.
b
diff -r 86770eea5b09 -r 7a0951d0e13e percolator_converters.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/percolator_converters.xml Fri Mar 10 03:20:52 2017 -0500
[
@@ -0,0 +1,121 @@
+<tool id="percolator_input_converters" name="Search engine output to Pin converter" version="3.1">
+    <description>to create Percolator input files</description>
+    <requirements>
+        <requirement type="package" version="3.1">percolator</requirement>
+    </requirements>
+    <stdio>
+        <exit_code range="1:"/>
+    </stdio>
+    <command><![CDATA[
+             mkdir target && mkdir decoy &&
+             
+             #if $mzids.inputtype == "multi"
+                 #for $key in $mzids.target.keys()
+                     ln -s '$mzids.target[$key]' 'target/$key' &&
+                     echo 'target/$key' >> targetmeta &&
+                 #end for
+                 #for $key in $mzids.decoy.keys()
+                     ln -s '$mzids.decoy[$key]' 'decoy/$key' &&
+                     echo 'decoy/$key' >> decoymeta &&
+                 #end for
+                 $searchengine -o $pinout -e $enzyme
+                 #if $matches
+                     -m $matches
+                 #end if
+                 $aafreq $ptm $pngase $isotope targetmeta decoymeta
+             
+             #else
+                 ln -s '$mzids.target' 'target/$target.display_name' &&
+                 ln -s '$mzids.decoy' 'decoy/$decoy.display_name' &&
+                 $searchengine -o $pinout -e $enzyme
+                 #if $matches
+                     -m $matches
+                 #end if
+                 $aafreq $ptm $pngase $isotope
+                 'target/$mzids.target.display_name' 'decoy/$mzids.decoy.display_name'
+             #end if
+    ]]></command>
+    <inputs>
+        <param name="searchengine" type="select" label="Search engine used">
+            <option value="msgf2pin">MSGF+ (mzIdentML)</option>
+            <option value="tandem2pin">X!Tandem (tandem)</option>
+            <option value="sqt2pin">Crux (SQT output)</option>
+        </param>
+        <conditional name="mzids">
+            <param name="inputtype" type="select" display="radio">
+                <option value="single">Single mzIdentML</option>
+                <option value="multi">Multiple mzIdentMLs</option>
+            </param>
+     <when value="single">
+                <param name="target" type="data" format="mzid" label="Target MSGF+ results" />
+                <param name="decoy" type="data" format="mzid" label="Decoy MSGF+ results" />
+            </when>
+     <when value="multi">
+                <param name="target" type="data_collection" collection_type="list" format="mzid" label="Target MSGF+ results" />
+                <param name="decoy" type="data_collection" collection_type="list" format="mzid" label="Decoy MSGF+ results" />
+            </when>
+        </conditional>
+        <param name="enzyme" type="select" label="Enzyme used">
+          <option value="trypsin">trypsin</option>
+          <option value="no_enzyme">no enzyme</option>
+          <option value="elastase">elastase</option>
+          <option value="pepsin">pepsin</option>
+          <option value="proteinasek">proteinase K</option>
+          <option value="thermolysin">thermolysin</option>
+          <option value="chymotrypsin">chymotrypsin</option>
+          <option value="lys-n">lys-N</option>
+          <option value="lys-c">lys-C</option>
+          <option value="arg-c">arg-C</option>
+          <option value="asp-n">asp-N</option>
+          <option value="glu-c">glu-C</option>
+        </param>
+        <param name="matches" type="integer" optional="true" label="Max number of PSMs for a spectrum" />
+ <param name="aafreq" type="boolean" label="Calculate amino acid frequency features" truevalue="-a" falsevalue="" />
+        <param name="ptm" type="boolean" label="Calculate feature for number of PTMs" truevalue="-b" falsevalue="" />
+        <param name="pngase" type="boolean" label="Calculate feature based on N-linked glycosylation resulting from PNGaseF" truevalue="-N" falsevalue="" />
+        <param name="isotope" type="boolean" label="Calculate mass difference to closest isotope instead of avg. mass" truevalue="-M" falsevalue="" />
+    </inputs>
+    <outputs>
+        <data format="percin" name="pinout"/>
+    </outputs>
+    <tests>
+        <test>
+          <param name="mzids|inputtype" value="single" />
+          <param name="mzids|target" value="target.mzid" />
+          <param name="mzids|decoy" value="decoy.mzid" />
+          <param name="ptm" value="true"/>
+          <param name="matches" value="1"/>
+          <output name="pinout" value="percolatorInresult.txt" compare="sim_size" delta="20" />
+        </test>
+        <test>
+          <param name="mzids|inputtype" value="multi" />
+          <param name="mzids|target">
+                <collection type="list">
+                    <element name="target1" value="target.mzid" />
+                    <element name="target2" value="target.mzid" />
+                </collection>
+          </param>
+          <param name="mzids|decoy">
+                <collection type="list">
+                    <element name="decoy1" value="decoy.mzid" />
+                    <element name="decoy2" value="decoy.mzid" />
+                </collection>
+          </param>
+          <param name="ptm" value="true"/>
+          <param name="matches" value="1"/>
+          <output name="pinout" value="percolatorInresult_multifractions.txt" compare="sim_size" delta="20" />
+        </test>
+    </tests>
+    <help>
+The percolator converter msgf2pin converts mzIdentML to input for percolator.
+Target and decoy inputs are MzIdentML-files of MS-GF+ from
+separate target and decoy searches. Internal MS-GF+ target/decoy
+analysis should be turned off, and the addFeatures options turned on.
+Multiple MzIdentML-files can be merged by passing lists of these.
+For successful results, the different runs should be generated under 
+similar conditions.
+    </help>
+    <citations>
+        <citation type="doi">10.1021/pr400937n</citation>
+    </citations>
+</tool>
b
diff -r 86770eea5b09 -r 7a0951d0e13e percolator_datatypes.py
--- a/percolator_datatypes.py Sat Mar 04 20:36:03 2017 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,7 +0,0 @@
-from galaxy.datatypes.proteomics import ProteomicsXml
-
-
-class PercolatorOutXml(ProteomicsXml):
-    """Percolator output data in XML format"""
-    file_ext = 'percout'
-    blurb = 'percolator out XML'
b
diff -r 86770eea5b09 -r 7a0951d0e13e test-data/percolatorOut.xml
--- a/test-data/percolatorOut.xml Sat Mar 04 20:36:03 2017 -0500
+++ b/test-data/percolatorOut.xml Fri Mar 10 03:20:52 2017 -0500
[
b'@@ -4,34 +4,46 @@\n xmlns:p="http://per-colator.com/percolator_out/15" \n xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \n xsi:schemaLocation="http://per-colator.com/percolator_out/15 https://github.com/percolator/percolator/raw/pout-1-5/src/xml/percolator_out.xsd" \n-p:majorVersion="3" p:minorVersion="00" p:percolator_version="Percolator version 3.00">\n+p:majorVersion="3" p:minorVersion="01" p:percolator_version="Percolator version 3.01">\n \n   <process_info>\n-    <command_line>percolator -j testpin -X percolator30Out.xml --decoy-xml-output</command_line>\n+    <command_line>percolator -X percotest -j percolatorTab --decoy-xml-output</command_line>\n     <other_command_line></other_command_line>\n-    <pi_0_psms>1</pi_0_psms>\n-    <pi_0_peptides>1</pi_0_peptides>\n-    <psms_qlevel>60</psms_qlevel>\n-    <peptides_qlevel>60</peptides_qlevel>\n+    <pi_0_psms>0.790264</pi_0_psms>\n+    <pi_0_peptides>0.805704</pi_0_peptides>\n+    <psms_qlevel>0</psms_qlevel>\n+    <peptides_qlevel>0</peptides_qlevel>\n   </process_info>\n \n   <psms>\n-    <psm p:psm_id="dataset_2_SII_259_1_9758_3_1" p:decoy="false">\n-      <svm_score>2.813409</svm_score>\n-      <q_value>0.000000e+00</q_value>\n-      <pep>1.126167e-05</pep>\n-      <exp_mass>1020.5000</exp_mass>\n-      <calc_mass>1020.180</calc_mass>\n-      <peptide_seq n="K" c="V" seq="[UNIMOD:737]TDEFQLHTNVNDGTEFGGSIYQK[UNIMOD:737]"/>\n-      <protein_id>ENSP00000378484.3</protein_id>\n-      <protein_id>ENSP00000265333.3</protein_id>\n-      <protein_id>ENSP00000378487.2</protein_id>\n-      <p_value>6.357e-04</p_value>\n+    <psm p:psm_id="dataset_2_SII_438_1_9937_2_1" p:decoy="false">\n+      <svm_score>0.000000</svm_score>\n+      <q_value>2.195178e-02</q_value>\n+      <pep>6.523451e-02</pep>\n+      <exp_mass>1111.0600</exp_mass>\n+      <calc_mass>1111.070</calc_mass>\n+      <peptide_seq n="K" c="A" seq="[UNIMOD:737]YQLQSQENFEAFMK[UNIMOD:737]"/>\n+      <protein_id>ENSP00000295834.3</protein_id>\n+      <protein_id>ENSP00000377351.3</protein_id>\n+      <p_value>0.000e+00</p_value>\n+    </psm>\n+    <psm p:psm_id="dataset_3_SII_386_1_9885_4_1" p:decoy="false">\n+      <svm_score>0.000</svm_score>\n+      <q_value>2.195e-02</q_value>\n+      <pep>6.523e-02</pep>\n+      <exp_mass>573.8040</exp_mass>\n+      <calc_mass>573.810</calc_mass>\n+      <peptide_seq n="K" c="G" seq="[UNIMOD:737]TYFPHFDLSHGSAQVK[UNIMOD:737]"/>\n+      <protein_id>ENSP00000322421.5</protein_id>\n+      <protein_id>ENSP00000380899.1</protein_id>\n+      <protein_id>ENSP00000251595.6</protein_id>\n+      <protein_id>ENSP00000380908.1</protein_id>\n+      <p_value>0.000e+00</p_value>\n     </psm>\n     <psm p:psm_id="dataset_3_SII_343_1_9842_3_1" p:decoy="false">\n-      <svm_score>2.556</svm_score>\n-      <q_value>0.000e+00</q_value>\n-      <pep>3.128e-05</pep>\n+      <svm_score>0.000</svm_score>\n+      <q_value>2.195e-02</q_value>\n+      <pep>6.523e-02</pep>\n       <exp_mass>804.7940</exp_mass>\n       <calc_mass>804.802</calc_mass>\n       <peptide_seq n="R" c="A" seq="[UNIMOD:737]VAPEEHPVLLTEAPLNPK[UNIMOD:737]"/>\n@@ -50,140 +62,35 @@\n       <protein_id>ENSP00000460660.1</protein_id>\n       <protein_id>ENSP00000466346.1</protein_id>\n       <protein_id>ENSP00000477968.1</protein_id>\n-      <p_value>6.357e-04</p_value>\n-    </psm>\n-    <psm p:psm_id="dataset_3_SII_386_1_9885_4_1" p:decoy="false">\n-      <svm_score>2.202</svm_score>\n-      <q_value>0.000e+00</q_value>\n-      <pep>1.274e-04</pep>\n-      <exp_mass>573.8040</exp_mass>\n-      <calc_mass>573.810</calc_mass>\n-      <peptide_seq n="K" c="G" seq="[UNIMOD:737]TYFPHFDLSHGSAQVK[UNIMOD:737]"/>\n-      <protein_id>ENSP00000322421.5</protein_id>\n-      <protein_id>ENSP00000380899.1</protein_id>\n-      <protein_id>ENSP00000251595.6</protein_id>\n-      <protein_id>ENSP00000380908.1</protein_id>\n-      <p_value>6.357e-04</p_value>\n-    </psm>\n-    <psm p:psm_id="dataset_3_SII_176_1_9675_2_1" p:decoy="false">\n-      <svm_score>1.673</svm_score>\n-      <q_value>0.000e+00</q_value>\n-      <pep>1.038e-03</pe'..b'_ENSP00000344055.4</protein_id>\n-      <p_value>9.970e-01</p_value>\n-      <psm_ids>\n-        <psm_id>dataset_88023_SII_10106_1_10106_6_1</psm_id>\n-      </psm_ids>\n-    </peptide>\n-    <peptide p:peptide_id="[UNIMOD:737]M[UNIMOD:35]TM[UNIMOD:35]RGGPC[UNIMOD:4]HK[UNIMOD:737]RPTK[UNIMOD:737]AK[UNIMOD:737]EK[UNIMOD:737]RNK[UNIMOD:737]K[UNIMOD:737]K[UNIMOD:737]K[UNIMOD:737]RK[UNIMOD:737]EILR" p:decoy="true">\n-      <svm_score>-2.304</svm_score>\n-      <q_value>1.000e+00</q_value>\n-      <pep>1.000e+00</pep>\n-      <exp_mass>1003.3000</exp_mass>\n-      <calc_mass>1003.300</calc_mass>\n-      <protein_id>decoy_ENSP00000428940.1</protein_id>\n-      <protein_id>decoy_ENSP00000427937.1</protein_id>\n-      <protein_id>decoy_ENSP00000276659.5</protein_id>\n-      <protein_id>decoy_ENSP00000428614.1</protein_id>\n-      <p_value>9.978e-01</p_value>\n-      <psm_ids>\n-        <psm_id>dataset_88023_SII_10224_1_10224_6_1</psm_id>\n-      </psm_ids>\n-    </peptide>\n-    <peptide p:peptide_id="[UNIMOD:737]QREK[UNIMOD:737]K[UNIMOD:737]K[UNIMOD:737]ELERWLEEK[UNIMOD:737]K[UNIMOD:737]LEELK[UNIMOD:737]LK[UNIMOD:737]K[UNIMOD:737]ELAK[UNIMOD:737]" p:decoy="true">\n-      <svm_score>-2.508</svm_score>\n-      <q_value>1.000e+00</q_value>\n-      <pep>1.000e+00</pep>\n-      <exp_mass>979.6190</exp_mass>\n-      <calc_mass>979.460</calc_mass>\n-      <protein_id>decoy_ENSP00000261461.2</protein_id>\n-      <protein_id>decoy_ENSP00000442866.1</protein_id>\n-      <p_value>9.985e-01</p_value>\n-      <psm_ids>\n-        <psm_id>dataset_88023_SII_10081_1_10081_6_1</psm_id>\n-      </psm_ids>\n-    </peptide>\n-    <peptide p:peptide_id="[UNIMOD:737]K[UNIMOD:737]K[UNIMOD:737]K[UNIMOD:737]K[UNIMOD:737]RK[UNIMOD:737]HK[UNIMOD:737]K[UNIMOD:737]EK[UNIMOD:737]K[UNIMOD:737]K[UNIMOD:737]K[UNIMOD:737]DK[UNIMOD:737]" p:decoy="true">\n-      <svm_score>-2.583</svm_score>\n-      <q_value>1.000e+00</q_value>\n-      <pep>1.000e+00</pep>\n-      <exp_mass>846.0940</exp_mass>\n-      <calc_mass>846.257</calc_mass>\n-      <protein_id>decoy_ENSP00000272139.4</protein_id>\n-      <p_value>9.993e-01</p_value>\n-      <psm_ids>\n-        <psm_id>dataset_88023_SII_10136_1_10136_6_1</psm_id>\n-      </psm_ids>\n-    </peptide>\n-    <peptide p:peptide_id="[UNIMOD:737]TK[UNIMOD:737]K[UNIMOD:737]ERK[UNIMOD:737]EEM[UNIMOD:35]TSEK[UNIMOD:737]K[UNIMOD:737]EVTLEK[UNIMOD:737]K[UNIMOD:737]RPTREEM[UNIMOD:35]RK[UNIMOD:737]EVILEK[UNIMOD:737]K[UNIMOD:737]K[UNIMOD:737]RK[UNIMOD:737]ETSEK[UNIMOD:737]TK[UNIMOD:737]" p:decoy="true">\n-      <svm_score>-2.593</svm_score>\n-      <q_value>1.000e+00</q_value>\n-      <pep>1.000e+00</pep>\n-      <exp_mass>1548.7900</exp_mass>\n-      <calc_mass>1548.780</calc_mass>\n-      <protein_id>decoy_ENSP00000362455.3</protein_id>\n-      <p_value>1.000e+00</p_value>\n-      <psm_ids>\n-        <psm_id>dataset_88023_SII_2545_1_2545_6_1</psm_id>\n+    <peptide p:peptide_id="[UNIMOD:737]LHEC[UNIMOD:4]EPSC[UNIMOD:4]VSWESWVEWSGDVPC[UNIMOD:4]LSTC[UNIMOD:4]TIR" p:decoy="true">\n+      <svm_score>-1.388</svm_score>\n+      <q_value>1.000e+00</q_value>\n+      <pep>1.000e+00</pep>\n+      <exp_mass>780.3480</exp_mass>\n+      <calc_mass>779.953</calc_mass>\n+      <protein_id>decoy_ENSP00000385143.2</protein_id>\n+      <protein_id>decoy_ENSP00000412652.1</protein_id>\n+      <protein_id>decoy_ENSP00000394303.2</protein_id>\n+      <p_value>0.000e+00</p_value>\n+      <psm_ids>\n+        <psm_id>dataset_88023_SII_9728_1_9728_5_1</psm_id>\n+      </psm_ids>\n+    </peptide>\n+    <peptide p:peptide_id="[UNIMOD:737]MC[UNIMOD:4]DQC[UNIMOD:4]C[UNIMOD:4]VC[UNIMOD:4]QDLVDR" p:decoy="false">\n+      <svm_score>-1.404</svm_score>\n+      <q_value>1.000e+00</q_value>\n+      <pep>1.000e+00</pep>\n+      <exp_mass>1045.4500</exp_mass>\n+      <calc_mass>1044.440</calc_mass>\n+      <protein_id>ENSP00000423323.1</protein_id>\n+      <protein_id>ENSP00000426402.1</protein_id>\n+      <p_value>0.000e+00</p_value>\n+      <psm_ids>\n+        <psm_id>dataset_2_SII_240_1_9739_2_1</psm_id>\n       </psm_ids>\n     </peptide>\n   </peptides>\n'
b
diff -r 86770eea5b09 -r 7a0951d0e13e test-data/percolatorOut_alloptions.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/percolatorOut_alloptions.xml Fri Mar 10 03:20:52 2017 -0500
[
b'@@ -0,0 +1,21498 @@\n+<?xml version="1.0" encoding="UTF-8"?>\n+<percolator_output \n+xmlns="http://per-colator.com/percolator_out/15" \n+xmlns:p="http://per-colator.com/percolator_out/15" \n+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \n+xsi:schemaLocation="http://per-colator.com/percolator_out/15 https://github.com/percolator/percolator/raw/pout-1-5/src/xml/percolator_out.xsd" \n+p:majorVersion="3" p:minorVersion="01" p:percolator_version="Percolator version 3.01">\n+\n+  <process_info>\n+    <command_line>percolator -X percotest -j percolatorTab -Y -p 0.00001 -n 0.00001 -t 0.1 -F 0.1 -i 5 -S 2 -V RawScore -x -u -O -U --decoy-xml-output</command_line>\n+    <other_command_line></other_command_line>\n+    <pi_0_psms>1</pi_0_psms>\n+    <psms_qlevel>0</psms_qlevel>\n+  </process_info>\n+\n+  <psms>\n+    <psm p:psm_id="dataset_3_SII_77_1_9576_2_1" p:decoy="false">\n+      <svm_score>0.000000</svm_score>\n+      <q_value>1.000000e+00</q_value>\n+      <pep>1.000000e+00</pep>\n+      <exp_mass>419.7500</exp_mass>\n+      <calc_mass>420.250</calc_mass>\n+      <peptide_seq n="R" c="P" seq="[UNIMOD:737]PPPGSR"/>\n+      <protein_id>ENSP00000361434.5</protein_id>\n+      <protein_id>ENSP00000436727.1</protein_id>\n+      <protein_id>ENSP00000361429.3</protein_id>\n+      <protein_id>ENSP00000391998.3</protein_id>\n+      <protein_id>ENSP00000387435.3</protein_id>\n+      <p_value>0.000e+00</p_value>\n+    </psm>\n+    <psm p:psm_id="dataset_88023_SII_9148_1_9148_2_1" p:decoy="true">\n+      <svm_score>0.000</svm_score>\n+      <q_value>1.000e+00</q_value>\n+      <pep>1.000e+00</pep>\n+      <exp_mass>401.7190</exp_mass>\n+      <calc_mass>402.223</calc_mass>\n+      <peptide_seq n="K" c="P" seq="[UNIMOD:737]PGMGGR"/>\n+      <protein_id>decoy_ENSP00000412580.2</protein_id>\n+      <protein_id>decoy_ENSP00000347042.5</protein_id>\n+      <protein_id>decoy_ENSP00000346437.3</protein_id>\n+      <p_value>0.000e+00</p_value>\n+    </psm>\n+    <psm p:psm_id="dataset_88023_SII_6492_1_6492_2_1" p:decoy="true">\n+      <svm_score>0.000</svm_score>\n+      <q_value>1.000e+00</q_value>\n+      <pep>1.000e+00</pep>\n+      <exp_mass>474.7240</exp_mass>\n+      <calc_mass>475.225</calc_mass>\n+      <peptide_seq n="R" c="-" seq="[UNIMOD:737]PVC[UNIMOD:4]C[UNIMOD:4]QG"/>\n+      <protein_id>decoy_ENSP00000357675.1</protein_id>\n+      <p_value>0.000e+00</p_value>\n+    </psm>\n+    <psm p:psm_id="dataset_2_SII_492_1_9991_5_1" p:decoy="false">\n+      <svm_score>-0.017</svm_score>\n+      <q_value>1.000e+00</q_value>\n+      <pep>1.000e+00</pep>\n+      <exp_mass>900.4430</exp_mass>\n+      <calc_mass>900.646</calc_mass>\n+      <peptide_seq n="R" c="S" seq="[UNIMOD:737]PRLK[UNIMOD:737]K[UNIMOD:737]K[UNIMOD:737]K[UNIMOD:737]K[UNIMOD:737]K[UNIMOD:737]K[UNIMOD:737]K[UNIMOD:737]RK[UNIMOD:737]K[UNIMOD:737]R"/>\n+      <protein_id>ENSP00000485049.1</protein_id>\n+      <p_value>0.000e+00</p_value>\n+    </psm>\n+    <psm p:psm_id="dataset_88023_SII_9938_1_9938_3_1" p:decoy="true">\n+      <svm_score>-0.056</svm_score>\n+      <q_value>1.000e+00</q_value>\n+      <pep>1.000e+00</pep>\n+      <exp_mass>342.8710</exp_mass>\n+      <calc_mass>343.206</calc_mass>\n+      <peptide_seq n="R" c="P" seq="[UNIMOD:737]LRC[UNIMOD:4]PPR"/>\n+      <protein_id>decoy_ENSP00000263408.4</protein_id>\n+      <p_value>0.000e+00</p_value>\n+    </psm>\n+    <psm p:psm_id="dataset_88023_SII_9732_1_9732_3_1" p:decoy="true">\n+      <svm_score>-0.073</svm_score>\n+      <q_value>1.000e+00</q_value>\n+      <pep>1.000e+00</pep>\n+      <exp_mass>304.8620</exp_mass>\n+      <calc_mass>305.194</calc_mass>\n+      <peptide_seq n="R" c="P" seq="[UNIMOD:737]DALPLR"/>\n+      <protein_id>decoy_ENSP00000400713.2</protein_id>\n+      <p_value>0.000e+00</p_value>\n+    </psm>\n+    <psm p:psm_id="dataset_88023_SII_9301_1_9301_2_1" p:decoy="true">\n+      <svm_score>-0.113</svm_score>\n+      <q_value>1.000e+00</q_value>\n+      <pep>1.000e+00</pep>\n+      <exp_mass>401.7200</exp_mass>\n+      <calc_mass>402.223</calc_mass>\n+      <peptide_seq n="K" c="P" s'..b'+      <protein_id>decoy_ENSP00000487145.1</protein_id>\n+      <p_value>0.000e+00</p_value>\n+    </psm>\n+    <psm p:psm_id="dataset_88023_SII_10309_1_10309_2_1" p:decoy="true">\n+      <svm_score>-1.604</svm_score>\n+      <q_value>1.000e+00</q_value>\n+      <pep>1.000e+00</pep>\n+      <exp_mass>961.0350</exp_mass>\n+      <calc_mass>960.541</calc_mass>\n+      <peptide_seq n="R" c="Q" seq="[UNIMOD:737]ERQRLVEM[UNIMOD:35]QEK[UNIMOD:737]"/>\n+      <protein_id>decoy_ENSP00000369627.1</protein_id>\n+      <protein_id>decoy_ENSP00000369625.3</protein_id>\n+      <p_value>0.000e+00</p_value>\n+    </psm>\n+    <psm p:psm_id="dataset_88023_SII_10289_1_10289_2_1" p:decoy="true">\n+      <svm_score>-1.605</svm_score>\n+      <q_value>1.000e+00</q_value>\n+      <pep>1.000e+00</pep>\n+      <exp_mass>1008.0300</exp_mass>\n+      <calc_mass>1007.530</calc_mass>\n+      <peptide_seq n="R" c="S" seq="[UNIMOD:737]LNM[UNIMOD:35]YSEIEDALNK[UNIMOD:737]"/>\n+      <protein_id>decoy_ENSP00000473469.1</protein_id>\n+      <protein_id>decoy_ENSP00000473565.1</protein_id>\n+      <protein_id>decoy_ENSP00000369792.2</protein_id>\n+      <protein_id>decoy_ENSP00000354301.3</protein_id>\n+      <p_value>0.000e+00</p_value>\n+    </psm>\n+    <psm p:psm_id="dataset_88023_SII_10381_1_10381_2_1" p:decoy="true">\n+      <svm_score>-1.612</svm_score>\n+      <q_value>1.000e+00</q_value>\n+      <pep>1.000e+00</pep>\n+      <exp_mass>1114.6200</exp_mass>\n+      <calc_mass>1114.110</calc_mass>\n+      <peptide_seq n="R" c="-" seq="[UNIMOD:737]AAEVLEVTC[UNIMOD:4]GELIIVGVPE"/>\n+      <protein_id>decoy_ENSP00000447539.1</protein_id>\n+      <p_value>0.000e+00</p_value>\n+    </psm>\n+    <psm p:psm_id="dataset_88023_SII_10339_1_10339_2_1" p:decoy="true">\n+      <svm_score>-1.613</svm_score>\n+      <q_value>1.000e+00</q_value>\n+      <pep>1.000e+00</pep>\n+      <exp_mass>1292.6700</exp_mass>\n+      <calc_mass>1291.660</calc_mass>\n+      <peptide_seq n="K" c="C" seq="[UNIMOD:737]VTWDMC[UNIMOD:4]YLEK[UNIMOD:737]QM[UNIMOD:35]M[UNIMOD:35]K[UNIMOD:737]"/>\n+      <protein_id>decoy_ENSP00000367319.2</protein_id>\n+      <p_value>0.000e+00</p_value>\n+    </psm>\n+    <psm p:psm_id="dataset_88023_SII_10223_1_10223_2_1" p:decoy="true">\n+      <svm_score>-1.624</svm_score>\n+      <q_value>1.000e+00</q_value>\n+      <pep>1.000e+00</pep>\n+      <exp_mass>1298.7000</exp_mass>\n+      <calc_mass>1297.690</calc_mass>\n+      <peptide_seq n="R" c="S" seq="[UNIMOD:737]NQDEINPESC[UNIMOD:4]RK[UNIMOD:737]LYTLR"/>\n+      <protein_id>decoy_ENSP00000260283.4</protein_id>\n+      <protein_id>decoy_ENSP00000437905.1</protein_id>\n+      <protein_id>decoy_ENSP00000432076.1</protein_id>\n+      <protein_id>decoy_ENSP00000436319.1</protein_id>\n+      <protein_id>decoy_ENSP00000436522.1</protein_id>\n+      <protein_id>decoy_ENSP00000431399.1</protein_id>\n+      <p_value>0.000e+00</p_value>\n+    </psm>\n+    <psm p:psm_id="dataset_88023_SII_10036_1_10036_2_1" p:decoy="true">\n+      <svm_score>-1.634</svm_score>\n+      <q_value>1.000e+00</q_value>\n+      <pep>1.000e+00</pep>\n+      <exp_mass>998.5300</exp_mass>\n+      <calc_mass>997.517</calc_mass>\n+      <peptide_seq n="K" c="A" seq="[UNIMOD:737]DLDSQM[UNIMOD:35]QQQALDK[UNIMOD:737]"/>\n+      <protein_id>decoy_ENSP00000364691.4</protein_id>\n+      <protein_id>decoy_ENSP00000402626.2</protein_id>\n+      <protein_id>decoy_ENSP00000480016.1</protein_id>\n+      <protein_id>decoy_ENSP00000478281.1</protein_id>\n+      <p_value>0.000e+00</p_value>\n+    </psm>\n+    <psm p:psm_id="dataset_88023_SII_10444_1_10444_2_1" p:decoy="true">\n+      <svm_score>-1.740</svm_score>\n+      <q_value>1.000e+00</q_value>\n+      <pep>1.000e+00</pep>\n+      <exp_mass>1068.5600</exp_mass>\n+      <calc_mass>1068.550</calc_mass>\n+      <peptide_seq n="R" c="L" seq="[UNIMOD:737]ESLELIDM[UNIMOD:35]C[UNIMOD:4]RQLDLR"/>\n+      <protein_id>decoy_ENSP00000347667.3</protein_id>\n+      <protein_id>decoy_ENSP00000352608.2</protein_id>\n+      <p_value>0.000e+00</p_value>\n+    </psm>\n+  </psms>\n+\n+</percolator_output>\n'
b
diff -r 86770eea5b09 -r 7a0951d0e13e test-data/target_ds2_withperco.mzid
--- a/test-data/target_ds2_withperco.mzid Sat Mar 04 20:36:03 2017 -0500
+++ b/test-data/target_ds2_withperco.mzid Fri Mar 10 03:20:52 2017 -0500
b
@@ -151,6 +151,12 @@
                     <userParam value="4.3375416" name="StdevRelErrorAll"/>
                     <userParam value="-5.0645747" name="MeanRelErrorTop7"/>
                     <userParam value="4.3375416" name="StdevRelErrorTop7"/>
+                    <userParam name="percolator:score" value="-1.404"/>
+                    <userParam name="percolator:psm_p_value" value="0.000e+00"/>
+                    <userParam name="percolator:psm_q_value" value="1.000e+00"/>
+                    <userParam name="percolator:psm_pep" value="1.000e+00"/>
+                    <userParam name="percolator:peptide_q_value" value="1.000e+00"/>
+                    <userParam name="percolator:peptide_pep" value="1.000e+00"/>
                 </SpectrumIdentificationItem>
                 <cvParam accession="MS:1001115" cvRef="PSI-MS" value="9739" name="scan number(s)"/>
             </SpectrumIdentificationResult>
@@ -291,8 +297,8 @@
                     <userParam value="6.192429" name="StdevRelErrorAll"/>
                     <userParam value="-4.629228" name="MeanRelErrorTop7"/>
                     <userParam value="6.192429" name="StdevRelErrorTop7"/>
-                    <userParam name="percolator:score" value="-1.105"/>
-                    <userParam name="percolator:psm_p_value" value="6.287e-01"/>
+                    <userParam name="percolator:score" value="-1.147"/>
+                    <userParam name="percolator:psm_p_value" value="0.000e+00"/>
                     <userParam name="percolator:psm_q_value" value="1.000e+00"/>
                     <userParam name="percolator:psm_pep" value="1.000e+00"/>
                     <userParam name="percolator:peptide_q_value" value="1.000e+00"/>
b
diff -r 86770eea5b09 -r 7a0951d0e13e test-data/target_ds3_withperco.mzid
--- a/test-data/target_ds3_withperco.mzid Sat Mar 04 20:36:03 2017 -0500
+++ b/test-data/target_ds3_withperco.mzid Fri Mar 10 03:20:52 2017 -0500
b
@@ -125,6 +125,12 @@
                     <userParam value="9.273238" name="StdevRelErrorAll"/>
                     <userParam value="0.79569435" name="MeanRelErrorTop7"/>
                     <userParam value="9.273238" name="StdevRelErrorTop7"/>
+                    <userParam name="percolator:score" value="-0.996"/>
+                    <userParam name="percolator:psm_p_value" value="0.000e+00"/>
+                    <userParam name="percolator:psm_q_value" value="1.000e+00"/>
+                    <userParam name="percolator:psm_pep" value="1.000e+00"/>
+                    <userParam name="percolator:peptide_q_value" value="1.000e+00"/>
+                    <userParam name="percolator:peptide_pep" value="1.000e+00"/>
                 </SpectrumIdentificationItem>
                 <cvParam accession="MS:1001115" cvRef="PSI-MS" value="9576" name="scan number(s)"/>
             </SpectrumIdentificationResult>
@@ -186,6 +192,12 @@
                     <userParam value="2.0159998" name="StdevRelErrorAll"/>
                     <userParam value="-12.467069" name="MeanRelErrorTop7"/>
                     <userParam value="2.0159998" name="StdevRelErrorTop7"/>
+                    <userParam name="percolator:score" value="-1.105"/>
+                    <userParam name="percolator:psm_p_value" value="0.000e+00"/>
+                    <userParam name="percolator:psm_q_value" value="1.000e+00"/>
+                    <userParam name="percolator:psm_pep" value="1.000e+00"/>
+                    <userParam name="percolator:peptide_q_value" value="1.000e+00"/>
+                    <userParam name="percolator:peptide_pep" value="1.000e+00"/>
                 </SpectrumIdentificationItem>
                 <cvParam accession="MS:1001115" cvRef="PSI-MS" value="9624" name="scan number(s)"/>
             </SpectrumIdentificationResult>
@@ -217,6 +229,12 @@
                     <userParam value="6.908051" name="StdevRelErrorAll"/>
                     <userParam value="-10.314375" name="MeanRelErrorTop7"/>
                     <userParam value="6.908051" name="StdevRelErrorTop7"/>
+                    <userParam name="percolator:score" value="-1.122"/>
+                    <userParam name="percolator:psm_p_value" value="0.000e+00"/>
+                    <userParam name="percolator:psm_q_value" value="1.000e+00"/>
+                    <userParam name="percolator:psm_pep" value="1.000e+00"/>
+                    <userParam name="percolator:peptide_q_value" value="1.000e+00"/>
+                    <userParam name="percolator:peptide_pep" value="1.000e+00"/>
                 </SpectrumIdentificationItem>
                 <cvParam accession="MS:1001115" cvRef="PSI-MS" value="9597" name="scan number(s)"/>
             </SpectrumIdentificationResult>
@@ -266,8 +284,8 @@
                     <userParam value="0.0" name="StdevRelErrorAll"/>
                     <userParam value="7.1771297" name="MeanRelErrorTop7"/>
                     <userParam value="0.0" name="StdevRelErrorTop7"/>
-                    <userParam name="percolator:score" value="-1.307"/>
-                    <userParam name="percolator:psm_p_value" value="8.449e-01"/>
+                    <userParam name="percolator:score" value="-1.13"/>
+                    <userParam name="percolator:psm_p_value" value="0.000e+00"/>
                     <userParam name="percolator:psm_q_value" value="1.000e+00"/>
                     <userParam name="percolator:psm_pep" value="1.000e+00"/>
                     <userParam name="percolator:peptide_q_value" value="1.000e+00"/>
@@ -322,8 +340,8 @@
                     <userParam value="6.8804927" name="StdevRelErrorAll"/>
                     <userParam value="-3.5387955" name="MeanRelErrorTop7"/>
                     <userParam value="6.8804927" name="StdevRelErrorTop7"/>
-                    <userParam name="percolator:score" value="-1.42"/>
-                    <userParam name="percolator:psm_p_value" value="9.186e-01"/>
+                    <userParam name="percolator:score" value="-1.144"/>
+                    <userParam name="percolator:psm_p_value" value="0.000e+00"/>
                     <userParam name="percolator:psm_q_value" value="1.000e+00"/>
                     <userParam name="percolator:psm_pep" value="1.000e+00"/>
                     <userParam name="percolator:peptide_q_value" value="1.000e+00"/>
@@ -356,6 +374,12 @@
                     <userParam value="7.9635553" name="StdevRelErrorAll"/>
                     <userParam value="-2.0970254" name="MeanRelErrorTop7"/>
                     <userParam value="7.9635553" name="StdevRelErrorTop7"/>
+                    <userParam name="percolator:score" value="-1.153"/>
+                    <userParam name="percolator:psm_p_value" value="0.000e+00"/>
+                    <userParam name="percolator:psm_q_value" value="1.000e+00"/>
+                    <userParam name="percolator:psm_pep" value="1.000e+00"/>
+                    <userParam name="percolator:peptide_q_value" value="1.000e+00"/>
+                    <userParam name="percolator:peptide_pep" value="1.000e+00"/>
                 </SpectrumIdentificationItem>
                 <cvParam accession="MS:1001115" cvRef="PSI-MS" value="9594" name="scan number(s)"/>
             </SpectrumIdentificationResult>
@@ -384,6 +408,12 @@
                     <userParam value="1.2990792" name="StdevRelErrorAll"/>
                     <userParam value="-9.696182" name="MeanRelErrorTop7"/>
                     <userParam value="1.2990792" name="StdevRelErrorTop7"/>
+                    <userParam name="percolator:score" value="-1.202"/>
+                    <userParam name="percolator:psm_p_value" value="0.000e+00"/>
+                    <userParam name="percolator:psm_q_value" value="1.000e+00"/>
+                    <userParam name="percolator:psm_pep" value="1.000e+00"/>
+                    <userParam name="percolator:peptide_q_value" value="1.000e+00"/>
+                    <userParam name="percolator:peptide_pep" value="1.000e+00"/>
                 </SpectrumIdentificationItem>
                 <cvParam accession="MS:1001115" cvRef="PSI-MS" value="9681" name="scan number(s)"/>
             </SpectrumIdentificationResult>