changeset 1:6b5ce9e2b0d0 draft

planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/pepquery2 commit 3f50a508dbb9050be48de5685cec9a82683d8457
author galaxyp
date Sun, 02 Oct 2022 23:50:18 +0000
parents 3c45645197f6
children 3b2874c58bcd
files macros.xml pepquery2.tar.gz pepquery2.xml test-data/Uniprot.fasta test-data/iTRAQ_f4.mgf test-data/immunopeptidomics.mgf test-data/novel_peptides test-data/novel_proteins.fa
diffstat 8 files changed, 1457 insertions(+), 417 deletions(-) [+]
line wrap: on
line diff
--- a/macros.xml	Wed Sep 28 13:56:01 2022 +0000
+++ b/macros.xml	Sun Oct 02 23:50:18 2022 +0000
@@ -66,6 +66,63 @@
 #end def
     ]]></token>
 
+    <xml name="pepquerydb_options">
+                        <option value="all">all</option>
+                        <option value="w">w:global proteome</option>
+                        <option value="p">p:phosphorylation</option>
+                        <option value="a">a:acetylation</option>
+                        <option value="u">u:ubiquitination</option>
+                        <option value="g">g:glycosylation</option>
+                        <option value="Academia_Sinica_LUAD100_Phosphoproteome_PDC000220">Academia_Sinica_LUAD100_Phosphoproteome_PDC000220</option>
+                        <option value="Academia_Sinica_LUAD100_Proteome_PDC000219">Academia_Sinica_LUAD100_Proteome_PDC000219</option>
+                        <option value="CCLE_proteome_MSV000085836">CCLE_proteome_MSV000085836</option>
+                        <option value="CPTAC">CPTAC</option>
+                        <option value="CPTAC_CCRCC_Discovery_Study_Phosphoproteme_PDC000128">CPTAC_CCRCC_Discovery_Study_Phosphoproteme_PDC000128</option>
+                        <option value="CPTAC_CCRCC_Discovery_Study_Proteome_PDC000127">CPTAC_CCRCC_Discovery_Study_Proteome_PDC000127</option>
+                        <option value="CPTAC_GBM_Discovery_Study_Acetylome_PDC000245">CPTAC_GBM_Discovery_Study_Acetylome_PDC000245</option>
+                        <option value="CPTAC_GBM_Discovery_Study_Phosphoproteome_PDC000205">CPTAC_GBM_Discovery_Study_Phosphoproteome_PDC000205</option>
+                        <option value="CPTAC_GBM_Discovery_Study_Proteome_PDC000204">CPTAC_GBM_Discovery_Study_Proteome_PDC000204</option>
+                        <option value="CPTAC_HNSCC_Discovery_Study_Phosphoproteome_PDC000222">CPTAC_HNSCC_Discovery_Study_Phosphoproteome_PDC000222</option>
+                        <option value="CPTAC_HNSCC_Discovery_Study_Proteome_PDC000221">CPTAC_HNSCC_Discovery_Study_Proteome_PDC000221</option>
+                        <option value="CPTAC_LSCC_Discovery_Study_Acetylome_PDC000233">CPTAC_LSCC_Discovery_Study_Acetylome_PDC000233</option>
+                        <option value="CPTAC_LSCC_Discovery_Study_Phosphoproteome_PDC000232">CPTAC_LSCC_Discovery_Study_Phosphoproteome_PDC000232</option>
+                        <option value="CPTAC_LSCC_Discovery_Study_Proteome_PDC000234">CPTAC_LSCC_Discovery_Study_Proteome_PDC000234</option>
+                        <option value="CPTAC_LSCC_Discovery_Study_Ubiquitylome_PDC000237">CPTAC_LSCC_Discovery_Study_Ubiquitylome_PDC000237</option>
+                        <option value="CPTAC_LUAD_Discovery_Study_Acetylome_PDC000224">CPTAC_LUAD_Discovery_Study_Acetylome_PDC000224</option>
+                        <option value="CPTAC_LUAD_Discovery_Study_Phosphoproteome_PDC000149">CPTAC_LUAD_Discovery_Study_Phosphoproteome_PDC000149</option>
+                        <option value="CPTAC_LUAD_Discovery_Study_Proteome_PDC000153">CPTAC_LUAD_Discovery_Study_Proteome_PDC000153</option>
+                        <option value="CPTAC_PDA_Discovery_Study_Phosphoproteome_PDC000271">CPTAC_PDA_Discovery_Study_Phosphoproteome_PDC000271</option>
+                        <option value="CPTAC_PDA_Discovery_Study_Proteome_PDC000270">CPTAC_PDA_Discovery_Study_Proteome_PDC000270</option>
+                        <option value="CPTAC_Pediatric_Brain_Cancer_Pilot_Study_Phosphoproteome_PDC000176">CPTAC_Pediatric_Brain_Cancer_Pilot_Study_Phosphoproteome_PDC000176</option>
+                        <option value="CPTAC_Pediatric_Brain_Cancer_Pilot_Study_Proteome_PDC000180">CPTAC_Pediatric_Brain_Cancer_Pilot_Study_Proteome_PDC000180</option>
+                        <option value="CPTAC_Prospective_Breast_BI_Acetylome_PDC000239">CPTAC_Prospective_Breast_BI_Acetylome_PDC000239</option>
+                        <option value="CPTAC_Prospective_Breast_BI_Phosphoproteome_PDC000121">CPTAC_Prospective_Breast_BI_Phosphoproteome_PDC000121</option>
+                        <option value="CPTAC_Prospective_Breast_BI_Proteome_PDC000120">CPTAC_Prospective_Breast_BI_Proteome_PDC000120</option>
+                        <option value="CPTAC_Prospective_Colon_PNNL_Phosphoproteome_PDC000117">CPTAC_Prospective_Colon_PNNL_Phosphoproteome_PDC000117</option>
+                        <option value="CPTAC_Prospective_Colon_PNNL_Proteome_PDC000116">CPTAC_Prospective_Colon_PNNL_Proteome_PDC000116</option>
+                        <option value="CPTAC_Prospective_Colon_VU_Proteome_PDC000109">CPTAC_Prospective_Colon_VU_Proteome_PDC000109</option>
+                        <option value="CPTAC_Prospective_Ovarian_JHU_Glycoproteome_PDC000251">CPTAC_Prospective_Ovarian_JHU_Glycoproteome_PDC000251</option>
+                        <option value="CPTAC_Prospective_Ovarian_JHU_Proteome_PDC000110">CPTAC_Prospective_Ovarian_JHU_Proteome_PDC000110</option>
+                        <option value="CPTAC_Prospective_Ovarian_PNNL_Phosphoproteome_PDC000119">CPTAC_Prospective_Ovarian_PNNL_Phosphoproteome_PDC000119</option>
+                        <option value="CPTAC_Prospective_Ovarian_PNNL_Proteome_Qeplus_PDC000118">CPTAC_Prospective_Ovarian_PNNL_Proteome_Qeplus_PDC000118</option>
+                        <option value="CPTAC_TCGA_Breast_Cancer_Phosphoproteome_PDC000174">CPTAC_TCGA_Breast_Cancer_Phosphoproteome_PDC000174</option>
+                        <option value="CPTAC_TCGA_Breast_Cancer_Proteome_PDC000173">CPTAC_TCGA_Breast_Cancer_Proteome_PDC000173</option>
+                        <option value="CPTAC_TCGA_Colon_Cancer_Proteome_PDC000111">CPTAC_TCGA_Colon_Cancer_Proteome_PDC000111</option>
+                        <option value="CPTAC_TCGA_Ovarian_Glycoproteome_PDC000112">CPTAC_TCGA_Ovarian_Glycoproteome_PDC000112</option>
+                        <option value="CPTAC_TCGA_Ovarian_Phosphoproteome_PDC000115">CPTAC_TCGA_Ovarian_Phosphoproteome_PDC000115</option>
+                        <option value="CPTAC_TCGA_Ovarian_Proteome_PDC000113_PDC000114">CPTAC_TCGA_Ovarian_Proteome_PDC000113_PDC000114</option>
+                        <option value="CPTAC_UCEC_Discovery_Study_Acetylome_PDC000226">CPTAC_UCEC_Discovery_Study_Acetylome_PDC000226</option>
+                        <option value="CPTAC_UCEC_Discovery_Study_Phosphoproteome_PDC000126">CPTAC_UCEC_Discovery_Study_Phosphoproteome_PDC000126</option>
+                        <option value="CPTAC_UCEC_Discovery_Study_Proteome_PDC000125">CPTAC_UCEC_Discovery_Study_Proteome_PDC000125</option>
+                        <option value="Deep_29_healthy_human_tissues_PXD010154">Deep_29_healthy_human_tissues_PXD010154</option>
+                        <option value="GTEx_32_Tissues_Proteome_PXD016999">GTEx_32_Tissues_Proteome_PXD016999</option>
+                        <option value="HBV_Related_Hepatocellular_Carcinoma_Phosphoproteome_PDC000199">HBV_Related_Hepatocellular_Carcinoma_Phosphoproteome_PDC000199</option>
+                        <option value="HBV_Related_Hepatocellular_Carcinoma_Proteome_PDC000198">HBV_Related_Hepatocellular_Carcinoma_Proteome_PDC000198</option>
+                        <option value="Oral_Squamous_Cell_Carcinoma_Study_Proteome_PDC000262">Oral_Squamous_Cell_Carcinoma_Study_Proteome_PDC000262</option>
+                        <option value="Proteogenomics_of_Gastric_Cancer_Glycoproteome_PDC000216">Proteogenomics_of_Gastric_Cancer_Glycoproteome_PDC000216</option>
+                        <option value="Proteogenomics_of_Gastric_Cancer_Phosphoproteome_PDC000215">Proteogenomics_of_Gastric_Cancer_Phosphoproteome_PDC000215</option>
+                        <option value="Proteogenomics_of_Gastric_Cancer_Proteome_PDC000214">Proteogenomics_of_Gastric_Cancer_Proteome_PDC000214</option>
+    </xml>
 
     <xml name="modifications">
         <option value="0">0: NO Modifications</option>
Binary file pepquery2.tar.gz has changed
--- a/pepquery2.xml	Wed Sep 28 13:56:01 2022 +0000
+++ b/pepquery2.xml	Sun Oct 02 23:50:18 2022 +0000
@@ -135,6 +135,9 @@
   $fast
   -o pepquery_output
   | sed 's/No valid peptide/Error: No valid peptide/' | tee >(cat 1>&2)
+#set $flist = str($outputs_selected).replace(',',' ') 
+&& for i in $flist; do for f in `find pepquery_output/*/* -name \$i`; do cat \$f >> pepquery_output/\${i}; done; done
+&& for f in `find pepquery_output/*/ -name parameter.txt`; do cp \$f pepquery_output/parameter.txt; done 
         ]]>
     </command>
     <inputs>
@@ -253,61 +256,9 @@
                 </when>
                 <when value="PepQueryDB">
                     <param name="dataset" argument="-b" type="text" value="" label="PepQueryDB dataset">
-                        <option value="all">all</option>
-                        <option value="w">w:global proteome</option>
-                        <option value="p">p:phosphorylation</option>
-                        <option value="a">a:acetylation</option>
-                        <option value="u">u:ubiquitination</option>
-                        <option value="g">g:glycosylation</option>
-                        <option value="Academia_Sinica_LUAD100_Phosphoproteome_PDC000220">Academia_Sinica_LUAD100_Phosphoproteome_PDC000220</option>
-                        <option value="Academia_Sinica_LUAD100_Proteome_PDC000219">Academia_Sinica_LUAD100_Proteome_PDC000219</option>
-                        <option value="CCLE_proteome_MSV000085836">CCLE_proteome_MSV000085836</option>
-                        <option value="CPTAC">CPTAC</option>
-                        <option value="CPTAC_CCRCC_Discovery_Study_Phosphoproteme_PDC000128">CPTAC_CCRCC_Discovery_Study_Phosphoproteme_PDC000128</option>
-                        <option value="CPTAC_CCRCC_Discovery_Study_Proteome_PDC000127">CPTAC_CCRCC_Discovery_Study_Proteome_PDC000127</option>
-                        <option value="CPTAC_GBM_Discovery_Study_Acetylome_PDC000245">CPTAC_GBM_Discovery_Study_Acetylome_PDC000245</option>
-                        <option value="CPTAC_GBM_Discovery_Study_Phosphoproteome_PDC000205">CPTAC_GBM_Discovery_Study_Phosphoproteome_PDC000205</option>
-                        <option value="CPTAC_GBM_Discovery_Study_Proteome_PDC000204">CPTAC_GBM_Discovery_Study_Proteome_PDC000204</option>
-                        <option value="CPTAC_HNSCC_Discovery_Study_Phosphoproteome_PDC000222">CPTAC_HNSCC_Discovery_Study_Phosphoproteome_PDC000222</option>
-                        <option value="CPTAC_HNSCC_Discovery_Study_Proteome_PDC000221">CPTAC_HNSCC_Discovery_Study_Proteome_PDC000221</option>
-                        <option value="CPTAC_LSCC_Discovery_Study_Acetylome_PDC000233">CPTAC_LSCC_Discovery_Study_Acetylome_PDC000233</option>
-                        <option value="CPTAC_LSCC_Discovery_Study_Phosphoproteome_PDC000232">CPTAC_LSCC_Discovery_Study_Phosphoproteome_PDC000232</option>
-                        <option value="CPTAC_LSCC_Discovery_Study_Proteome_PDC000234">CPTAC_LSCC_Discovery_Study_Proteome_PDC000234</option>
-                        <option value="CPTAC_LSCC_Discovery_Study_Ubiquitylome_PDC000237">CPTAC_LSCC_Discovery_Study_Ubiquitylome_PDC000237</option>
-                        <option value="CPTAC_LUAD_Discovery_Study_Acetylome_PDC000224">CPTAC_LUAD_Discovery_Study_Acetylome_PDC000224</option>
-                        <option value="CPTAC_LUAD_Discovery_Study_Phosphoproteome_PDC000149">CPTAC_LUAD_Discovery_Study_Phosphoproteome_PDC000149</option>
-                        <option value="CPTAC_LUAD_Discovery_Study_Proteome_PDC000153">CPTAC_LUAD_Discovery_Study_Proteome_PDC000153</option>
-                        <option value="CPTAC_PDA_Discovery_Study_Phosphoproteome_PDC000271">CPTAC_PDA_Discovery_Study_Phosphoproteome_PDC000271</option>
-                        <option value="CPTAC_PDA_Discovery_Study_Proteome_PDC000270">CPTAC_PDA_Discovery_Study_Proteome_PDC000270</option>
-                        <option value="CPTAC_Pediatric_Brain_Cancer_Pilot_Study_Phosphoproteome_PDC000176">CPTAC_Pediatric_Brain_Cancer_Pilot_Study_Phosphoproteome_PDC000176</option>
-                        <option value="CPTAC_Pediatric_Brain_Cancer_Pilot_Study_Proteome_PDC000180">CPTAC_Pediatric_Brain_Cancer_Pilot_Study_Proteome_PDC000180</option>
-                        <option value="CPTAC_Prospective_Breast_BI_Acetylome_PDC000239">CPTAC_Prospective_Breast_BI_Acetylome_PDC000239</option>
-                        <option value="CPTAC_Prospective_Breast_BI_Phosphoproteome_PDC000121">CPTAC_Prospective_Breast_BI_Phosphoproteome_PDC000121</option>
-                        <option value="CPTAC_Prospective_Breast_BI_Proteome_PDC000120">CPTAC_Prospective_Breast_BI_Proteome_PDC000120</option>
-                        <option value="CPTAC_Prospective_Colon_PNNL_Phosphoproteome_PDC000117">CPTAC_Prospective_Colon_PNNL_Phosphoproteome_PDC000117</option>
-                        <option value="CPTAC_Prospective_Colon_PNNL_Proteome_PDC000116">CPTAC_Prospective_Colon_PNNL_Proteome_PDC000116</option>
-                        <option value="CPTAC_Prospective_Colon_VU_Proteome_PDC000109">CPTAC_Prospective_Colon_VU_Proteome_PDC000109</option>
-                        <option value="CPTAC_Prospective_Ovarian_JHU_Glycoproteome_PDC000251">CPTAC_Prospective_Ovarian_JHU_Glycoproteome_PDC000251</option>
-                        <option value="CPTAC_Prospective_Ovarian_JHU_Proteome_PDC000110">CPTAC_Prospective_Ovarian_JHU_Proteome_PDC000110</option>
-                        <option value="CPTAC_Prospective_Ovarian_PNNL_Phosphoproteome_PDC000119">CPTAC_Prospective_Ovarian_PNNL_Phosphoproteome_PDC000119</option>
-                        <option value="CPTAC_Prospective_Ovarian_PNNL_Proteome_Qeplus_PDC000118">CPTAC_Prospective_Ovarian_PNNL_Proteome_Qeplus_PDC000118</option>
-                        <option value="CPTAC_TCGA_Breast_Cancer_Phosphoproteome_PDC000174">CPTAC_TCGA_Breast_Cancer_Phosphoproteome_PDC000174</option>
-                        <option value="CPTAC_TCGA_Breast_Cancer_Proteome_PDC000173">CPTAC_TCGA_Breast_Cancer_Proteome_PDC000173</option>
-                        <option value="CPTAC_TCGA_Colon_Cancer_Proteome_PDC000111">CPTAC_TCGA_Colon_Cancer_Proteome_PDC000111</option>
-                        <option value="CPTAC_TCGA_Ovarian_Glycoproteome_PDC000112">CPTAC_TCGA_Ovarian_Glycoproteome_PDC000112</option>
-                        <option value="CPTAC_TCGA_Ovarian_Phosphoproteome_PDC000115">CPTAC_TCGA_Ovarian_Phosphoproteome_PDC000115</option>
-                        <option value="CPTAC_TCGA_Ovarian_Proteome_PDC000113_PDC000114">CPTAC_TCGA_Ovarian_Proteome_PDC000113_PDC000114</option>
-                        <option value="CPTAC_UCEC_Discovery_Study_Acetylome_PDC000226">CPTAC_UCEC_Discovery_Study_Acetylome_PDC000226</option>
-                        <option value="CPTAC_UCEC_Discovery_Study_Phosphoproteome_PDC000126">CPTAC_UCEC_Discovery_Study_Phosphoproteome_PDC000126</option>
-                        <option value="CPTAC_UCEC_Discovery_Study_Proteome_PDC000125">CPTAC_UCEC_Discovery_Study_Proteome_PDC000125</option>
-                        <option value="Deep_29_healthy_human_tissues_PXD010154">Deep_29_healthy_human_tissues_PXD010154</option>
-                        <option value="GTEx_32_Tissues_Proteome_PXD016999">GTEx_32_Tissues_Proteome_PXD016999</option>
-                        <option value="HBV_Related_Hepatocellular_Carcinoma_Phosphoproteome_PDC000199">HBV_Related_Hepatocellular_Carcinoma_Phosphoproteome_PDC000199</option>
-                        <option value="HBV_Related_Hepatocellular_Carcinoma_Proteome_PDC000198">HBV_Related_Hepatocellular_Carcinoma_Proteome_PDC000198</option>
-                        <option value="Oral_Squamous_Cell_Carcinoma_Study_Proteome_PDC000262">Oral_Squamous_Cell_Carcinoma_Study_Proteome_PDC000262</option>
-                        <option value="Proteogenomics_of_Gastric_Cancer_Glycoproteome_PDC000216">Proteogenomics_of_Gastric_Cancer_Glycoproteome_PDC000216</option>
-                        <option value="Proteogenomics_of_Gastric_Cancer_Phosphoproteome_PDC000215">Proteogenomics_of_Gastric_Cancer_Phosphoproteome_PDC000215</option>
-                        <option value="Proteogenomics_of_Gastric_Cancer_Proteome_PDC000214">Proteogenomics_of_Gastric_Cancer_Proteome_PDC000214</option>
+                        <help>PepQueryDB dataset IDs (separated by commas).</help>
+                        <expand macro="pepquerydb_options" />
+                        <validator type="regex" message="PepQueryDB dataset_name(,dataset_name)">^[a-zA-Z][^,]*(,[a-zA-Z][^,]*)*$</validator>
                     </param>
                 </when>
                 <when value="public">
@@ -323,31 +274,19 @@
             </param>
         </section>
 
-                    <param name="parameter_set" argument="-p" type="text" value="" optional="true" label="MS/MS searching parameter set name">
-                        <help>Currently supported set names start with: MS1 or TMT</help>
-                        <option value="MS1_H_MS2_H_LF">MS1_H_MS2_H_LF</option>
-                        <option value="MS1_H_MS2_L_LF">MS1_H_MS2_L_LF</option>
-                        <option value="TMT10_11">TMT10_11</option>
-                        <option value="TMT10_11_MS2_L">TMT10_11_MS2_L</option>
-                        <option value="TMT10_11_MS2_L_phosphorylation">TMT10_11_MS2_L_phosphorylation</option>
-                        <option value="TMT10_11_acetylation">TMT10_11_acetylation</option>
-                        <option value="TMT10_11_glycosylation">TMT10_11_glycosylation</option>
-                        <option value="TMT10_11_phosphorylation">TMT10_11_phosphorylation</option>
-                        <option value="TMT10_11_ubiquitination">TMT10_11_ubiquitination</option>
-                    </param>
+        <param name="parameter_set" argument="-p" type="text" value="" optional="true" label="MS/MS searching parameter set name">
+            <help>Currently supported set names start with: MS1 or TMT</help>
+            <option value="MS1_H_MS2_H_LF">MS1_H_MS2_H_LF</option>
+            <option value="MS1_H_MS2_L_LF">MS1_H_MS2_L_LF</option>
+            <option value="TMT10_11">TMT10_11</option>
+            <option value="TMT10_11_MS2_L">TMT10_11_MS2_L</option>
+            <option value="TMT10_11_MS2_L_phosphorylation">TMT10_11_MS2_L_phosphorylation</option>
+            <option value="TMT10_11_acetylation">TMT10_11_acetylation</option>
+            <option value="TMT10_11_glycosylation">TMT10_11_glycosylation</option>
+            <option value="TMT10_11_phosphorylation">TMT10_11_phosphorylation</option>
+            <option value="TMT10_11_ubiquitination">TMT10_11_ubiquitination</option>
+        </param>
 
-<!--
-TMT10_11_MS2_L_phosphorylation
-	Fixed modification: 1,11,12 = Carbamidomethylation of C,TMT 10-plex of K,TMT 10-plex of peptide N-term
-	Variable modification: 2,7,8,9 = Oxidation of M,Phosphorylation of S,Phosphorylation of T,Phosphorylation of Y
-	Enzyme: 1
-	Max Missed cleavages: 1
-	Precursor mass tolerance: 20.0
-	Precursor ion mass tolerance unit: ppm
-	Fragment ion mass tolerance: 0.6
-	Fragment ion mass tolerance unit: Da
--->
-        
         <section name="modifications" title="Modifications" expanded="false">
              <param name="fixed_mod" argument="-fixMod" type="select" label="Fixed modification(s)" multiple="true" optional="true">
                 <help>default: 1: Carbamidomethylation of C [57.02146372057]</help>
@@ -384,7 +323,7 @@
                     <option value="ppm" selected="true">ppm</option>
                     <option value="Da">Da</option>
                 </param>
-                <param name="tolerance" argument="-itol" type="float" value="0.6" optional="true" label="Tolerance" help="Error window for MS/MS fragment ion mass values in Da unit.  Default: 0.6 Da" />
+                <param name="tolerance" argument="-itol" type="float" value="" optional="true" label="Tolerance" help="Error window for MS/MS fragment ion mass values in Da unit.  Default: 0.6 Da" />
             </section>
 
             <section name="search" title="PSM" expanded="false">
@@ -398,7 +337,7 @@
                 </param>
                 <param name="extra_score_validation" argument="-x" type="boolean" truevalue="-x" falsevalue="" checked="false" label="Add extra score validation" help="use two scoring algorithms for peptide identification" />
                 <param name="min_charge" argument="-minCharge" type="integer" value="" optional="true" label="Minimum Charge" help="The minimum charge to consider if the charge state is not available.  Default: 2"/>
-                <param name="max_charge" argument="-maxCharge" type="integer" value="" optional="true" label="Maximum Charge" help="The maximum charge to consider if the charge state is not available.  Default: 2" />
+                <param name="max_charge" argument="-maxCharge" type="integer" value="" optional="true" label="Maximum Charge" help="The maximum charge to consider if the charge state is not available.  Default: 3" />
                 <param name="min_peaks" argument="-minPeaks" type="integer" value="" optional="true" label="Minimum Peaks" help="Min peaks in spectrum. Default: 10" />
                 <param name="isotope_error" argument="-ti" type="text" value="" optional="true" label="Isotope peak error range">
                     <help>A comma-sepated range of integers from -2 to 2, e.g. '-1,0,1,2'  Default: 0</help>
@@ -412,7 +351,6 @@
         </section>
 
         <param name="outputs_selected" type="select" multiple="true" optional="false" label="Select outputs">
-            <option value="parameter.txt" selected="true">parameter.txt</option>
             <option value="psm.txt" selected="true">psm.txt</option>
             <option value="psm_rank.txt" selected="true">psm_rank.txt</option>
             <option value="psm_rank.mgf" selected="true">psm_rank.mgf</option>
@@ -427,13 +365,11 @@
         <param name="fast" argument="-fast" type="boolean" truevalue="-fast" falsevalue="" checked="false" label="Use fast mode for searching" help="In fast mode, only one better match from reference peptide-based competitive filtering steps will be returned. A peptide identified or not is not affected by this setting. For most applications, fast mode will speed up the analysis." />
     </inputs>
     <outputs>
+        <data name="parameter_txt" format="txt" from_work_dir="pepquery_output/parameter.txt" label="${tool.name} on ${on_string}: parameter.txt">
+        </data> 
         <data name="ms_index" format="txt" label="${tool.name} on ${on_string}: index summary.txt" from_work_dir="index_dir/summary.txt">
             <filter>'ms_index' in outputs_selected and req_inputs['ms_dataset']['ms_dataset_type'] == 'history'</filter>
         </data> 
-        <data name="parameter_txt" format="txt" from_work_dir="pepquery_output/parameter.txt" label="${tool.name} on ${on_string}: parameter.txt">
-            <filter>'parameter.txt' in outputs_selected</filter>
-        </data> 
-
         <data name="psm_txt" format="tabular" from_work_dir="pepquery_output/psm.txt" label="${tool.name} on ${on_string}: psm.txt">
             <filter>'psm.txt' in outputs_selected</filter>
             <actions>
@@ -492,9 +428,74 @@
 
     </outputs>
     <tests>
-        <!-- Test-1 -->
-<!--
+        <!-- Test-1  PepQueryDB peptide gencode:human -->
         <test>
+            <conditional name="validation">
+                <param name="task_type" value="novel"/>
+            </conditional>
+            <section name="req_inputs">
+                <conditional name="input_type">
+                    <param name="input_type_selector" value="peptide"/>
+                    <conditional name="multiple">
+                        <param name="peptide_input_selector" value="single" />
+                        <param name="input" value="LVVVGADGVGK"/>
+                    </conditional>
+                </conditional>
+                <conditional name="db_type">
+                    <param name="db_type_selector" value="download" />
+                    <param name="db_id" value="gencode:human"/>
+                </conditional>
+                <conditional name="ms_dataset">
+                    <param name="ms_dataset_type" value="PepQueryDB"/>
+                    <param name="dataset" value="CPTAC_LUAD_Discovery_Study_Proteome_PDC000153" />
+                </conditional>
+                <param name="indexType" value="1"/>
+            </section>
+            <param name="parameter_set" value=""/>
+            <section name="modifications">
+                 <param name="fixed_mod" value="1"/>
+                 <param name="var_mod" value="2"/>
+                 <param name="max_mods" value="3"/>
+                 <param name="unmodified" value="True"/>
+                 <param name="aa" value="False"/>
+            </section>
+            <section name="digestion">
+                <param name="enzyme" value="1"/>
+                <param name="max_missed_cleavages" value="2"/>
+            </section>
+            <section name="ms_params">
+                <section name="tolerance_params">
+                    <param name="precursor_tolerance" value="10"/>
+                    <param name="precursor_unit" value="ppm"/>
+                    <param name="tolerance" value="0.6"/>
+                </section>
+                <section name="search">
+                    <param name="frag_method" value="1"/>
+                    <param name="scoring_method" value="1"/>
+                    <param name="extra_score_validation" value="False"/>
+                    <param name="min_charge" value="2"/>
+                    <param name="max_charge" value="3"/>
+                    <param name="min_peaks" value="10"/>
+                    <param name="isotope_error" value="0"/>
+                    <param name="min_score" value="12"/>
+                    <param name="min_length" value="7"/>
+                    <param name="max_length" value="45"/>
+                    <param name="num_random_peptides" value="1000"/>
+                </section>
+            </section>
+            <output name="psm_txt">
+                <assert_contents>
+                    <has_text text="LVVVGADGVGK" />
+                    <has_text text="02CPTAC_LUAD_W_BI_20180518_KR_f15:25149:2" />
+                </assert_contents>
+            </output>
+        </test>
+
+        <!-- Test-2  MGF peptide Uniprot.fasta -->
+        <test>
+            <conditional name="validation">
+                <param name="task_type" value="novel"/>
+            </conditional>
             <section name="req_inputs">
                 <conditional name="input_type">
                     <param name="input_type_selector" value="peptide"/>
@@ -503,170 +504,30 @@
                         <param name="input" value="ELGSSDLTAR"/>
                     </conditional>
                 </conditional>
-                <param name="db_file" ftype="fasta" value="Uniprot.fasta"/>
-                <param name="spectrum_file" ftype="mgf" value="iTRAQ_f4.mgf"/>
-            </section> 
-            <section name="modifications">
-                 <param name="fixed_mod" value="6,103,157"/>
-                 <param name="var_mod" value="117"/>
-                 <param name="max_mods" value="3"/>
-                 <param name="unmodified" value="False"/>
-                 <param name="aa" value="True"/>
+                <conditional name="db_type">
+                    <param name="db_type_selector" value="history" />
+                    <param name="db_file" ftype="fasta" value="Uniprot.fasta"/>
+                </conditional>
+                <conditional name="ms_dataset">
+                    <param name="ms_dataset_type" value="history"/>
+                    <param name="spectrum_files" ftype="mgf" value="iTRAQ_f4.mgf"/>
+                </conditional>
+                <param name="indexType" value="1"/>
             </section>
-            <section name="ms_params">
-                <section name="tolerance_params">
-                    <param name="precursor_tolerance" value="10"/>
-                    <param name="precursor_unit" value="ppm"/>
-                    <param name="tolerance" value="0.6"/>
-                </section>
-                <section name="digestion">
-                    <param name="enzyme" value="0"/>
-                    <param name="max_missed_cleavages" value="2"/>
-                </section>
-                <section name="search">
-                    <param name="frag_method" value="1"/>
-                    <param name="scoring_method" value="1"/>
-                    <param name="max_charge" value="3"/>
-                    <param name="min_charge" value="2"/>
-                    <param name="min_peaks" value="10"/>
-                    <param name="min_score" value="12"/>
-                    <param name="max_length" value="45"/>
-                    <param name="num_random_peptides" value="1000"/>
-                </section>
-            </section>
-            <output name="psm_rank_txt">
-                <assert_contents>
-                    <has_text text="ELGSSDLTAR" />
-                    <has_line_matching expression="ELGSSDLTAR\tiTRAQ 4-plex of peptide N-term@0\S+\t2\tiTRAQ_f4.mgf\t2\t2\t1191.6\d+\t2.0\d+\t1191.62\d+\t596.81\d+\t18.68\d+\t0\t20\t5\t995\t0.006\d+\t1"/>
-                </assert_contents>
-            </output>
-        </test>
--->
-
-        <!-- Test-2 -->
-<!--
-        <test>
-            <section name="req_inputs">
-                <conditional name="input_type">
-                    <param name="input_type_selector" value="peptide"/>
-                    <conditional name="multiple">
-                        <param name="peptide_input_selector" value="multiple" />
-                        <param name="input" ftype="tabular" value="novel_peptides"/>
-                    </conditional>
-                </conditional>
-                <param name="db_file" ftype="fasta" value="Uniprot.fasta"/>
-                <param name="spectrum_file" ftype="mgf" value="iTRAQ_f4.mgf"/>
-            </section> 
+            <param name="parameter_set" value=""/>
             <section name="modifications">
-                 <param name="fixed_mod" value="6,103,157"/>
-                 <param name="var_mod" value="117"/>
-                 <param name="max_mods" value="3"/>
-                 <param name="unmodified" value="False"/>
-                 <param name="aa" value="True"/>
-            </section>
-            <section name="ms_params">
-                <section name="tolerance_params">
-                    <param name="precursor_tolerance" value="10"/>
-                    <param name="precursor_unit" value="ppm"/>
-                    <param name="tolerance" value="0.6"/>
-                </section>
-                <section name="digestion">
-                    <param name="enzyme" value="0"/>
-                    <param name="max_missed_cleavages" value="2"/>
-                </section>
-                <section name="search">
-                    <param name="frag_method" value="1"/>
-                    <param name="scoring_method" value="1"/>
-                    <param name="max_charge" value="3"/>
-                    <param name="min_charge" value="2"/>
-                    <param name="min_peaks" value="10"/>
-                    <param name="min_score" value="12"/>
-                    <param name="max_length" value="45"/>
-                    <param name="num_random_peptides" value="1000"/>
-                </section>
-            </section>
-            <output name="psm_rank_txt">
-                <assert_contents>
-                    <has_text text="ELGSSDLTAR" />
-                    <has_text text="SPYREFTDHLVK" />
-                    <has_line_matching expression="SPYREFTDHLVK\tiTRAQ 4-plex of K@12\S+;iTRAQ 4-plex of peptide N-term@0\S+\t1\tiTRAQ_f4.mgf\t4\t3\t1778.\d+\t3.02\d+\t1778.95\d+\t593.99\d+\t12.17\d+\t2\t14\t-1\t-1\t100.0\t1"/>
-                </assert_contents>
-            </output>
-        </test>
--->
-
-        <!-- Test-3 -->
-<!--
-        <test>
-            <section name="req_inputs">
-                <conditional name="input_type">
-                    <param name="input_type_selector" value="peptide"/>
-                    <conditional name="multiple">
-                        <param name="peptide_input_selector" value="multiple" />
-                        <param name="input" ftype="tabular" value="novel_peptides"/>
-                    </conditional>
-                </conditional>
-                <param name="db_file" ftype="fasta" value="Uniprot.fasta"/>
-                <param name="spectrum_file" ftype="mgf" value="iTRAQ_f4.mgf"/>
-            </section> 
-            <section name="modifications">
-                 <param name="fixed_mod" value="6,103,157"/>
-                 <param name="var_mod" value="117"/>
+                 <!-- 21: iTRAQ 4-plex of K [144.1020624208] -->
+                 <!-- 22: iTRAQ 4-plex of peptide N-term [144.1020624208] -->
+                 <param name="fixed_mod" value="1,21,22"/>
+                 <!-- 2: Oxidation of M [15.99491461956] -->
+                 <param name="var_mod" value="2"/>
                  <param name="max_mods" value="3"/>
                  <param name="unmodified" value="True"/>
-                 <param name="aa" value="True"/>
-            </section>
-            <section name="ms_params">
-                <section name="tolerance_params">
-                    <param name="precursor_tolerance" value="10"/>
-                    <param name="precursor_unit" value="ppm"/>
-                    <param name="tolerance" value="0.6"/>
-                </section>
-                <section name="digestion">
-                    <param name="enzyme" value="0"/>
-                    <param name="max_missed_cleavages" value="1"/>
-                </section>
-                <section name="search">
-                    <param name="frag_method" value="1"/>
-                    <param name="scoring_method" value="1"/>
-                    <param name="max_charge" value="3"/>
-                    <param name="min_charge" value="2"/>
-                    <param name="min_peaks" value="7"/>
-                    <param name="min_score" value="10"/>
-                    <param name="max_length" value="45"/>
-                    <param name="num_random_peptides" value="1000"/>
-                </section>
+                 <param name="aa" value="False"/>
             </section>
-            <output name="psm_rank_txt">
-                <assert_contents>
-                    <has_text text="ELGSSDLTAR" />
-                    <has_text text="SPYREFTDHLVK" />
-                    <has_line_matching expression="ELGSSDLTAR\tiTRAQ 4-plex of peptide N-term@0\S+\t2\t3\t2\t1191.6\d+\t-3.04\d+\t1191.62\d+\t596.8\d+\t24.18\d+\t0\t22\t1\t995\t0.002\d+\t1\t0\tYes" />
-                </assert_contents>
-            </output>
-        </test>
--->
-
-        <!-- Test-4 -->
-<!--
-        <test>
-            <section name="req_inputs">
-                <conditional name="input_type">
-                    <param name="input_type_selector" value="1"/>
-                    <conditional name="multiple">
-                        <param name="protein_input_selector" value="multiple" />
-                        <param name="input" ftype="fasta" value="novel_proteins.fa"/>
-                    </conditional>
-                </conditional>
-                <param name="db_file" ftype="fasta" value="Uniprot.fasta"/>
-                <param name="spectrum_file" ftype="mgf" value="iTRAQ_f4.mgf"/>
-            </section> 
-            <section name="modifications">
-                 <param name="fixed_mod" value="6,103,157"/>
-                 <param name="var_mod" value="117"/>
-                 <param name="max_mods" value="3"/>
-                 <param name="unmodified" value="False"/>
-                 <param name="aa" value="True"/>
+            <section name="digestion">
+                <param name="enzyme" value="1"/>
+                <param name="max_missed_cleavages" value="2"/>
             </section>
             <section name="ms_params">
                 <section name="tolerance_params">
@@ -674,193 +535,36 @@
                     <param name="precursor_unit" value="ppm"/>
                     <param name="tolerance" value="0.6"/>
                 </section>
-                <section name="digestion">
-                    <param name="enzyme" value="0"/>
-                    <param name="max_missed_cleavages" value="2"/>
-                </section>
                 <section name="search">
                     <param name="frag_method" value="1"/>
                     <param name="scoring_method" value="1"/>
-                    <param name="max_charge" value="3"/>
+                    <param name="extra_score_validation" value="False"/>
                     <param name="min_charge" value="2"/>
+                    <param name="max_charge" value="3"/>
                     <param name="min_peaks" value="10"/>
+                    <param name="isotope_error" value="0"/>
                     <param name="min_score" value="12"/>
+                    <param name="min_length" value="7"/>
                     <param name="max_length" value="45"/>
                     <param name="num_random_peptides" value="1000"/>
                 </section>
             </section>
-            <output name="psm_rank_txt">
-                <assert_contents>
-                    <has_text text="ELGSSDLTAR" />
-                    <has_text text="SPYREFTDHLVK" />
-                </assert_contents>
-            </output>
-        </test>
--->
-
-        <!-- Test-5 -->
-<!--
-        <test>
-            <section name="req_inputs">
-                <conditional name="input_type">
-                    <param name="input_type_selector" value="2"/>
-                    <param name="input" value="gaactgggcagcagcgatctgaccgcgcgcagcccgtatcgcgaatttaccgatcatctggtgaaa"/>
-                </conditional>
-                <param name="db_file" ftype="fasta" value="Uniprot.fasta"/>
-                <param name="spectrum_file" ftype="mgf" value="iTRAQ_f4.mgf"/>
-            </section> 
-            <section name="modifications">
-                 <param name="fixed_mod" value="6,103,157"/>
-                 <param name="var_mod" value="117"/>
-                 <param name="max_mods" value="3"/>
-                 <param name="unmodified" value="False"/>
-                 <param name="aa" value="True"/>
-            </section>
-            <section name="ms_params">
-                <section name="tolerance_params">
-                    <param name="precursor_tolerance" value="10"/>
-                    <param name="precursor_unit" value="ppm"/>
-                    <param name="tolerance" value="0.6"/>
-                </section>
-                <section name="digestion">
-                    <param name="enzyme" value="0"/>
-                    <param name="max_missed_cleavages" value="2"/>
-                </section>
-                <section name="search">
-                    <param name="frag_method" value="1"/>
-                    <param name="scoring_method" value="1"/>
-                    <param name="max_charge" value="3"/>
-                    <param name="min_charge" value="2"/>
-                    <param name="min_peaks" value="10"/>
-                    <param name="min_score" value="12"/>
-                    <param name="max_length" value="45"/>
-                    <param name="num_random_peptides" value="1000"/>
-                </section>
-            </section>
-            <output name="psm_rank_txt">
+            <output name="psm_txt">
                 <assert_contents>
                     <has_text text="ELGSSDLTAR" />
                 </assert_contents>
             </output>
-        </test>
--->
-
-        <!-- Test-6 -->
-<!--
-        <test>
-            <section name="req_inputs">
-                <conditional name="input_type">
-                    <param name="input_type_selector" value="peptide"/>
-                    <conditional name="multiple">
-                        <param name="peptide_input_selector" value="multiple" />
-                        <param name="input" ftype="tabular" value="novel_peptides"/>
-                    </conditional>
-                </conditional>
-                <param name="db_file" ftype="fasta" value="Uniprot.fasta"/>
-                <param name="spectrum_file" ftype="mgf" value="immunopeptidomics.mgf"/>
-                <param name="indexType" value="2"/>
-                <conditional name="tags">
-                    <param name="tagType" value="PepQuery"/>
-                    <param name="tag_file" ftype="tabular" value="test.tags"/>
-                    <param name="tagIndexType" value="2"/>
-                </conditional>
-            </section> 
-            <section name="modifications">
-                 <param name="fixed_mod" value=""/>
-                 <param name="var_mod" value="117,114,118,128"/>
-                 <param name="max_mods" value="3"/>
-                 <param name="unmodified" value="True"/>
-                 <param name="aa" value="True"/>
-            </section>
-            <section name="ms_params">
-                <section name="tolerance_params">
-                    <param name="precursor_tolerance" value="20"/>
-                    <param name="precursor_unit" value="ppm"/>
-                    <param name="tolerance" value="0.02"/>
-                </section>
-                <section name="digestion">
-                    <param name="enzyme" value="0"/>
-                    <param name="max_missed_cleavages" value="0"/>
-                </section>
-                <section name="search">
-                    <param name="frag_method" value="1"/>
-                    <param name="scoring_method" value="1"/>
-                    <param name="max_charge" value="3"/>
-                    <param name="min_charge" value="2"/>
-                    <param name="min_peaks" value="10"/>
-                    <param name="min_score" value="12"/>
-                    <param name="max_length" value="25"/>
-                    <param name="num_random_peptides" value="1000"/>
-                </section>
-            </section>
             <output name="psm_rank_txt">
                 <assert_contents>
-                    <has_text text="MTDRHAGTY" />
-                    <has_text text="controllerType=0 controllerNumber=1 scan=19905" />
+                    <has_text text="ELGSSDLTAR" />
+                    <has_line_matching expression="ELGSSDLTAR\tiTRAQ 4-plex of peptide N-term@0\[144.1\d+\]\t2\tiTRAQ_f4:3:2\t2\t1191.62\d+\t-3.04\d+\t-0.003\d+\t0.0\t1191.6\d+\t596.8\d+\t24.1\d+\t0\t0\t1\t995\t0.002\d+\t1\t0\tYes\t24.1\d+\t24.1\d+"/>
                 </assert_contents>
             </output>
         </test>
--->
-
-        <!-- Test-7 -->
-<!--
-        <test>
-            <section name="req_inputs">
-                <conditional name="input_type">
-                    <param name="input_type_selector" value="peptide"/>
-                    <conditional name="multiple">
-                        <param name="peptide_input_selector" value="multiple" />
-                        <param name="input" ftype="tabular" value="novel_peptides"/>
-                    </conditional>
-                </conditional>
-                <param name="db_file" ftype="fasta" value="Uniprot.fasta"/>
-                <param name="spectrum_file" ftype="mgf" value="immunopeptidomics.mgf"/>
-                <param name="indexType" value="2"/>
-                <conditional name="tags">
-                    <param name="tagType" value="pFind"/>
-                    <param name="qry_res" ftype="txt" value="pFind.qry.res"/>
-                </conditional>
-            </section> 
-            <section name="modifications">
-                 <param name="fixed_mod" value=""/>
-                 <param name="var_mod" value="117,114,118,128"/>
-                 <param name="max_mods" value="3"/>
-                 <param name="unmodified" value="True"/>
-                 <param name="aa" value="True"/>
-            </section>
-            <section name="ms_params">
-                <section name="tolerance_params">
-                    <param name="precursor_tolerance" value="20"/>
-                    <param name="precursor_unit" value="ppm"/>
-                    <param name="tolerance" value="0.02"/>
-                </section>
-                <section name="digestion">
-                    <param name="enzyme" value="0"/>
-                    <param name="max_missed_cleavages" value="0"/>
-                </section>
-                <section name="search">
-                    <param name="frag_method" value="1"/>
-                    <param name="scoring_method" value="1"/>
-                    <param name="max_charge" value="3"/>
-                    <param name="min_charge" value="2"/>
-                    <param name="min_peaks" value="10"/>
-                    <param name="min_score" value="12"/>
-                    <param name="max_length" value="25"/>
-                    <param name="num_random_peptides" value="1000"/>
-                </section>
-            </section>
-            <output name="psm_rank_txt">
-                <assert_contents>
-                    <has_text text="MTDRHAGTY" />
-                    <has_text text="controllerType=0 controllerNumber=1 scan=19905" />
-                </assert_contents>
-            </output>
-        </test>
--->
 
     </tests>
     <help><![CDATA[
-**PepQuery**
+**PepQuery2**
 
 PepQuery_ is a universal targeted peptide search engine for identifying or validating known and novel peptides of interest in any local or publicly available mass spectrometry-based proteomics datasets.
 
@@ -872,23 +576,53 @@
 **Inputs**
     - A sequence to match, one of the following:
 
-      - A peptide string or a history dataset with a list of peptides 
+      - A peptide string (or strings separated by commas)
+      - A history dataset with a list of peptides 
       - A protein string or a history dataset with a protein fasta 
       - A DNA string that is at least 60 base pairs in length
 
-    - MS/MS data used for identification:
+
+    - MS/MS data used for identification, one of the following:
+
+      - Mass Spectrometry history datasets in MGF, mzML, or mzXML format 
+      - An Indexed MS/MS dataset  (from previous PepQuery2 run or from **PepQuery2 index** tool.)
+      - PepQueryDB dataset IDs 
+        
+        .. 
 
-      - A mass spectrometry history datasets in MGF, mzML, or mzXML format 
-      - An Indexed MS/MS dataset 
-      - PepQueryDB dataset IDs 
+        Multiple datasets from PepQueryDB must be separated by comma. A pattern to match datasets in PepQueryDB is also supported, for example, use 'CPTAC' to search all datasets contain 'CPTAC'. In addition, dataset selection from PepQueryDB based on data type (w:global proteome, p:phosphorylation, a:acetylation, u:ubiquitination, g:glycosylation) is also supported. For example, use 'p' to search all phosphoproteomics datasets in PepQueryDB.  The **PepQuery2 Show Sets** tool will list available PepQueryDB datasets.
+
+
       - Dataset IDs from public proteomics data repositories: PRIDE, MassIVE, jPOSTrepo and iProX
 
+        ..
+
+        Dataset ID from public proteomics data repositories, one dataset is supported for each analysis. For example, use 'PXD000529' to use all MS/MS data from dataset PXD000529 or use 'PXD000529:LM3' to use data files containing LM3 from dataset PXD000529
+
     - A reference protein fasta database, novel peptides matching a reference sequence will be excluded.  
 
       - A protein fasta file
       - The ID for a public reference protein database from RefSeq, GENCODE, Ensembl or UniProt.
 
 
+**Options**
+
+    - MS/MS searching parameter set name 
+
+      .. 
+
+      Setting a *parameter set name* will change defaults for various options,  These may be overridden by manually setting the option.
+      The **PepQuery2 Show Sets** tool *PepQuery Predefined Parameter Sets* will list those available along with the option values that will be set.
+      The **PepQuery2 Show Sets** tool *PepQuery Datasets* column *parameter_set* column for each PepQueryDB dataset.
+
+
+    - Override default options
+
+      .. 
+
+      Values for modifications are provided in a select list.  
+      The **PepQuery2 Show Sets** tool *PepQuery Modifications* lists all available modifications.
+
 **Outputs**
     - Parameters: 
       
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Uniprot.fasta	Sun Oct 02 23:50:18 2022 +0000
@@ -0,0 +1,20 @@
+>sp|Q8C4J7|TBL3_MOUSE Transducin beta-like protein 3 OS=Mus musculus GN=Tbl3 PE=2 SV=1
+MAETAAGLCRFKANYAVERKIEPFYKGGKAQLDQTGHYLFCVCGTKVNILDVASGALLRSLEQEDQEDITSFDLSPDDEVLVTASRALLLAQWAWREGTVTRLWKAIHTAPVASMAFDATSTLLATGGCDGAVRVWDIVQHYGTHHFRGSPGVVHLVAFHPDPTRLLLFSSAVDTSIRVWSLQDRSCLAVLTAHYSAVTSLSFSEGGHTMLSSGRDKICIVWDLQSYQTTRTVPVFESVEASVLLPEQPAPALGVKSSGLHFLTAGDQGILRVWEAASGQCVYTQPQMPGLRQELTHCTLARAADLLLTVTADHNLLLYEAHSLQLQKQFAGYSEEVLDVRFLGPSDSHIVVASNSPCLKVFELQTLACQILHGHTDIVLALDVFRKGWLFASCAKDQSIRIWKMNKAGQVACVAQGSGHTHSVGTICCSRLKESFLVTGSQDCTVKLWPLPEALLAKSTAADSGPVLLQAQTTRRCHDKDINSLAVSPNDKLLATGSQDRTAKLWALPQCQLLGVFTGHRRGLWNVQFSPTDQVLATASADGTIKLWALQDFSCLKTFEGHDASVLKVAFVSRGSQLLSSGSDGLLKLWTIKSNECVRTLDAHEDKVWGLHCSQLDDHAITGGSDSRIILWKDVTEAEQAEEQAKREEQVIKQQELDNLLHEKRYLRALGLAISLDRPHTVLTVIQAIRRDPEACEKLEATVLRLRRDQKEALLRFCVTWNTNSRHCHEAQAVLGVLLRHEAPEELLAYDGVRGSLEALLPYTERHFQRLSRTLQAATFLDFLWHNMKLSPCPAAAPPAL
+>tr|Q80ZP8|Q80ZP8_MOUSE Armet protein OS=Mus musculus GN=Manf PE=1 SV=1
+METNNYLPSPPSFPVCISYLGRFYQDLKDRDVTFSPATIEEELIKFCREARGKENRLCYYIGATDDAATKIINEVSKPLAHHIPVEKICEKLKKKDSQICELKYDKQIDLSTVDLKKLRVKELKKILDDWGEMCKGCAEKSDYIRKINELMPKYAPKAASARTDL
+>sp|Q60847|COCA1_MOUSE Collagen alpha-1(XII) chain OS=Mus musculus GN=Col12a1 PE=2 SV=3
+MQTRLPRALAALGVALLLSSIEAEVDPPSDLNFKIIDENTVHMSWERPVDPIVGYRITVDPTTDGPTKEFTLAASTTETLLSDLIPETQYVVTITSYNEVEESVPVIGQLTIQTGGPTKPGEKKPGKTEIQKCSVSAWTDLVFLVDGSWSVGRNNFKYILDFIVALVSAFDIGEEKTRVGVVQYSSDTRTEFNLNQYYRREDLLAAVKKIPYKGGNTMTGDAIDYLVKNTFTESAGSRAGFPKVAIIITDGKSQDEVEIPARELRNIGVEVFSLGIKAADAKELKQIASTPSLNHVFNVANFDAIVDIQNEIISQVCSGVDEQLGELVSGEEVIEPPSNLVVTELSSKYIRLSWDPSPSAVTGYKILLTPMAAGSRHHALSVGPQTTTLNVRDLTADTEYQISVFAMKGLTSSEPTSVMEKTQPMKVQVECSRGVDIKADIVFLVDGSYSIGIANFVKVRAFLEVLAKSFEISPNRVQISLVQYSRDPHTEFTLKEFNRVEDIIKAINTFPYRGGSTNTGKAMTYVREKIFVPNKGSRSNVPKVMILITDGKSSDAFRDPAIKLRNSDVEIFAVGVKDAVRSELEAIASPPAETHVFTVEDFDAFQRISFELTQSICLRIEQELAAIKKKAYVPPKDLRFTQVTANSFKAEWSPPGDNVFSYHVTYKDANGDDEVTVVEPASSTSVVLNNLRPETLYLVNVTAEYEDGFSVPITGEETTAEVKGVPRNLKVTDETTDSFKLTWSQAPGRVLRYRIRYRPVSGGESKEVSTPANQRRKTLENLTPDTKYEISVIAEYSSGPGSPLTGNAATEEVRGNPRDLRVSDATTSTLKLSWSRAPGKVKQYLVTYTPAAGGETQEVTVRGDTTTTMLRKLKEGTQYDLSVTALYASGAGEALSGKGSTLEERGSPQNLVTKDITDTSIGAYWTSAPGMVRGYRVSWKSLYDDIEAGETTLPGDAIHTMIENLQPETKYKISVFATYSSGEGEPVTGDATTELSQDSKILRVDEETEHTMRVTWKAAPGKVVNYRVVYRPQGGGRQMVAKVPPTVTSTVLKRLQPQTTYDITVLPMYKTGEGKLRQGSGTTASRFKSPRNLKTSDPTMSSFRVTWEPAPGEVKGYKVTFHPTGDDRRLGELVLGPYDNTVVLEELRAGTTYRVNVFGMFDGGESLPLVGQEMTTLSDTTVTPFLSSGMDCLTRAEADIVLLVDGSWSIGRANFRTVRSFISRIVEVFEIGPKRVQIALAQYSGDPRTEWQLNAHRDKKSLLQAVANLPYKGGNTLTGMALNFIRQQSFKTQAGMRPRARKIGVLITDGKSQDDVEAPSKKLKDEGVELFAIGIKNADEVELKMIATDPDDTHAYNVADFESLSKIVDDLTINLCNSVKGPGDLEAPTNLVISERTHRSFRVSWTPPSDSVDRYKVEYYPVSGGKRQEFYVSRLDTSTVLKDLKPETDYVVNVYSVVEDEYSEPLKGTEKTLPVPVVSLNIYDVGPTTMHVQWQPVGGATGYTVSYQPTRSPEGTKPKEMRVGPTVNDVQLTGLLPNTEYEVTVQAVLYDLTSEPAKAREVTLPLPRPQDVKLRDVTHSTMNVVWEPVLGKVRKYIVRYKTPDEEFKEVEVDRSRASTILKDLSSQTQYTVSVSAVYDEGTSPPATAYDTTRRVPAPTNLQFTEVTPESFRGTWDHGASDVSLYRITWAPVGNPDKMETILNGDENTLVFENLNPNTPYEVSITAIYPDESESEDLSGTERTLRLIPLTTQAPKSGPRNLQVYNATSNSLTVKWDPASGRVQKYRITYQPSTGEGNEQTITVGGRQNSVLLQKLKPDTPYTITVYSQYPDGEGGRMTGRGKTKPLNTVRNLRVYDPSTSSLSVRWDHAEGNPRQYKLFYAPTSGGPEELVPIPGNTNYAILRNLQPDTPYTITVVPVYTEGDGGRTSDTGRTLVRGLARNIQVYNPTPNSLDVRWDPAPGPVQQYRIVYSPVAGTRPSESIVVPGNTRTVHLERLIPDTPYSVNIVALYSDGEGNPSPSQGRTLPRSGPRNIRVFGETTNSLSVAWDHADGPVQQYRIIYSPTVGDPIDEYTTVPGRRNNVILQPLQPDTPYKITVIAIYEDGDGGHLTGNGRTVGLLPPQNIHIFDEWYTRFRVSWDPSPSPVLGYKIVYKPVGSNEPMEAFVGEVTSYTLHNLNPSTTYDVSVYAQYDSGLSVPLTDQGTTLYLNVTDLKTYQVGWDTFCVKWSPHRAATSYRLKLSPADGTRGQEITVRGSETSHCFTGLSPEAEYGVTVFVQTPNLEGPGVPIKEQTTVKPTEAPTEPPTPSPPPTIPPARDVCKGAKADIVFLTDASWSIGDDNFNKVVKFIFNTVGAFDEVNPAGIQVSFVQYSDEVKSEFKLNTYNDKALALGALQNIRYRGGNTRTGKALTFIKEKVLTWESGMRKNVPKVLVVVTDGRSQDEVKKAAFVIQQSGFSVFVVGVADVDYNELANIASKPSERHVFIVDDFESFEKIEDNLITFVCETATSSCPLIYLDGYTSPGFKMLEAYNLTEKNFASVQGVSLESGSFPSYSAYRLQKNAFINQPTAELHPNGLPPSYTIILLFRLLPETPSDPFAIWQITDRDYRPQVGVIADPSSKTLSFFNKDTRGEVQTVTFDTDEVKTLFYGSFHKVHIVVTSKSVKIYIDCYEIIEKDIKEAGNITTDGYEILGKLLKGERKSATFQIQSFDIVCSPVWTSRDRCCDIPSRRDEAKCPALPNACTCTQDSVGPPGPPGPAGGPGAKGPRGERGINGAVGPPGPRGDTGPPGPQGPPGPQGPNGLSIPGEQGRQGMKGDAGEPGLPGRTGTPGLPGPPGPMGPPGDRGFTGKDGAMGPRGPPGPPGSPGSPGVTGPSGKPGKPGDHGRPGQSGLKGEKGDRGDIASQNMMRAVARQVCEQLISGQMSRFNQMLNQIPNDYHSSRNQPGPPGPPGPPGSAGARGEPGPGGRPGFPGTPGMQGPPGERGLPGEKGERGTGSQGPRGPPGPPGPQGESRTGPPGSTGSRGPPGPPGRPGNSGIRGPPGPPGYCDSSQCASIPYNGQGYPEPYVPEGGAYLPEREPFIVPVEPERTAEYEDDYGADEPDQQHPDHMRWRRALRPGPAE
+>tr|D6RFR8|D6RFR8_MOUSE Choline/ethanolaminephosphotransferase 1 OS=Mus musculus GN=Cept1 PE=4 SV=1
+MSGHRSTRKRCGDSHPESPVGFGHMSTTGHLCGLILPVLVAFSFTSLWMP
+>tr|Q91VK2|Q91VK2_MOUSE Eef1d protein OS=Mus musculus GN=Eef1d PE=1 SV=1
+MATNFLAHEKIWFDKFKYDDAERRFYEQMNGPVTSGSRQLKVMLPNSPEALGQATPGTSSGPGASSGPGGDHSELIVRITSLEVENQNLRGVVQDLQQAISKLEARLSSLEKSSPTPRATAPQTQHVSPMRQVEPPTKKGATPAEDDEDKDIDLFGSDEEEEDKEAARLREERLRQYAEKKAKKPTLVAKSSILLDVKPWDDETDMAQLETCVRSIQLDGLVWGASKLVPVGYGIRKLQIQCVVEDDKVGTDLLEEEITKFEEHVQSVDIAAFNKI
+>tr|F6WN43|F6WN43_MOUSE Iron-sulfur cluster co-chaperone protein HscB, mitochondrial (Fragment) OS=Mus musculus GN=Hscb PE=1 SV=1
+XQKSQTEKHFSDKHSTLVNDAYKTLQAPLTRGLYLVS
+>sp|Q6NXK2|ZN532_MOUSE Zinc finger protein 532 OS=Mus musculus GN=Znf532 PE=1 SV=1
+MTMGDMKTPDFDDLLAAFDIPDMVDPKAAIESGHDDHESHIKQNAHVDDDSHTPSSSDVGVSVIVKNVRNIDSSEGVEKDGHNPTGNGLHNGFLTASSLDSYGKDGAKSLKGDTPASEVTLKDPAFSQFSPISSAEEFEDDEKIEVDDPPDKEEARAGFRSNVLTGSAPQQDFDKLKALGGENSSKTGVSTSGHTDKNKVKREAESNSITLSVYEPFKVRKAEDKLKENSEKMLESRVLDGKPSSEKSDSGIAAAASSKTKPSSKLSSCIAAIAALSAKKAASDSCKEPVANSREASPLPKEVNDSPKAADKSPESQNLIDGTKKASLKPSDSPRSVSSENSSKGSPSSPVGSTPAIPKVRIKTIKTSSGEIKRTVTRVLPEVDLDSGKKPSEQAASVMASVTSLLSSSASATVLSSPPRAPLQTAMVTSAVSSAELTPKQVTIKPVATAFLPVSAVKTAGSQVINLKLANNTTVKATVISAASVQSASSAIIKAANAIQQQTVVVPASSLANAKLVPKTVHLANLNLLPQGAQATSELRQVLTKPQQQIKQAIINAAASQPPKKVSRVQVVSSLQSSVVEAFNKVLSSVNPVPVYTPNLSPPANAGITLPMRGYKCLECGDAFALEKSLSQHYDRRSVRIEVTCNHCTKNLVFYNKCSLLSHARGHKEKGVVMQCSHLILKPVPADQMIVPPSSNTAASTLQSSVGAATHTVPKVQPGIAGAVISAPASTPMSPAMPLDEDPSKLCRHSLKCLECNEVFQDEPSLATHFQHAADTSGQQMKKHPCRQCDKSFSSSHSLCRHNRIKHKGIRKVYACSHCPDSRRTFTKRLMLERHIQLMHGIKDPDVKELSDDAGDVTNDEEEEAEIKEDAKVPSPKRKLEEPVLEFRPPRGAITQPLKKLKINVFKVHKCAVCGFTTENLLQFHEHIPQHRSDGSSHQCRECGLCYTSHGSLARHLFIVHKLKEPQPVSKQNGAGEDSQQENKPSPEDEAAEGAASDRKCKVCAKTFETEAALNTHMRTHGMAFIKSKRMSSAEK
+>sp|P58006|SESN1_MOUSE Sestrin-1 OS=Mus musculus GN=Sesn1 PE=1 SV=3
+MRLAAASNEAYAASLAVSELLSCHQCGGDRGQDEELGIRIPRPLGHGPSRFIPEKEMLQVGSEDAQMHALFADSFAALGRLDNITLVMVFHPQYLESFLKTQHYLLQMDGPLPLHYRHYIGIMAAARHQCSYLVNLHVSDFLHVGGDPKWLNGLENAPQKLQNLGELNKVLAHRPWLITKEHIEGLLKAEEHSWSLAELVHAVVLLTHYHSLASFTFGCGISPEIHCDGGHTFRPPSVSNYCICDITNGNHSVDEMQVNSAGNASVSDSFFEVEALMEKMRQLQECREEEEASQEEMASRFEMEKRESMFVFSSDDDEVTPARDVSRHFEDTSYGYKDFSRHGMHVPTFRVQDYCWEDHGYSLVNRLYPDVGQLIDEKFHIAYNLTYNTMAMHKDVDTSMLRRAIWNYIHCMFGIRYDDYDYGEINQLLDRSFKVYIKTVVCTPEKVTKRMYDSFWRQFKHSEKVHVNLLLIEARMQAELLYALRAITRYMT
+>tr|A0A1B0GSE5|A0A1B0GSE5_MOUSE Ubiquitin carboxyl-terminal hydrolase CYLD OS=Mus musculus GN=Cyld PE=1 SV=1
+MSSGLWSQEKVTSPYWEERIFYLLLQECSVTDKQTQKLLKVPKGSIGQYIQDRSVGHSRVPSTKGKKNQIGLKILEQPHAVLFVDEKDVVEINEKFTELLLAITNCEERLSLFRNRLRLSKGLQVDVGSPVKVQLRSGEEKFPGVVRFRGPLLAERTVSGIFFGVELLEEGRGQGFTDGVYQGKQLFQCDEDCGVFVALDKLELIEDDDNGLESDFAGPGDTMQVEPPPLEINSRVSLKVGESTESGTVIFCDVLPGKESLGYFVGVDMDNPIGNWDGRFDGVQLCSFASVESTILLHINDIIPDSVTQERRPPKLAFMSRGVGDKGSSSHNKPKVTGSTSDPGSRNRSELFYTLNGSSVDSQQSKSKNPWYIDEAFGGYLSEVVEENTPPKMEKEGLEIMIGKKKGIQGHYNSCYLDSTLFCLFAFSSALDTVLLRPKEKNDIEYYSETQELLRTEIVNPLRIYGYVCATKIMKLRKILEKVEAASGFTSEEKDPEEFLNILFHDILRVEPLLKIRSAGQKVQDCNFYQIFMEKNEKVGVPTIQQLLEWSFINSNLKFAEAPSCLIIQMPRFGKDFKLFKKIFPSLELNITDLLEDTPRQCRICGGLAMYECRECYDDPDISAGKIKQFCKTCSTQVHLHPRRLNHSYHPVSLPKDLPDWDWRHGCIPCQKMELFAVLCIETSHYVAFVKYGKDDSAWLFFDSMADRDGGQNGFNIPQVTPCPEVGEYLKMSLEDLHSLDSRRIQGCARRLLCDAYMCMYQSPTMSLYK
+>sp|Q60880|OL141_MOUSE Olfactory receptor 141 OS=Mus musculus GN=Olfr141 PE=3 SV=2
+MRNITEATFFVLKGLTDNNELQIILFLLFLAIYIFTLIGNVGLIILVVGDSQLHNPMYCFLSVLSSVDACYSTDITPNMLVGFMSKSKIISFYGCATQMFLAVTFGTTECFLLAAMAYDRYVAIHDPLLYAVSMSPRVYIPLIIASYAGGIVHAIIHTVATFSLSFCRSNEVKHIFCDIPPLLAISCSETYVNELLLFFFVSFIELVTILIVLVSYAFILLSILKMNSSEGRRKVFSTCGAHLTAVSIYYGTILFMYVRPSSNYSLEHDMIVSTFYTIGIPMLNPIIYSLRNKDVKEAMKRVLRKKINIKHRIKKLNDFSVFLMP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/iTRAQ_f4.mgf	Sun Oct 02 23:50:18 2022 +0000
@@ -0,0 +1,753 @@
+COM=Conversion to mascot generic
+CHARGE=2+ and 3+
+BEGIN IONS
+PEPMASS=740.462952
+CHARGE=3+
+SCANS=277
+TITLE=Mo_Tai_iTRAQ_f4.00277.00277.3
+111.017494 85.198502
+112.240982 97.204994
+114.110542 168.274780
+115.107582 369.265503
+115.650398 84.005325
+117.296082 86.641182
+117.595589 82.974037
+120.657990 81.247025
+123.208023 88.939392
+126.714996 76.470490
+126.995316 81.651260
+129.369080 82.580246
+129.410400 90.817963
+132.734039 124.614685
+143.307465 87.847046
+178.966888 94.961578
+179.972855 89.878273
+183.256714 104.533241
+188.080093 123.015953
+212.102753 442.314178
+213.104324 84.621696
+233.001801 107.842552
+244.242355 102.163200
+281.079132 97.696259
+291.216034 243.588058
+309.183807 104.681831
+325.188324 282.187622
+345.226288 167.099777
+347.629883 88.744476
+357.377533 105.747673
+388.266266 1321.324341
+430.317047 94.113419
+458.310547 310.033203
+489.807434 100.114334
+490.700165 99.780800
+501.355072 164.809708
+517.545532 119.780251
+529.344849 395.354340
+529.599487 100.128220
+535.189514 101.317970
+657.405518 110.483780
+699.552063 101.576553
+736.234497 130.142654
+752.286011 111.876389
+756.181641 93.424118
+771.447876 505.619843
+776.288391 100.766472
+804.153748 99.673531
+840.959473 131.680695
+870.515198 596.371582
+871.524719 224.175797
+938.853760 112.032951
+983.596008 538.290894
+985.851929 109.672272
+999.183228 110.428818
+1006.435791 110.520103
+1098.597168 117.997414
+1102.095825 108.774673
+1154.624023 115.541344
+1179.853027 115.300293
+1188.129639 112.100708
+1328.742920 120.317390
+1535.381592 114.408516
+1578.387207 112.895355
+1696.229492 122.310112
+1865.684937 119.336388
+1891.318359 108.014870
+END IONS
+BEGIN IONS
+PEPMASS=596.816895
+CHARGE=2+
+SCANS=3419
+TITLE=Mo_Tai_iTRAQ_f4.03419.03419.2
+112.086548 2060.700684
+113.070908 591.413391
+114.110237 56227.753906
+115.107254 40715.632813
+116.110573 1253.002075
+124.087646 334.579498
+129.065491 335.658569
+129.682831 322.525909
+130.096924 432.119598
+135.059509 290.456573
+135.933548 316.717255
+141.158234 324.162384
+143.102081 1042.657227
+143.108337 991.155334
+145.106369 4993.616699
+145.112579 9580.018555
+146.116013 348.826385
+151.422028 339.654999
+152.189240 352.970459
+155.080811 320.076233
+156.112503 802.023926
+157.107681 821.452209
+158.092041 3474.361572
+163.116852 649.046387
+163.123260 573.363525
+163.860764 368.470825
+172.107132 547.236511
+173.091751 424.643494
+173.713470 325.451202
+174.132874 1181.682129
+174.138977 1457.565674
+175.118500 19209.625000
+176.121841 895.593079
+180.310822 302.979675
+185.090881 577.591370
+185.163925 667.431763
+189.086395 384.102600
+193.535583 299.085999
+198.085999 304.650818
+202.127197 776.504089
+202.133865 1047.345337
+205.158951 325.465912
+206.438217 407.963379
+215.112625 944.689087
+216.097275 349.972809
+216.178452 628.929138
+216.187073 1542.270264
+218.158371 710.665344
+219.997772 493.154785
+226.117889 345.579254
+227.530579 380.890015
+229.117340 398.719696
+231.095993 553.909363
+232.139694 11610.142578
+233.142776 541.624878
+240.132904 413.648132
+242.112793 354.861603
+242.148621 757.952148
+244.147949 340.507446
+244.181870 1394.464355
+244.207031 351.863098
+246.153458 2635.449219
+246.159882 2076.769775
+255.143784 947.695679
+260.123077 377.649994
+261.163208 358.264160
+268.138641 800.600464
+269.122375 665.910522
+269.220001 322.280029
+271.175507 2574.782715
+271.523804 335.527252
+272.170105 1414.468018
+274.152344 1745.901855
+279.726440 358.126434
+286.150787 2142.241211
+287.134125 399.345337
+287.153320 381.299835
+288.201630 1045.604614
+289.161011 642.731201
+297.189941 313.076477
+303.175964 1238.757568
+304.159454 718.974304
+309.070404 557.175232
+309.572754 389.136902
+315.128113 438.987366
+315.165070 394.897858
+318.127045 852.624146
+329.155304 359.383026
+330.138916 745.477112
+330.163727 587.573120
+332.788940 345.351257
+341.179504 329.149353
+343.196503 430.196503
+345.225616 879.687500
+346.184479 345.247650
+347.166504 2072.177246
+362.212433 790.440979
+370.243683 983.206055
+371.191467 312.021271
+386.165009 543.059692
+387.270721 3542.475586
+388.202606 326.927032
+388.272369 414.230347
+390.209930 1715.465820
+393.176727 381.699097
+394.099823 350.606934
+394.679169 691.222046
+399.232178 810.009094
+400.194336 1531.151733
+404.261292 599.445801
+404.777496 526.729858
+414.246185 936.942200
+416.259430 718.543945
+417.195190 570.186829
+418.203003 1665.865479
+431.276031 331.554321
+432.257965 1057.613647
+433.252106 753.843201
+443.218933 595.729858
+460.251099 370.717468
+461.245270 2433.910889
+468.288940 742.679199
+471.229858 880.132996
+485.281830 561.284607
+489.241028 1984.553345
+496.409393 339.580841
+497.196106 873.354187
+498.299805 496.056610
+503.294342 597.645569
+511.149689 353.095825
+515.327271 1117.143188
+516.309937 733.257690
+525.312256 617.688354
+528.284912 373.090637
+530.266785 1111.963867
+548.277344 1113.044312
+558.261963 1086.223267
+559.408081 405.176025
+560.315735 580.912170
+562.276917 335.608765
+564.272888 702.601379
+564.317993 354.550781
+565.308411 432.052307
+566.312805 402.429840
+574.804260 1090.369995
+576.274780 1495.794922
+577.275513 370.333984
+579.258240 488.650421
+586.329773 924.428833
+586.824341 763.742798
+587.328796 1918.114868
+587.812134 2967.306152
+588.309631 1265.537964
+594.755310 400.626099
+595.833008 10111.694336
+596.332397 7990.095215
+596.816284 25143.017578
+597.162964 543.470703
+597.319031 6673.245117
+599.348267 467.912262
+604.341736 1089.714600
+617.357422 1058.755737
+641.300598 425.232941
+643.383606 657.883423
+644.248352 793.406738
+648.339661 426.476868
+658.327637 1623.402832
+659.310608 1560.553711
+676.336731 2649.790771
+677.323730 1165.182739
+678.326416 408.390747
+689.357788 1332.395996
+690.355042 560.007202
+704.391846 2547.047119
+714.389771 542.943298
+730.419067 1871.138306
+731.424500 1454.675903
+759.392761 434.491913
+760.391541 1171.156616
+761.330750 659.255920
+762.337036 610.295776
+764.438049 1536.238647
+775.429077 2458.175049
+776.418152 731.787048
+777.417358 346.319275
+778.363281 793.077942
+788.353943 1701.587524
+788.440674 369.447174
+789.358887 436.979340
+797.422058 949.151123
+801.456482 2018.613281
+802.453003 1038.883423
+805.359070 696.158020
+806.363647 7031.405762
+807.365295 934.853821
+833.400391 617.893799
+847.425964 2543.552246
+848.427246 772.212708
+862.458740 2430.889893
+863.459778 620.660950
+875.450989 820.489624
+884.453247 1631.064331
+885.464966 571.145264
+887.421997 686.658630
+888.489502 705.498108
+889.477844 696.127258
+901.470032 1463.045898
+902.496460 1266.257813
+903.503845 698.129333
+904.442261 1038.665894
+905.432617 2050.675537
+919.481445 17119.210938
+920.485657 3316.843506
+927.563293 359.592102
+930.460938 851.465942
+931.465820 651.002625
+946.600769 384.072571
+948.455444 5336.049805
+948.531555 1947.049316
+949.462769 3090.331299
+982.512085 809.105103
+989.529297 2285.907715
+990.528381 1016.524780
+1002.532959 606.857239
+1004.502136 1042.749634
+1005.535583 806.390625
+1016.546387 611.005005
+1018.514465 890.451599
+1028.542358 881.013977
+1029.543945 751.198486
+1030.513184 4668.985840
+1031.514404 1352.692383
+1031.903931 531.207397
+1046.556763 10195.110352
+1047.549683 10636.351563
+1048.524292 27357.046875
+1049.521240 6269.379395
+1050.536743 817.544556
+1058.510132 602.429749
+1059.512817 806.930664
+1074.545654 670.111877
+1111.347778 383.419983
+1135.563232 590.543945
+1191.850830 385.573975
+1199.484863 378.615051
+END IONS
+BEGIN IONS
+PEPMASS=596.819946
+CHARGE=2+
+SCANS=4266
+TITLE=Mo_Tai_iTRAQ_f4.04266.04266.2
+112.086632 6256.541992
+113.106850 1200.777588
+114.110283 291903.562500
+115.107292 205773.750000
+116.070198 9381.364258
+118.625160 1156.606079
+121.846268 1173.889160
+125.281631 1188.704590
+125.512619 1180.603516
+129.112930 1283.168335
+130.097046 2611.965332
+139.049683 1483.984863
+143.102386 2415.365723
+143.108490 3660.921631
+145.107513 41579.554688
+145.112564 51772.304688
+145.989609 1184.887939
+146.110229 1508.351685
+146.116257 1975.773315
+156.112534 4143.445313
+157.107788 2432.481201
+157.133499 4839.485840
+158.091995 20283.333984
+159.076263 1429.104614
+160.629898 1191.417847
+160.667603 1158.045776
+163.141205 1376.479004
+171.075943 2648.332520
+173.109818 1193.917114
+174.247498 1186.561401
+175.118561 111334.921875
+176.121765 4773.125488
+185.127930 4566.888184
+186.087280 2240.476807
+188.765823 1949.310425
+197.055084 1148.568359
+201.086807 1300.619141
+204.149704 4709.141113
+215.261887 1138.700195
+216.096863 2107.551758
+229.128571 2454.522217
+232.146118 11049.886719
+235.964767 1241.629761
+244.147644 1253.920410
+246.154465 35329.953125
+246.159225 30148.449219
+247.158295 2926.364746
+269.124420 2670.603760
+271.175903 15609.878906
+272.144226 2525.952148
+272.179108 1290.274536
+274.153015 49036.832031
+275.149841 1420.499634
+275.158844 2601.916016
+282.143555 1384.911743
+287.134125 2822.687256
+288.118774 1334.078247
+288.202240 7083.480469
+299.169952 3699.752686
+303.176483 4045.447021
+309.154053 2151.240723
+315.129456 2996.855469
+317.192169 3992.310791
+317.232452 2488.542480
+324.201965 3728.532471
+327.216888 1340.828613
+328.181183 1415.114990
+328.658539 1123.353027
+332.220734 1271.077026
+339.128540 1531.501343
+341.227722 2042.626709
+342.177856 4745.867676
+342.213135 5806.857422
+342.680176 1253.430786
+345.227722 6977.128906
+346.227631 1417.045288
+351.181580 2593.887451
+355.195465 1410.892944
+359.239166 131598.187500
+360.241974 7494.800781
+371.703064 1232.090332
+372.227325 1063.592041
+374.165833 1593.182251
+378.128571 1477.884521
+379.190033 2009.720215
+383.951935 1167.295410
+385.217102 2160.023926
+387.088654 1181.940674
+387.237122 17242.986328
+388.270752 2137.781494
+399.691681 1897.866455
+402.981964 1403.929321
+410.200531 1473.366943
+412.146576 2755.270752
+416.178741 2011.218384
+416.264343 8740.199219
+418.226563 1685.087158
+418.503876 1317.556885
+420.906189 1468.914551
+428.260590 10760.098633
+435.430603 1235.131470
+439.228638 3462.746582
+443.721893 2301.887451
+444.259033 19408.619141
+445.910492 1555.476196
+446.234131 4515.197266
+452.213654 2224.779785
+453.244629 1466.538086
+456.254028 11374.475586
+457.236298 6505.964355
+460.252441 5049.501953
+461.199280 2477.136963
+461.257202 1220.848389
+473.282104 2383.668213
+474.265259 18389.148438
+474.347229 1335.815796
+475.268738 1576.179443
+487.300934 3418.517334
+497.238434 1320.483154
+501.193390 2363.973633
+501.281799 2294.974609
+503.293304 5307.897461
+506.236969 2415.770264
+507.221161 2141.243408
+513.280212 8979.766602
+513.520874 1255.733276
+515.397583 1283.797607
+518.220520 2333.504883
+524.244141 2337.022705
+531.288818 12616.497070
+532.292053 2919.514648
+543.240479 2208.620361
+557.302246 2227.384277
+558.287842 2620.560791
+564.282898 3061.575439
+564.783386 2126.333008
+567.635071 1528.431152
+572.318420 3588.414307
+574.332886 6353.251953
+575.275513 2038.389526
+575.317810 3120.288818
+575.813110 1280.671021
+578.257324 2028.924072
+578.808960 2204.031494
+582.297302 2370.353516
+586.805847 4880.877441
+587.321655 10993.145508
+587.815430 4840.189453
+588.315308 3987.762451
+590.326782 4101.055176
+595.808716 13652.512695
+596.326172 56460.394531
+596.820496 73703.304688
+597.325012 10493.157227
+600.311584 11091.863281
+603.256470 1375.655518
+614.278687 3044.310303
+617.342529 2611.205322
+618.321533 11686.435547
+620.278381 2692.279785
+631.304932 3489.041748
+642.333923 1463.009766
+643.356995 2144.768555
+657.334106 2211.700439
+661.360291 10726.361328
+662.340027 6749.304199
+683.348572 4233.550781
+686.357666 2806.179688
+699.368774 2373.727783
+701.356628 9326.515625
+702.359070 2700.029297
+704.322937 2700.242920
+711.198730 1564.977661
+713.357788 4241.387695
+714.358093 3410.055420
+719.369812 5286.986328
+731.363892 6544.432617
+732.374146 3260.844238
+735.998413 1453.624878
+737.383057 1431.205566
+742.338867 2484.998047
+745.386780 1396.323608
+748.392639 14782.207031
+749.381287 11169.833984
+753.351318 2966.480469
+759.413452 1382.535645
+773.555115 1370.550049
+775.356812 6727.154297
+776.364441 2762.483398
+788.388000 5857.976563
+789.387451 2614.257813
+805.414490 59632.191406
+806.403381 47422.496094
+807.409180 3204.095703
+815.398743 5865.412109
+816.380005 5343.647949
+818.412598 1527.970459
+828.385437 4316.563477
+832.396667 2064.102783
+833.411438 12668.332031
+834.397095 17313.691406
+835.401672 3613.251709
+836.389221 3638.201172
+837.386047 2715.394531
+846.392822 13464.495117
+847.398560 4506.627441
+854.086304 1410.738037
+859.436096 1434.342163
+869.417786 2140.526367
+874.438904 2894.846924
+876.452454 1540.078003
+877.441833 3256.387451
+884.456360 2767.287598
+886.439087 2288.198242
+887.428406 2524.863770
+900.501099 5556.912598
+901.481323 4092.769531
+902.469177 2563.342041
+904.448242 11652.262695
+905.443420 9426.941406
+918.441956 2336.740967
+918.500122 65733.820313
+919.490662 68634.601563
+920.492371 10120.558594
+928.484375 2104.793213
+959.473206 8787.570313
+960.478210 5710.833496
+970.508484 1540.445313
+983.451904 7412.620117
+984.465027 4973.284180
+986.509155 2271.588623
+1003.521057 3541.061523
+1004.511292 2234.473145
+1012.509521 4455.150879
+1013.487671 2531.277588
+1017.535645 3410.644043
+1018.537476 2418.473877
+1028.498779 9095.230469
+1029.529297 14408.421875
+1030.519287 22318.728516
+1031.523926 3820.234375
+1046.506348 27647.564453
+1047.543335 99298.734375
+1048.535767 93244.648438
+1049.536743 15710.309570
+1059.525513 2875.163330
+END IONS
+BEGIN IONS
+PEPMASS=593.990784
+CHARGE=3+
+SCANS=8055
+TITLE=Mo_Tai_iTRAQ_f4.08055.08055.3
+110.070747 1733.929932
+112.086494 691.703613
+114.110207 40570.949219
+115.107246 29732.470703
+116.110382 1231.719482
+116.696106 632.937317
+117.730354 471.628967
+124.086235 1593.573853
+127.085846 719.726074
+127.191467 500.313782
+129.064926 511.926025
+129.129395 1360.861450
+136.075058 651.347961
+137.249298 489.442627
+143.102310 528.153137
+143.108459 983.870300
+145.106354 5602.307617
+145.112564 9344.262695
+155.080536 649.520813
+158.091660 1477.552002
+162.132690 594.649658
+162.139435 534.015381
+173.417542 600.326477
+175.118454 8973.086914
+176.120972 555.123108
+178.371323 511.018158
+183.148560 607.971863
+186.086960 652.429138
+188.148453 816.252747
+188.154907 1523.843628
+199.106628 571.695862
+206.436493 1035.268555
+212.269272 591.934021
+214.144180 900.448364
+216.150284 2525.229248
+227.101578 976.558044
+230.201385 1142.054443
+242.148682 1397.006470
+243.107559 677.465942
+243.133698 1371.145142
+244.138000 891.661987
+244.180954 1242.425537
+246.153366 2297.038574
+254.730103 532.118347
+255.144455 987.050415
+256.688324 533.629761
+257.158569 875.375305
+272.170959 2529.128906
+272.908997 502.400146
+274.186554 13132.186523
+287.221313 1091.025513
+291.214172 2984.217773
+300.154175 1022.979675
+308.174438 1182.723389
+311.169250 569.517273
+315.217712 1153.479858
+320.089233 1019.081665
+329.195770 1409.046875
+330.298096 523.613220
+331.206055 940.368896
+345.223816 1784.856079
+348.235840 683.953247
+348.581970 560.229858
+368.226654 641.918640
+371.281464 720.593628
+372.184631 537.945129
+378.248566 1106.098633
+379.243256 531.171021
+386.216095 1908.169556
+388.270569 1083.493164
+399.715698 3641.003906
+402.287842 531.509766
+407.745789 883.040344
+407.965881 569.346497
+412.240295 632.917664
+415.698425 1032.095337
+428.227112 4306.428711
+428.261108 1225.675537
+428.725769 881.870422
+429.260712 3728.557373
+429.697418 1331.391235
+445.288818 567.610901
+448.071899 583.037292
+455.416718 647.968628
+464.268341 654.572754
+470.773743 1128.713501
+472.250061 3780.671875
+473.252808 1594.682739
+473.278687 2412.803467
+481.325806 1259.738159
+484.769775 1385.499390
+485.271332 613.115601
+491.173309 585.062622
+491.329742 911.582214
+497.316864 671.196655
+499.275757 1172.343262
+499.337067 1123.132935
+500.283569 1279.582520
+500.335480 1331.533203
+501.255157 671.378113
+506.350983 526.060120
+515.294067 595.644592
+520.279419 564.501221
+528.327942 1453.140137
+528.796143 1023.938416
+530.344971 699.704163
+534.306091 632.479187
+556.821533 578.409241
+557.308167 996.385559
+562.368835 1061.597290
+562.630188 599.749634
+563.383240 597.036011
+572.329102 704.391174
+575.329651 597.594116
+578.266602 569.538757
+584.834595 1397.603638
+585.341125 596.237427
+585.828064 634.964417
+592.849548 948.947998
+593.338867 8331.064453
+593.809753 1243.525757
+593.850098 3570.665283
+594.347534 5469.266113
+601.328064 1251.846069
+612.421753 868.523682
+615.363525 1159.816772
+635.785217 692.349304
+645.406799 926.912354
+647.354187 1344.844971
+660.368103 1515.965698
+667.035950 629.281006
+678.553528 864.705811
+686.401672 1415.408081
+687.406799 956.555176
+701.317932 638.253906
+713.436462 577.175781
+714.438171 979.025330
+721.332031 1133.021240
+734.864807 659.578308
+758.495483 1101.013306
+759.436768 1680.954834
+814.488220 766.761841
+825.458008 2101.567139
+873.476807 3603.638672
+876.500122 1146.794800
+877.493591 2904.569092
+878.501526 2154.676025
+879.500305 1179.630981
+896.207703 648.875244
+914.434082 1090.736938
+914.517822 1977.191284
+928.515015 1886.298706
+930.495483 1311.800903
+952.429504 625.323181
+965.766296 606.633911
+972.546692 2437.769531
+999.546753 632.162537
+1026.609131 980.280151
+1040.573853 1742.042114
+1041.564087 3165.200439
+1042.581787 3063.955566
+1043.577515 6683.765625
+1045.518311 945.700500
+1147.621704 832.881104
+1148.635742 1159.247681
+1467.104980 653.335815
+1533.474243 661.718018
+1620.307251 616.238525
+1664.717529 648.275024
+END IONS
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/immunopeptidomics.mgf	Sun Oct 02 23:50:18 2022 +0000
@@ -0,0 +1,464 @@
+BEGIN IONS
+TITLE=controllerType=0 controllerNumber=1 scan=19846
+RTINSECONDS=2320.06458
+PEPMASS=383.529876708984
+CHARGE=3+
+84.0449677 46347.0703125
+84.0813446 85493.9453125
+86.0719299 7175.7060546875
+86.0969772 135316.21875
+87.0795746 57686.53515625
+89.5852509 6013.955078125
+91.0547638 26870.0390625
+100.0871506 10508.3408203125
+101.0712357 8028.2236328125
+102.0548477 7109.3364257813
+110.071434 72448.5390625
+112.0872192 68537.90625
+116.0708847 66026.75
+116.6829987 7043.2426757813
+119.0492325 28436.21484375
+120.0808487 28182.986328125
+123.0442657 6282.2768554688
+127.0979004 32528.88671875
+129.1026154 74929.3046875
+129.1124268 15517.341796875
+132.1023407 7616.8291015625
+136.075592 267654.46875
+137.0793915 44604.71484375
+140.0816498 8406.1591796875
+145.4732819 7887.0209960938
+147.0440521 10594.44921875
+147.1123962 10032.357421875
+155.0816803 6984.1274414063
+157.1085968 34948.90234375
+165.0540466 39318.01953125
+167.0815887 29707.244140625
+168.085022 6312.9848632813
+182.0816193 28942.546875
+183.1242371 7433.0512695313
+183.1487885 8203.357421875
+193.0978699 6826.6010742188
+195.0764313 23284.12109375
+195.1120148 9413.0185546875
+197.1287689 31395.33203125
+198.132309 9345.76953125
+199.7877808 5461.4345703125
+213.0883179 6907.8862304688
+217.1338043 13646.8583984375
+219.1365814 28881.201171875
+226.1663971 13425.7822265625
+244.165451 62294.3984375
+245.1695709 14033.3974609375
+249.673233 32895.77734375
+254.1607361 72503.140625
+255.1666107 6893.8310546875
+259.0739441 12570.2685546875
+260.0770569 6460.126953125
+271.1891785 9831.76953125
+275.1358337 11066.83984375
+304.6169434 9695.1650390625
+308.5368347 10936.181640625
+308.8744507 6715.9243164063
+311.181427 8423.06640625
+326.7102356 8839.98828125
+328.2081909 21860.5078125
+329.8709106 7965.8657226563
+330.2044983 8398.9033203125
+331.1609192 7686.9453125
+333.8371277 25565.46484375
+334.1699219 7952.1284179688
+339.8395081 31163.154296875
+340.1759949 26240.822265625
+340.6808167 36919.71484375
+342.1118774 7167.1025390625
+342.1811218 10171.65234375
+346.5349731 7574.7329101563
+347.7381592 9350.056640625
+348.4993286 7552.921875
+353.6708679 38643.10546875
+354.1769409 6889.3901367188
+354.2250671 21217.833984375
+361.6572571 6491.6513671875
+362.1836853 6020.7607421875
+363.1853333 8824.9462890625
+377.2033691 6569.89453125
+381.2067871 7040.6538085938
+383.2186279 68377.4609375
+383.3130188 116036.234375
+383.526886 42512.03125
+385.2560425 10095.142578125
+398.2119751 25488.392578125
+401.2857666 10739.900390625
+410.2869873 10938.7431640625
+417.2008667 6045.6533203125
+417.696991 8364.318359375
+418.2027893 8019.1762695313
+426.2158203 9391.662109375
+428.8858948 6009.2065429688
+431.206543 9535.4150390625
+451.2514343 6296.6337890625
+465.7139282 6659.9360351563
+466.2247925 8575.556640625
+475.2226257 6292.1694335938
+488.2868042 7346.7373046875
+489.2886047 30622.896484375
+491.2367249 8038.7392578125
+492.2262268 27380.2578125
+496.3111572 9502.2919921875
+498.3398438 83627.8203125
+499.348114 9477.421875
+502.2510376 7497.5302734375
+502.8083191 7691.1728515625
+518.2723389 29630.49609375
+519.2763672 13119.953125
+656.3309937 6904.6923828125
+673.3564453 8458.634765625
+END IONS
+BEGIN IONS
+TITLE=controllerType=0 controllerNumber=1 scan=19905
+RTINSECONDS=2325.98454
+PEPMASS=534.22802734375
+CHARGE=2+
+74.0607834 11525.5478515625
+80.820961 1134.3864746094
+84.0448685 11916.904296875
+84.0813599 24140.73046875
+86.0719757 1059.546875
+86.0969696 48334.11328125
+87.0556259 2711.1242675781
+87.0794067 2536.3103027344
+87.099884 1441.4647216797
+88.0397949 1339.0686035156
+89.0711365 5940.744140625
+95.5842514 960.4934692383
+100.0871887 1435.1180419922
+101.0711517 11117.935546875
+102.0551834 7843.828125
+104.0528793 2629.0866699219
+107.0505447 1256.6583251953
+107.47509 1007.3388061523
+110.0714264 24055.96484375
+112.087204 2137.0339355469
+115.0872574 2242.5446777344
+119.0812531 1181.8509521484
+120.0808029 19385.041015625
+127.0867386 5999.564453125
+129.065918 4383.1904296875
+129.1022491 33245.55859375
+130.0497742 1252.8232421875
+131.0811462 1228.9758300781
+136.0639343 1478.1802978516
+136.0756531 41457.83203125
+137.0790558 2168.0249023438
+141.0658417 2161.6188964844
+141.1025543 1396.7373046875
+145.0974884 1154.3653564453
+152.0713348 1227.7298583984
+155.0810394 2207.4116210938
+157.0602112 1539.4930419922
+157.08461 1485.4039306641
+157.1333466 2088.0070800781
+159.0758057 2233.6645507813
+159.1125183 1578.9256591797
+165.0541687 14583.548828125
+166.085968 18895.611328125
+169.1333466 10393.7421875
+171.0764618 1893.2116699219
+172.1085052 1334.9647216797
+180.0661316 2653.572265625
+182.0809937 32101.177734375
+183.076828 2454.3715820313
+183.1490936 1469.2236328125
+185.077774 2541.4504394531
+185.0941162 1574.8117675781
+185.1289368 1785.0300292969
+186.087677 2044.2495117188
+187.1076813 2141.6088867188
+198.0757141 1864.1412353516
+199.0702972 1590.9162597656
+200.10289 5724.33203125
+201.1239624 2084.2858886719
+203.0672455 1515.2619628906
+207.1134491 2512.40625
+213.0875549 1643.7739257813
+215.1399994 2060.5869140625
+216.0997772 1206.705078125
+216.1348419 1320.7780761719
+217.1352234 8159.3056640625
+220.1828613 3609.7250976563
+220.2030029 1611.9375
+221.1286774 11386.6640625
+223.1070251 5323.6176757813
+226.1182861 4679.68359375
+230.1152496 2067.7849121094
+235.1436768 2349.3061523438
+236.1468964 1393.5037841797
+237.1257629 2463.6643066406
+240.1340179 1668.9652099609
+245.13237 1704.8936767578
+247.1428375 1828.2724609375
+249.0960083 1496.8309326172
+249.1233063 1982.8770751953
+254.1599274 1287.4233398438
+262.6038818 2132.6999511719
+267.1069946 1409.6979980469
+267.1347351 4155.18359375
+270.1081848 2705.4152832031
+270.6130981 2401.3571777344
+271.1154175 1773.4208984375
+277.6126709 1322.0480957031
+283.1292419 6684.1733398438
+285.2037659 1555.5247802734
+290.6115112 1747.0528564453
+293.1127625 1832.3509521484
+295.0375366 1139.5216064453
+298.6217346 2137.7734375
+299.1255493 1164.4644775391
+299.6296692 5615.0180664063
+304.6210938 1524.0411376953
+313.6674805 1478.9112548828
+314.6342773 1185.4146728516
+341.1139832 1686.7280273438
+350.1498108 2248.2668457031
+350.6541443 9815.0107421875
+351.1555786 4738.2700195313
+351.6599426 1457.0270996094
+355.647583 1925.8502197266
+358.1459961 1697.1291503906
+364.1647644 2035.076171875
+364.6515198 2264.7180175781
+365.6571045 2539.4509277344
+366.1519775 1271.5914306641
+368.1899719 2488.8234863281
+370.1492615 1207.8226318359
+372.6609192 1450.5041503906
+373.1611023 15705.77734375
+373.6647339 6134.396484375
+376.5512695 1535.8891601563
+379.1600952 1519.6890869141
+379.6573486 1735.7387695313
+382.6697693 1877.0784912109
+384.6668396 1368.4975585938
+386.1818542 4932.7622070313
+388.0981445 1814.0821533203
+388.1616516 1639.3973388672
+391.6724243 1722.4331054688
+394.6583252 2745.8254394531
+395.1569519 1794.5734863281
+399.1826477 1813.751953125
+399.6832886 2202.8469238281
+400.1859131 27261.03515625
+400.6886902 11703.2177734375
+405.1769714 1845.1595458984
+406.1872559 5626.5249023438
+409.1769714 1553.7102050781
+410.2037659 9268.25390625
+410.7049255 2537.4650878906
+412.1827393 2462.1599121094
+415.1905518 4857.001953125
+417.1824646 2098.9926757813
+423.1886902 1632.6658935547
+428.6966248 5038.703125
+429.1943359 2628.6257324219
+430.1769409 2335.6350097656
+438.2408752 2383.4521484375
+439.1846313 18274.087890625
+439.6879578 7237.6088867188
+443.2449951 1595.5926513672
+445.186676 4973.349609375
+445.6867676 2095.1735839844
+446.1969604 1545.0024414063
+450.6947937 2427.0949707031
+452.2566528 1537.7886962891
+454.1917114 1963.4315185547
+458.1747131 1448.1218261719
+461.2607727 1722.7113037109
+465.6973877 1562.3093261719
+466.1947937 2171.53515625
+467.2056274 10621.619140625
+467.7023621 9091.3349609375
+468.1976929 1944.4018554688
+468.267395 4734.5639648438
+469.273468 1822.9508056641
+473.1994934 1352.2316894531
+473.6989746 1343.6881103516
+475.1999512 5885.4248046875
+475.7026672 6054.9418945313
+476.2094421 4897.3432617188
+476.7133789 1982.70703125
+478.2355347 5131.12109375
+481.1903992 2123.00390625
+481.7055664 2059.3818359375
+482.2129822 6752.0048828125
+482.7108459 2522.6437988281
+487.3049316 2514.1276855469
+490.7094421 2462.6801757813
+495.70578 5170.00390625
+501.7067566 1650.3034667969
+501.7937622 7237.1142578125
+502.296875 2418.212890625
+504.21698 9748.248046875
+504.7191772 6072.6821289063
+510.2188721 6962.052734375
+519.2223511 8869.3369140625
+519.7225342 4718.7387695313
+520.2103271 16541.169921875
+520.7109985 2730.8581542969
+524.7560425 1626.7911376953
+526.2027588 2263.7565917969
+526.7091675 1732.9114990234
+533.8047485 10959.140625
+534.2905273 10083.3759765625
+534.7897339 30336.474609375
+535.220459 1591.669921875
+539.1575928 2096.6694335938
+551.1583862 2616.3996582031
+569.1661377 2812.7487792969
+641.3411255 4872.2426757813
+643.3137207 1385.0288085938
+652.3312378 1978.6364746094
+668.3342896 1452.5230712891
+682.3339233 1898.4290771484
+683.3429565 1458.1762695313
+696.3226318 1923.4722900391
+784.5008545 6190.7158203125
+790.3800659 2451.6320800781
+819.3933716 4207.2880859375
+820.4173584 2018.9385986328
+824.4292603 11264.025390625
+869.4186401 2067.2492675781
+882.4277954 1771.7611083984
+884.423584 1570.5802001953
+885.4588623 2440.49609375
+955.4633789 7311.4379882813
+969.456604 2234.6115722656
+END IONS
+BEGIN IONS
+TITLE=controllerType=0 controllerNumber=1 scan=19944
+RTINSECONDS=2329.22502
+PEPMASS=516.783386230469
+CHARGE=2+
+72.0815811 27197.671875
+74.0610199 4197.1069335938
+84.0451736 15634.2109375
+84.0815887 26392.96875
+86.0969391 88900.34375
+87.0557785 6371.4975585938
+87.1004715 5257.353515625
+88.0400085 4621.7041015625
+101.0712738 5125.9956054688
+102.0554962 23467.248046875
+107.0487747 4362.7963867188
+110.0715256 339710.21875
+111.0756683 11064.5341796875
+112.0868912 4111.2602539063
+116.0706635 55538.3046875
+120.080925 26441.748046875
+127.0875549 4627.248046875
+129.102829 26702.419921875
+132.1021881 5254.7578125
+133.0611267 3728.3393554688
+136.0756378 91992.3203125
+137.0794525 4378.3774414063
+138.0666656 7507.4252929688
+145.5386963 6195.8090820313
+157.1097717 3760.1879882813
+159.0761414 3559.2092285156
+166.086441 5174.974609375
+169.0968933 6497.8017578125
+173.09198 66982.4140625
+180.113205 6698.7612304688
+181.0975647 20135.044921875
+182.081604 7997.3110351563
+183.1493378 16863.73046875
+197.1275787 6301.8452148438
+202.0863037 3530.7102050781
+208.1073456 25956.681640625
+209.0920258 14764.1796875
+218.0425568 28767.90234375
+229.1558533 5750.8208007813
+233.0927124 4071.7492675781
+235.1186981 36820.6640625
+243.1336212 24782.921875
+267.1106567 5503.90625
+278.1124878 4135.1215820313
+286.1757813 15374.74609375
+304.1647339 5803.3159179688
+306.0768738 3530.1059570313
+318.1595459 5520.9609375
+330.1925964 14000.76171875
+344.6773376 3574.6950683594
+356.2409973 12024.30078125
+360.2006531 46041.26171875
+360.7026062 19602.333984375
+363.6889648 16339.1533203125
+364.1605225 3471.5439453125
+365.1912537 6514.8598632813
+365.6857605 3434.3635253906
+372.6929016 23375.6328125
+374.1980286 240148.9375
+374.6990051 88531.46875
+377.6847839 18261.869140625
+378.1841431 4990.4458007813
+384.2341614 28763.40234375
+386.6903687 14500.7939453125
+398.2019958 16223.544921875
+416.7427673 8074.5288085938
+423.2320251 4371.8520507813
+425.1813965 4210.1938476563
+430.7402344 27642.935546875
+431.2440491 13417.583984375
+442.2075195 7980.6059570313
+442.2713928 4595.1391601563
+442.7108459 5553.3310546875
+448.2337952 8279.3447265625
+448.7311707 5624.8461914063
+451.2121582 8333.0185546875
+451.7119141 4570.4624023438
+457.7275391 17480.1015625
+459.2512817 48900.5546875
+459.7523804 29497.771484375
+460.2167053 5359.6381835938
+498.7574158 3551.4931640625
+499.2520752 4235.8666992188
+507.2600708 53245.89453125
+507.7609253 46670.12890625
+508.2612305 19332.828125
+516.2666626 4137.541015625
+516.7805176 58299.46875
+517.281189 36883.984375
+529.3075562 16754.47265625
+556.2666626 3977.314453125
+582.3347168 7930.2817382813
+599.2963867 5640.9077148438
+610.3297729 130150.6640625
+611.3359375 27716.517578125
+617.3026733 19406.369140625
+618.3014526 5174.8359375
+626.3168335 4723.9135742188
+635.3135986 17860.3515625
+636.3198853 4314.6948242188
+643.3532715 23298.431640625
+644.3613892 4250.1220703125
+667.2992554 8192.587890625
+685.3235474 3758.7578125
+719.3981934 13301.7373046875
+720.395752 4378.724609375
+729.3352051 7709.2412109375
+747.3901367 84267.8828125
+748.3964233 29535.37109375
+754.3642578 5714.333984375
+755.3690186 3943.5083007813
+764.3662109 6421.2250976563
+772.3707886 3762.69140625
+789.3843384 4607.880859375
+791.3812256 3588.5078125
+798.3960571 6360.8334960938
+806.4115601 30085.07421875
+832.4921875 4568.6284179688
+833.508728 4909.1865234375
+860.4714355 13005.275390625
+895.4536743 16561.779296875
+896.4584961 4322.0971679688
+END IONS
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/novel_peptides	Sun Oct 02 23:50:18 2022 +0000
@@ -0,0 +1,6 @@
+DSGASGSILEASAAR
+ELGSSDLTAR
+SPYREFTDHLVK
+RQVPEHLGP
+RPGPGTRKSL
+MTDRHAGTY
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/novel_proteins.fa	Sun Oct 02 23:50:18 2022 +0000
@@ -0,0 +1,6 @@
+>DSGASGSILEASAAR
+DSGASGSILEASAAR
+>ELGSSDLTAR
+ELGSSDLTAR
+>SPYREFTDHLVK
+SPYREFTDHLVK