diff --git a/MetaMorpheus/CMD/CMD.csproj b/MetaMorpheus/CMD/CMD.csproj
index 14333873c..2570c57f1 100644
--- a/MetaMorpheus/CMD/CMD.csproj
+++ b/MetaMorpheus/CMD/CMD.csproj
@@ -24,7 +24,7 @@
-
+
diff --git a/MetaMorpheus/CMD/Program.cs b/MetaMorpheus/CMD/Program.cs
index 50e90956a..85fa86b12 100644
--- a/MetaMorpheus/CMD/Program.cs
+++ b/MetaMorpheus/CMD/Program.cs
@@ -9,6 +9,7 @@
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
+using Omics.Modifications;
using TaskLayer;
namespace MetaMorpheusCommandLine
diff --git a/MetaMorpheus/EngineLayer/ClassicSearch/ClassicSearchEngine.cs b/MetaMorpheus/EngineLayer/ClassicSearch/ClassicSearchEngine.cs
index 3a3eb2a68..cf6a78717 100644
--- a/MetaMorpheus/EngineLayer/ClassicSearch/ClassicSearchEngine.cs
+++ b/MetaMorpheus/EngineLayer/ClassicSearch/ClassicSearchEngine.cs
@@ -1,12 +1,13 @@
using MassSpectrometry;
using MzLibUtil;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
+using Omics.Modifications;
namespace EngineLayer.ClassicSearch
{
diff --git a/MetaMorpheus/EngineLayer/ClassicSearch/MiniClassicSearchEngine.cs b/MetaMorpheus/EngineLayer/ClassicSearch/MiniClassicSearchEngine.cs
index 12f43ca29..6a3faca2d 100644
--- a/MetaMorpheus/EngineLayer/ClassicSearch/MiniClassicSearchEngine.cs
+++ b/MetaMorpheus/EngineLayer/ClassicSearch/MiniClassicSearchEngine.cs
@@ -1,7 +1,7 @@
using MassSpectrometry;
using MassSpectrometry.MzSpectra;
using MzLibUtil;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
diff --git a/MetaMorpheus/EngineLayer/CommonParameters.cs b/MetaMorpheus/EngineLayer/CommonParameters.cs
index 40aba6b44..746bfcb16 100644
--- a/MetaMorpheus/EngineLayer/CommonParameters.cs
+++ b/MetaMorpheus/EngineLayer/CommonParameters.cs
@@ -1,10 +1,11 @@
using MassSpectrometry;
using MzLibUtil;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.Reflection;
+using Omics.Fragmentation.Peptide;
namespace EngineLayer
{
diff --git a/MetaMorpheus/EngineLayer/CrosslinkSearch/CrosslinkSearchEngine.cs b/MetaMorpheus/EngineLayer/CrosslinkSearch/CrosslinkSearchEngine.cs
index 51b0cb0f1..48ea48c44 100644
--- a/MetaMorpheus/EngineLayer/CrosslinkSearch/CrosslinkSearchEngine.cs
+++ b/MetaMorpheus/EngineLayer/CrosslinkSearch/CrosslinkSearchEngine.cs
@@ -2,13 +2,15 @@
using MassSpectrometry;
using MzLibUtil;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
+using Omics.Fragmentation;
+using Omics.Modifications;
namespace EngineLayer.CrosslinkSearch
{
diff --git a/MetaMorpheus/EngineLayer/CrosslinkSearch/CrosslinkSpectralMatch.cs b/MetaMorpheus/EngineLayer/CrosslinkSearch/CrosslinkSpectralMatch.cs
index 88cbc93b3..2a65083f2 100644
--- a/MetaMorpheus/EngineLayer/CrosslinkSearch/CrosslinkSpectralMatch.cs
+++ b/MetaMorpheus/EngineLayer/CrosslinkSearch/CrosslinkSpectralMatch.cs
@@ -1,5 +1,5 @@
using Easy.Common.Extensions;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
diff --git a/MetaMorpheus/EngineLayer/CrosslinkSearch/CrosslinkedPeptides.cs b/MetaMorpheus/EngineLayer/CrosslinkSearch/CrosslinkedPeptides.cs
index 1d36753a2..ef293057e 100644
--- a/MetaMorpheus/EngineLayer/CrosslinkSearch/CrosslinkedPeptides.cs
+++ b/MetaMorpheus/EngineLayer/CrosslinkSearch/CrosslinkedPeptides.cs
@@ -1,10 +1,11 @@
using MassSpectrometry;
using Proteomics;
-using Proteomics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.Linq;
+using Omics.Fragmentation;
+using Omics.Modifications;
namespace EngineLayer.CrosslinkSearch
{
diff --git a/MetaMorpheus/EngineLayer/CrosslinkSearch/Crosslinker.cs b/MetaMorpheus/EngineLayer/CrosslinkSearch/Crosslinker.cs
index 9a9bad96f..ad59d2e17 100644
--- a/MetaMorpheus/EngineLayer/CrosslinkSearch/Crosslinker.cs
+++ b/MetaMorpheus/EngineLayer/CrosslinkSearch/Crosslinker.cs
@@ -2,6 +2,7 @@
using System.IO;
using MassSpectrometry;
using System.Globalization;
+using Omics.Modifications;
using Proteomics;
namespace EngineLayer
diff --git a/MetaMorpheus/EngineLayer/EngineLayer.csproj b/MetaMorpheus/EngineLayer/EngineLayer.csproj
index a0f70909e..f1d1a4102 100644
--- a/MetaMorpheus/EngineLayer/EngineLayer.csproj
+++ b/MetaMorpheus/EngineLayer/EngineLayer.csproj
@@ -21,7 +21,7 @@
-
+
diff --git a/MetaMorpheus/EngineLayer/FdrAnalysis/FdrAnalysisEngine.cs b/MetaMorpheus/EngineLayer/FdrAnalysis/FdrAnalysisEngine.cs
index 694133a6d..95c8bc3a8 100644
--- a/MetaMorpheus/EngineLayer/FdrAnalysis/FdrAnalysisEngine.cs
+++ b/MetaMorpheus/EngineLayer/FdrAnalysis/FdrAnalysisEngine.cs
@@ -31,7 +31,7 @@ protected override MetaMorpheusEngineResults RunSpecific()
Status("Running FDR analysis...");
DoFalseDiscoveryRateAnalysis(myAnalysisResults);
-
+ Status("Done.");
myAnalysisResults.PsmsWithin1PercentFdr = AllPsms.Count(b => b.FdrInfo.QValue <= 0.01 && !b.IsDecoy);
return myAnalysisResults;
diff --git a/MetaMorpheus/EngineLayer/FdrAnalysis/PEPValueAnalysisGeneric.cs b/MetaMorpheus/EngineLayer/FdrAnalysis/PEPValueAnalysisGeneric.cs
index 7b795feac..1a1ccc6af 100644
--- a/MetaMorpheus/EngineLayer/FdrAnalysis/PEPValueAnalysisGeneric.cs
+++ b/MetaMorpheus/EngineLayer/FdrAnalysis/PEPValueAnalysisGeneric.cs
@@ -5,7 +5,7 @@
using Microsoft.ML;
using Microsoft.ML.Data;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using Proteomics.RetentionTimePrediction;
using System;
@@ -15,6 +15,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Omics.Modifications;
namespace EngineLayer
{
diff --git a/MetaMorpheus/EngineLayer/GlobalVariables.cs b/MetaMorpheus/EngineLayer/GlobalVariables.cs
index 5d27c34f1..96efe5960 100644
--- a/MetaMorpheus/EngineLayer/GlobalVariables.cs
+++ b/MetaMorpheus/EngineLayer/GlobalVariables.cs
@@ -11,6 +11,7 @@
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
+using Omics.Modifications;
using TopDownProteomics;
using UsefulProteomicsDatabases;
diff --git a/MetaMorpheus/EngineLayer/GlycoSearch/Glycan.cs b/MetaMorpheus/EngineLayer/GlycoSearch/Glycan.cs
index f7a7c21a4..0ce4f1361 100644
--- a/MetaMorpheus/EngineLayer/GlycoSearch/Glycan.cs
+++ b/MetaMorpheus/EngineLayer/GlycoSearch/Glycan.cs
@@ -5,6 +5,7 @@
using System;
using Proteomics;
using MassSpectrometry;
+using Omics.Modifications;
namespace EngineLayer
{
diff --git a/MetaMorpheus/EngineLayer/GlycoSearch/GlycanBox.cs b/MetaMorpheus/EngineLayer/GlycoSearch/GlycanBox.cs
index e7d5200cf..9a1d0f5d2 100644
--- a/MetaMorpheus/EngineLayer/GlycoSearch/GlycanBox.cs
+++ b/MetaMorpheus/EngineLayer/GlycoSearch/GlycanBox.cs
@@ -5,6 +5,7 @@
using System;
using Proteomics;
using MassSpectrometry;
+using Omics.Modifications;
namespace EngineLayer
{
diff --git a/MetaMorpheus/EngineLayer/GlycoSearch/GlycoPeptides.cs b/MetaMorpheus/EngineLayer/GlycoSearch/GlycoPeptides.cs
index 9a63b3d5f..9a90f79ce 100644
--- a/MetaMorpheus/EngineLayer/GlycoSearch/GlycoPeptides.cs
+++ b/MetaMorpheus/EngineLayer/GlycoSearch/GlycoPeptides.cs
@@ -1,11 +1,12 @@
using MassSpectrometry;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.Linq;
using Chemistry;
+using Omics.Modifications;
namespace EngineLayer.GlycoSearch
{
diff --git a/MetaMorpheus/EngineLayer/GlycoSearch/GlycoSearchEngine.cs b/MetaMorpheus/EngineLayer/GlycoSearch/GlycoSearchEngine.cs
index c6f30f69b..3a859f859 100644
--- a/MetaMorpheus/EngineLayer/GlycoSearch/GlycoSearchEngine.cs
+++ b/MetaMorpheus/EngineLayer/GlycoSearch/GlycoSearchEngine.cs
@@ -1,7 +1,7 @@
using EngineLayer.ModernSearch;
using MzLibUtil;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
diff --git a/MetaMorpheus/EngineLayer/GlycoSearch/GlycoSpectralMatch.cs b/MetaMorpheus/EngineLayer/GlycoSearch/GlycoSpectralMatch.cs
index 0b32f1001..cadd62268 100644
--- a/MetaMorpheus/EngineLayer/GlycoSearch/GlycoSpectralMatch.cs
+++ b/MetaMorpheus/EngineLayer/GlycoSearch/GlycoSpectralMatch.cs
@@ -1,9 +1,10 @@
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
+using Omics.Modifications;
using Proteomics;
namespace EngineLayer.GlycoSearch
@@ -140,119 +141,40 @@ public static string GetTabSepHeaderSingle()
sb.Append("Matched Ion Mass Diff (Da)" + '\t');
sb.Append("Matched Ion Mass Diff (Ppm)" + '\t');
sb.Append("Matched Ion Intensities" + '\t');
+
sb.Append("Matched Ion Counts" + '\t');
sb.Append("Decoy/Contaminant/Target" + '\t');
sb.Append("QValue" + '\t');
sb.Append("PEP" + '\t');
- sb.Append("PEP_QValue" + '\t');
+ sb.Append("PEP_QValue");
return sb.ToString();
}
- public static string GetTabSepHeaderOGlyco()
+ public static string GetTabSeperatedHeaderGlyco()
{
var sb = new StringBuilder();
- sb.Append("File Name" + '\t');
- sb.Append("Scan Number" + '\t');
- sb.Append("Scan Retention Time" + '\t');
- sb.Append("Precursor Scan Number" + '\t');
- sb.Append("Precursor MZ" + '\t');
- sb.Append("Precursor Charge" + '\t');
- sb.Append("Precursor Mass" + '\t');
-
- sb.Append("Protein Accession" + '\t');
- sb.Append("Organism" + '\t');
- sb.Append("Protein Name" + '\t');
- sb.Append("Start and End Residues In Protein" + '\t');
- sb.Append("Base Sequence" + '\t');
- sb.Append("FlankingResidues" + '\t');
- sb.Append("Full Sequence" + '\t');
- sb.Append("Number of Mods" + '\t');
- sb.Append("Peptide Monoisotopic Mass" + '\t');
- sb.Append("Score" + '\t');
- sb.Append("Rank" + '\t');
-
- sb.Append("Matched Ion Series" + '\t');
- sb.Append("Matched Ion Mass-To-Charge Ratios" + '\t');
- sb.Append("Matched Ion Mass Diff (Da)" + '\t');
- sb.Append("Matched Ion Mass Diff (Ppm)" + '\t');
- sb.Append("Matched Ion Intensities" + '\t');
- sb.Append("Matched Ion Counts" + '\t');
-
- sb.Append("Decoy/Contaminant/Target" + '\t');
- sb.Append("QValue" + '\t');
- sb.Append("PEP" + '\t');
- sb.Append("PEP_QValue" + '\t');
-
+ sb.Append("\t");//provides the separation needed from GetTabSepHeaderSingle()
sb.Append("Localization Score" + '\t');
sb.Append("Yion Score" + '\t');
sb.Append("DiagonosticIon Score" + '\t');
- sb.Append("Plausible Number Of Glycans" + '\t');
- sb.Append("Total Glycosylation sites" + '\t');
+ sb.Append("Plausible Number Of Glycans" + '\t');//Not used for N-Glyco
+ sb.Append("Total Glycosylation sites" + '\t');//Not used for N-Glyco
sb.Append("GlycanMass" + '\t');
sb.Append("Plausible GlycanComposition" + '\t');
- sb.Append("N-Glycan motif Check" + '\t');
+ sb.Append("N-Glycan motif Check" + '\t');//Not used for N-Glyco
sb.Append("R138/144" + '\t');
sb.Append("Plausible GlycanStructure" + '\t');
sb.Append("GlycanLocalizationLevel" + '\t');
sb.Append("Localized Glycans with Peptide Site Specific Probability" + '\t');
sb.Append("Localized Glycans with Protein Site Specific Probability" + '\t');
- sb.Append("All potential glycan localizations" + '\t');
- sb.Append("AllSiteSpecificLocalizationProbability" + '\t');
+ sb.Append("All potential glycan localizations" + '\t');//Not used for N-Glyco
+ sb.Append("AllSiteSpecificLocalizationProbability");//Not used for N-Glyco
return sb.ToString();
}
- public static string GetTabSepHeaderNGlyco()
- {
- var sb = new StringBuilder();
- sb.Append("File Name" + '\t');
- sb.Append("Scan Number" + '\t');
- sb.Append("Scan Retention Time" + '\t');
- sb.Append("Precursor Scan Number" + '\t');
- sb.Append("Precursor MZ" + '\t');
- sb.Append("Precursor Charge" + '\t');
- sb.Append("Precursor Mass" + '\t');
-
- sb.Append("Protein Accession" + '\t');
- sb.Append("Organism" + '\t');
- sb.Append("Protein Name" + '\t');
- sb.Append("Start and End Residues In Protein" + '\t');
- sb.Append("Base Sequence" + '\t');
- sb.Append("FlankingResidues" + '\t');
- sb.Append("Full Sequence" + '\t');
- sb.Append("Number of Mods" + '\t');
- sb.Append("Peptide Monoisotopic Mass" + '\t');
- sb.Append("Score" + '\t');
- sb.Append("Rank" + '\t');
-
- sb.Append("Matched Ion Series" + '\t');
- sb.Append("Matched Ion Mass-To-Charge Ratios" + '\t');
- sb.Append("Matched Ion Mass Diff (Da)" + '\t');
- sb.Append("Matched Ion Mass Diff (Ppm)" + '\t');
- sb.Append("Matched Ion Intensities" + '\t');
- sb.Append("Matched Ion Counts" + '\t');
-
- sb.Append("Decoy/Contaminant/Target" + '\t');
- sb.Append("QValue" + '\t');
- sb.Append("PEP" + '\t');
- sb.Append("PEP_QValue" + '\t');
-
- sb.Append("Localization Score" + '\t');
- sb.Append("Yion Score" + '\t');
- sb.Append("DiagonosticIon Score" + '\t');
- sb.Append("GlycanMass" + '\t');
- sb.Append("Plausible GlycanComposition" + '\t');
- sb.Append("R138/144" + '\t');
- sb.Append("Plausible GlycanStructure" + '\t');
- sb.Append("GlycanLocalizationLevel" + '\t');
- sb.Append("Localized Glycans with Peptide Site Specific Probability" + '\t');
- sb.Append("Localized Glycans with Protein Site Specific Probability" + '\t');
-
- return sb.ToString();
- }
-
- public override string ToString()
+ public string SingleToString()
{
var sb = new StringBuilder();
sb.Append(FullFilePath + "\t");
@@ -328,31 +250,25 @@ public override string ToString()
sb.Append(FdrInfo!=null? FdrInfo.QValue.ToString() : "-1" ); sb.Append("\t");
- sb.Append("0" + "\t");
+ sb.Append("0" + "\t"); //This is space for PEP
- sb.Append("0" + "\t");
+ sb.Append("0"); //This is space for PEP Q-value
- if (NGlycan != null)
- {
- sb.Append(PeptideScore + "\t");
- sb.Append(GlycanScore + "\t");
- sb.Append(DiagnosticIonScore + "\t");
- sb.Append((double)NGlycan.First().Mass / 1E5); sb.Append("\t");
- sb.Append(Glycan.GetKindString(NGlycan.First().Kind)); sb.Append("\t");
- sb.Append(R138vs144.ToString()); sb.Append("\t");
- if (NGlycan.First().Struc!=null)
- {
- sb.Append(NGlycan.First().Struc); sb.Append("\t");
- }
- }
+ return sb.ToString();
+ }
+
+ //This should be appended to SingleToString
+ public string GlycoToString()
+ {
+ var sb = new StringBuilder();
- if (Routes != null)
+ if (Routes != null)//this gets the o-glyco
{
sb.Append(LocalizationGraphs.First().TotalScore + "\t");
sb.Append(GlycanScore + "\t");
- sb.Append(DiagnosticIonScore + "\t");
+ sb.Append(DiagnosticIonScore + "\t");
var glycanBox = GlycanBox.OGlycanBoxes[Routes.First().ModBoxId];
@@ -377,16 +293,14 @@ public override string ToString()
glycans[i] = GlycanBox.GlobalOGlycans[glycanBox.ModIds[i]];
}
- if (glycans.First().Struc!=null)
+ if (glycans.First().Struc != null)
{
- sb.Append(string.Join(",", glycans.Select(p => p.Struc.ToString()).ToArray()));
+ sb.Append(string.Join(",", glycans.Select(p => p.Struc.ToString()).ToArray()));
}
sb.Append("\t");
- sb.Append(CorrectLocalizationLevel(SiteSpeciLocalProb, LocalizationGraphs.First(), Routes.First(), LocalizedGlycan, LocalizationLevel)) ; sb.Append("\t");
+ sb.Append(CorrectLocalizationLevel(SiteSpeciLocalProb, LocalizationGraphs.First(), Routes.First(), LocalizedGlycan, LocalizationLevel)); sb.Append("\t");
- //string localizedGlycan = LocalizedGlycan.Where(p=>p.Item3).Count() > 0 ? "[" + string.Join(",", LocalizedGlycan.Where(p => p.Item3).Select(p => p.Item1.ToString() + "-" + p.Item2.ToString())) + "]" : "";
- //sb.Append(localizedGlycan); sb.Append("\t");
string local_peptide = "";
string local_protein = "";
LocalizedSiteSpeciLocalInfo(SiteSpeciLocalProb, LocalizedGlycan, OneBasedStartResidueInProtein, ref local_peptide, ref local_protein);
@@ -397,10 +311,45 @@ public override string ToString()
sb.Append(SiteSpeciLocalInfo(SiteSpeciLocalProb));
}
+ else if (GlycanScore > 0)//this gets the N-glcyo that remain
+ {
+ sb.Append("\t"); //Localization score
+
+ sb.Append(GlycanScore + "\t");
+
+ sb.Append(DiagnosticIonScore + "\t");
+
+ sb.Append("\t"); //number of mods
+
+ sb.Append( "\t"); //mod pos length
+ sb.Append((double)NGlycan.First().Mass / 1E5 + "\t");
+
+ sb.Append(Glycan.GetKindString(NGlycan.First().Kind) + "\t");
+
+ var NSiteExist = MotifExist(BaseSequence, new string[] { "Nxt", "Nxs" });
+
+ sb.Append(NSiteExist); sb.Append("\t");
+
+ sb.Append(R138vs144.ToString()); sb.Append("\t");
+
+ if (NGlycan.First().Struc != null)
+ {
+ sb.Append(NGlycan.First().Struc);
+ }
+ sb.Append("\t");
+
+ sb.Append("\t");
+
+ sb.Append("\t");
+ sb.Append("\t");
+
+ sb.Append("\t");
+
+ sb.Append(SiteSpeciLocalInfo(SiteSpeciLocalProb));
+ }
return sb.ToString();
}
-
public static Dictionary MatchedIonDataDictionary(List matchedFragmentIons)
{
Dictionary s = new Dictionary();
diff --git a/MetaMorpheus/EngineLayer/GlycoSearch/LocalizationGraph.cs b/MetaMorpheus/EngineLayer/GlycoSearch/LocalizationGraph.cs
index 44a470fcf..3d56c5cd0 100644
--- a/MetaMorpheus/EngineLayer/GlycoSearch/LocalizationGraph.cs
+++ b/MetaMorpheus/EngineLayer/GlycoSearch/LocalizationGraph.cs
@@ -1,7 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using Proteomics;
using MzLibUtil;
diff --git a/MetaMorpheus/EngineLayer/Gptmd/GptmdEngine.cs b/MetaMorpheus/EngineLayer/Gptmd/GptmdEngine.cs
index 71b103a29..a4dcfff62 100644
--- a/MetaMorpheus/EngineLayer/Gptmd/GptmdEngine.cs
+++ b/MetaMorpheus/EngineLayer/Gptmd/GptmdEngine.cs
@@ -4,6 +4,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using Omics.Modifications;
namespace EngineLayer.Gptmd
{
diff --git a/MetaMorpheus/EngineLayer/Gptmd/GptmdResults.cs b/MetaMorpheus/EngineLayer/Gptmd/GptmdResults.cs
index 797c4249e..1f457d4e5 100644
--- a/MetaMorpheus/EngineLayer/Gptmd/GptmdResults.cs
+++ b/MetaMorpheus/EngineLayer/Gptmd/GptmdResults.cs
@@ -3,6 +3,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
+using Omics.Modifications;
namespace EngineLayer.Gptmd
{
diff --git a/MetaMorpheus/EngineLayer/HistogramAnalysis/Bin.cs b/MetaMorpheus/EngineLayer/HistogramAnalysis/Bin.cs
index 88abe91e8..c1c81590b 100644
--- a/MetaMorpheus/EngineLayer/HistogramAnalysis/Bin.cs
+++ b/MetaMorpheus/EngineLayer/HistogramAnalysis/Bin.cs
@@ -4,6 +4,7 @@
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
+using Omics.Modifications;
namespace EngineLayer.HistogramAnalysis
{
diff --git a/MetaMorpheus/EngineLayer/HistogramAnalysis/BinTreeStructure.cs b/MetaMorpheus/EngineLayer/HistogramAnalysis/BinTreeStructure.cs
index f74e35e7c..8da75929d 100644
--- a/MetaMorpheus/EngineLayer/HistogramAnalysis/BinTreeStructure.cs
+++ b/MetaMorpheus/EngineLayer/HistogramAnalysis/BinTreeStructure.cs
@@ -4,7 +4,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
namespace EngineLayer.HistogramAnalysis
{
diff --git a/MetaMorpheus/EngineLayer/Indexing/IndexingEngine.cs b/MetaMorpheus/EngineLayer/Indexing/IndexingEngine.cs
index 9a580f38e..c586fa394 100644
--- a/MetaMorpheus/EngineLayer/Indexing/IndexingEngine.cs
+++ b/MetaMorpheus/EngineLayer/Indexing/IndexingEngine.cs
@@ -1,7 +1,7 @@
using Chemistry;
using EngineLayer.NonSpecificEnzymeSearch;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
@@ -9,6 +9,8 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Omics.Fragmentation.Peptide;
+using Omics.Modifications;
using UsefulProteomicsDatabases;
namespace EngineLayer.Indexing
@@ -258,9 +260,19 @@ private void AddInteriorTerminalModsToPrecursorIndex(List[] precursorIndex,
foreach (KeyValuePair> relevantDatabaseMod in databaseAnnotatedMods)
{
int fragmentNumber = relevantDatabaseMod.Key;
- Product fragmentAtIndex = fragmentMasses.Where(x => x.FragmentNumber == fragmentNumber).FirstOrDefault();
- double basePrecursorMass = fragmentAtIndex.NeutralMass == default(Product).NeutralMass ?
- peptide.MonoisotopicMass : fragmentAtIndex.NeutralMass - DissociationTypeCollection.GetMassShiftFromProductType(fragmentAtIndex.ProductType) + WaterMonoisotopicMass;
+ Product fragmentAtIndex = fragmentMasses.FirstOrDefault(x => x.FragmentNumber == fragmentNumber);
+
+ double basePrecursorMass;
+ if (fragmentAtIndex is null)
+ {
+ basePrecursorMass = peptide.MonoisotopicMass;
+ }
+ else
+ {
+ basePrecursorMass = fragmentAtIndex.NeutralMass -
+ DissociationTypeCollection.GetMassShiftFromProductType(fragmentAtIndex.ProductType) +
+ WaterMonoisotopicMass;
+ }
foreach (Modification mod in relevantDatabaseMod.Value)
{
diff --git a/MetaMorpheus/EngineLayer/Indexing/IndexingResults.cs b/MetaMorpheus/EngineLayer/Indexing/IndexingResults.cs
index 35c87d958..5f926c3a8 100644
--- a/MetaMorpheus/EngineLayer/Indexing/IndexingResults.cs
+++ b/MetaMorpheus/EngineLayer/Indexing/IndexingResults.cs
@@ -1,4 +1,4 @@
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System.Collections.Generic;
using System.Text;
diff --git a/MetaMorpheus/EngineLayer/Localization/LocalizationEngine.cs b/MetaMorpheus/EngineLayer/Localization/LocalizationEngine.cs
index d336c3a13..f4b03445c 100644
--- a/MetaMorpheus/EngineLayer/Localization/LocalizationEngine.cs
+++ b/MetaMorpheus/EngineLayer/Localization/LocalizationEngine.cs
@@ -1,5 +1,5 @@
using MassSpectrometry;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System.Collections.Concurrent;
using System.Collections.Generic;
@@ -58,7 +58,7 @@ protected override MetaMorpheusEngineResults RunSpecific()
for (int r = 0; r < peptide.Length; r++)
{
// create new PeptideWithSetMods with unidentified mass difference at the given residue
- PeptideWithSetModifications peptideWithLocalizedMassDiff = peptide.Localize(r, massDifference);
+ var peptideWithLocalizedMassDiff = peptide.Localize(r, massDifference);
// this is the list of theoretical products for this peptide with mass-difference on this residue
peptideWithLocalizedMassDiff.Fragment(CommonParameters.DissociationType, CommonParameters.DigestionParams.FragmentationTerminus, productsWithLocalizedMassDiff);
diff --git a/MetaMorpheus/EngineLayer/MetaMorpheusEngine.cs b/MetaMorpheus/EngineLayer/MetaMorpheusEngine.cs
index 8afbc1647..4569b5367 100644
--- a/MetaMorpheus/EngineLayer/MetaMorpheusEngine.cs
+++ b/MetaMorpheus/EngineLayer/MetaMorpheusEngine.cs
@@ -2,7 +2,7 @@
using MassSpectrometry;
using Microsoft.ML.Trainers.FastTree;
using MzLibUtil;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Concurrent;
@@ -10,6 +10,7 @@
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
+using Omics.Fragmentation;
namespace EngineLayer
{
@@ -162,7 +163,7 @@ public static List MatchFragmentIons(Ms2ScanWithSpecificMass
if (commonParameters.ProductMassTolerance.Within(scan.TheScan.MassSpectrum.XArray[closestMzIndex], theoreticalFragmentMz))
{
- matchedFragmentIons.Add(new MatchedFragmentIon(ref product, theoreticalFragmentMz, scan.TheScan.MassSpectrum.YArray[closestMzIndex], 1));
+ matchedFragmentIons.Add(new MatchedFragmentIon(product, theoreticalFragmentMz, scan.TheScan.MassSpectrum.YArray[closestMzIndex], 1));
}
}
@@ -192,7 +193,7 @@ public static List MatchFragmentIons(Ms2ScanWithSpecificMass
// is the mass error acceptable?
if (closestExperimentalMass != null && commonParameters.ProductMassTolerance.Within(closestExperimentalMass.MonoisotopicMass, product.NeutralMass) && closestExperimentalMass.Charge <= scan.PrecursorCharge)//TODO apply this filter before picking the envelope
{
- matchedFragmentIons.Add(new MatchedFragmentIon(ref product, closestExperimentalMass.MonoisotopicMass.ToMz(closestExperimentalMass.Charge),
+ matchedFragmentIons.Add(new MatchedFragmentIon(product, closestExperimentalMass.MonoisotopicMass.ToMz(closestExperimentalMass.Charge),
closestExperimentalMass.Peaks.First().intensity, closestExperimentalMass.Charge));
}
}
@@ -222,7 +223,7 @@ public static List MatchFragmentIons(Ms2ScanWithSpecificMass
//found the peak, but we don't want to save that m/z because it's the complementary of the observed ion that we "added". Need to create a fake ion instead.
double mz = (scan.PrecursorMass + protonMassShift - closestExperimentalMass.MonoisotopicMass).ToMz(closestExperimentalMass.Charge);
- matchedFragmentIons.Add(new MatchedFragmentIon(ref product, mz, closestExperimentalMass.TotalIntensity, closestExperimentalMass.Charge));
+ matchedFragmentIons.Add(new MatchedFragmentIon(product, mz, closestExperimentalMass.TotalIntensity, closestExperimentalMass.Charge));
}
}
}
@@ -266,7 +267,7 @@ private static List MatchFragmentIonsOfAllCharges(Ms2ScanWit
if (x != null && !ions.Contains(ion) && commonParameters.ProductMassTolerance.Within(x.MonoisotopicMass, product.NeutralMass) && x.Charge <= scan.PrecursorCharge)//TODO apply this filter before picking the envelope
{
Product temProduct = product;
- matchedFragmentIons.Add(new MatchedFragmentIon(ref temProduct, x.MonoisotopicMass.ToMz(x.Charge),
+ matchedFragmentIons.Add(new MatchedFragmentIon(temProduct, x.MonoisotopicMass.ToMz(x.Charge),
x.Peaks.First().intensity, x.Charge));
ions.Add(ion);
diff --git a/MetaMorpheus/EngineLayer/ModernSearch/ModernSearchEngine.cs b/MetaMorpheus/EngineLayer/ModernSearch/ModernSearchEngine.cs
index 0275879c9..8bf1666cf 100644
--- a/MetaMorpheus/EngineLayer/ModernSearch/ModernSearchEngine.cs
+++ b/MetaMorpheus/EngineLayer/ModernSearch/ModernSearchEngine.cs
@@ -1,6 +1,6 @@
using Chemistry;
using MassSpectrometry;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
diff --git a/MetaMorpheus/EngineLayer/NonSpecificEnzymeSearch/NonSpecificEnzymeSearchEngine.cs b/MetaMorpheus/EngineLayer/NonSpecificEnzymeSearch/NonSpecificEnzymeSearchEngine.cs
index 1b211f51b..b35eb8f15 100644
--- a/MetaMorpheus/EngineLayer/NonSpecificEnzymeSearch/NonSpecificEnzymeSearchEngine.cs
+++ b/MetaMorpheus/EngineLayer/NonSpecificEnzymeSearch/NonSpecificEnzymeSearchEngine.cs
@@ -2,7 +2,7 @@
using EngineLayer.FdrAnalysis;
using EngineLayer.ModernSearch;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using MassSpectrometry;
@@ -10,6 +10,9 @@
using System.Linq;
using System.Threading.Tasks;
using MzLibUtil;
+using Omics.Digestion;
+using Omics.Fragmentation.Peptide;
+using Omics.Modifications;
namespace EngineLayer.NonSpecificEnzymeSearch
{
diff --git a/MetaMorpheus/EngineLayer/PeptideSpectralMatch.cs b/MetaMorpheus/EngineLayer/PeptideSpectralMatch.cs
index abe52ebf1..ba65d0c1a 100644
--- a/MetaMorpheus/EngineLayer/PeptideSpectralMatch.cs
+++ b/MetaMorpheus/EngineLayer/PeptideSpectralMatch.cs
@@ -3,13 +3,15 @@
using EngineLayer.FdrAnalysis;
using MassSpectrometry;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Runtime.CompilerServices;
using Easy.Common.Extensions;
+using Omics;
+using Omics.Modifications;
using Proteomics.AminoAcidPolymer;
using ThermoFisher.CommonCore.Data;
diff --git a/MetaMorpheus/EngineLayer/ProteinParsimony/ParsimonySequence.cs b/MetaMorpheus/EngineLayer/ProteinParsimony/ParsimonySequence.cs
index 053b8436d..139670fe2 100644
--- a/MetaMorpheus/EngineLayer/ProteinParsimony/ParsimonySequence.cs
+++ b/MetaMorpheus/EngineLayer/ProteinParsimony/ParsimonySequence.cs
@@ -1,29 +1,30 @@
-using Proteomics.ProteolyticDigestion;
+using Omics;
+using Omics.Digestion;
namespace EngineLayer.ProteinParsimony
{
internal class ParsimonySequence
{
- public ParsimonySequence(PeptideWithSetModifications pwsm, bool TreatModPeptidesAsDifferentPeptides)
+ public ParsimonySequence(IBioPolymerWithSetMods pwsm, bool TreatModPeptidesAsDifferentPeptides)
{
Sequence = TreatModPeptidesAsDifferentPeptides ? pwsm.FullSequence : pwsm.BaseSequence;
- Protease = pwsm.DigestionParams.Protease;
+ DigestionAgent = pwsm.DigestionParams.DigestionAgent;
}
public string Sequence { get; }
- public Protease Protease { get; }
+ public DigestionAgent DigestionAgent { get; }
public override bool Equals(object obj)
{
ParsimonySequence other = (ParsimonySequence)obj;
return other != null
&& (Sequence == null && other.Sequence == null || Sequence.Equals(other.Sequence))
- && (Protease == null && other.Protease == null || Protease.Equals(other.Protease));
+ && (DigestionAgent == null && other.DigestionAgent == null || DigestionAgent.Equals(other.DigestionAgent));
}
public override int GetHashCode()
{
- return Sequence.GetHashCode() ^ Protease.GetHashCode();
+ return Sequence.GetHashCode() ^ DigestionAgent.GetHashCode();
}
}
}
\ No newline at end of file
diff --git a/MetaMorpheus/EngineLayer/ProteinParsimony/ProteinGroup.cs b/MetaMorpheus/EngineLayer/ProteinParsimony/ProteinGroup.cs
index 48173d5db..b8252a28c 100644
--- a/MetaMorpheus/EngineLayer/ProteinParsimony/ProteinGroup.cs
+++ b/MetaMorpheus/EngineLayer/ProteinParsimony/ProteinGroup.cs
@@ -5,6 +5,7 @@
using System.IO;
using System.Linq;
using System.Text;
+using Omics.Modifications;
using ThermoFisher.CommonCore.Data;
namespace EngineLayer
diff --git a/MetaMorpheus/EngineLayer/ProteinParsimony/ProteinParsimonyEngine.cs b/MetaMorpheus/EngineLayer/ProteinParsimony/ProteinParsimonyEngine.cs
index d94696eef..6139fcd7c 100644
--- a/MetaMorpheus/EngineLayer/ProteinParsimony/ProteinParsimonyEngine.cs
+++ b/MetaMorpheus/EngineLayer/ProteinParsimony/ProteinParsimonyEngine.cs
@@ -1,11 +1,12 @@
using EngineLayer.ProteinParsimony;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
+using IDigestionParams = Omics.Digestion.IDigestionParams;
namespace EngineLayer
{
@@ -156,8 +157,8 @@ private List RunProteinParsimonyEngine()
// this gets the digestion info for all of the peptide-protein associations that should exist
var proteinToPeptideInfo = new Dictionary();
+ (IDigestionParams DigestParams, int OneBasedStart, int OneBasedEnd, int MissedCleavages, int Notch,
+ Omics.Digestion.CleavageSpecificity CleavageSpecificity)>();
foreach (PeptideSpectralMatch psm in baseSequence.Value)
{
@@ -218,7 +219,7 @@ private List RunProteinParsimonyEngine()
}
// Parsimony stage 1: add proteins with unique peptides (for each protease)
- var peptidesGroupedByProtease = _fdrFilteredPeptides.GroupBy(p => p.DigestionParams.Protease);
+ var peptidesGroupedByProtease = _fdrFilteredPeptides.GroupBy(p => p.DigestionParams.DigestionAgent);
foreach (var peptidesForThisProtease in peptidesGroupedByProtease)
{
Dictionary> peptideSequenceToProteinsForThisProtease = new Dictionary>();
diff --git a/MetaMorpheus/EngineLayer/ProteinScoringAndFdr/FdrClassifier.cs b/MetaMorpheus/EngineLayer/ProteinScoringAndFdr/FdrClassifier.cs
index 115853f19..dce5762a2 100644
--- a/MetaMorpheus/EngineLayer/ProteinScoringAndFdr/FdrClassifier.cs
+++ b/MetaMorpheus/EngineLayer/ProteinScoringAndFdr/FdrClassifier.cs
@@ -2,6 +2,7 @@
using System;
using System.Collections.Generic;
using System.Text;
+using Omics.Digestion;
namespace EngineLayer
{
diff --git a/MetaMorpheus/EngineLayer/ProteinScoringAndFdr/ProteinScoringAndFdrEngine.cs b/MetaMorpheus/EngineLayer/ProteinScoringAndFdr/ProteinScoringAndFdrEngine.cs
index 52c507589..28924565d 100644
--- a/MetaMorpheus/EngineLayer/ProteinScoringAndFdr/ProteinScoringAndFdrEngine.cs
+++ b/MetaMorpheus/EngineLayer/ProteinScoringAndFdr/ProteinScoringAndFdrEngine.cs
@@ -91,8 +91,8 @@ private void ScoreProteinGroups(List proteinGroups, IEnumerable(p.AllPeptides.Select(x => x.FullSequence + x.DigestionParams.Protease));
- var seqs2 = new HashSet(pg[i].AllPeptides.Select(x => x.FullSequence + x.DigestionParams.Protease));
+ var seqs1 = new HashSet(p.AllPeptides.Select(x => x.FullSequence + x.DigestionParams.DigestionAgent));
+ var seqs2 = new HashSet(pg[i].AllPeptides.Select(x => x.FullSequence + x.DigestionParams.DigestionAgent));
if (p != pg[i] && seqs1.SetEquals(seqs2))
{
diff --git a/MetaMorpheus/EngineLayer/PsmTsv/PsmFromTsv.cs b/MetaMorpheus/EngineLayer/PsmTsv/PsmFromTsv.cs
index 383d98fe8..92ca7a74b 100644
--- a/MetaMorpheus/EngineLayer/PsmTsv/PsmFromTsv.cs
+++ b/MetaMorpheus/EngineLayer/PsmTsv/PsmFromTsv.cs
@@ -1,5 +1,4 @@
using Chemistry;
-using Proteomics.Fragmentation;
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -10,6 +9,8 @@
using Easy.Common.Extensions;
using System.Text;
using MathNet.Numerics;
+using Omics.Fragmentation;
+using Omics.Fragmentation.Peptide;
namespace EngineLayer
{
@@ -511,7 +512,7 @@ private static List ReadFragmentIonsFromString(string matche
secondaryProductType,
secondaryFragmentNumber);
- matchedIons.Add(new MatchedFragmentIon(ref theoreticalProduct, mz, intensity, z));
+ matchedIons.Add(new MatchedFragmentIon(theoreticalProduct, mz, intensity, z));
}
}
return matchedIons;
@@ -629,7 +630,7 @@ public LibrarySpectrum ToLibrarySpectrum()
foreach (MatchedFragmentIon ion in this.MatchedIons)
{
Product product = new Product(ion.NeutralTheoreticalProduct.ProductType, ion.NeutralTheoreticalProduct.Terminus, ion.NeutralTheoreticalProduct.NeutralMass, ion.NeutralTheoreticalProduct.FragmentNumber, ion.NeutralTheoreticalProduct.AminoAcidPosition, ion.NeutralTheoreticalProduct.NeutralLoss);
- fragments.Add(new MatchedFragmentIon(ref product, ion.Mz, ion.Intensity / matchedIonIntensitySum, ion.Charge));
+ fragments.Add(new MatchedFragmentIon(product, ion.Mz, ion.Intensity / matchedIonIntensitySum, ion.Charge));
}
double retentionTime = RetentionTime ?? -1;
@@ -639,7 +640,7 @@ public LibrarySpectrum ToLibrarySpectrum()
foreach(var ion in BetaPeptideMatchedIons)
{
Product product = new Product(ion.NeutralTheoreticalProduct.ProductType, ion.NeutralTheoreticalProduct.Terminus, ion.NeutralTheoreticalProduct.NeutralMass, ion.NeutralTheoreticalProduct.FragmentNumber, ion.NeutralTheoreticalProduct.AminoAcidPosition, ion.NeutralTheoreticalProduct.NeutralLoss);
- betaFragments.Add(new MatchedFragmentIon(ref product, ion.Mz, ion.Intensity / matchedIonIntensitySum, ion.Charge));
+ betaFragments.Add(new MatchedFragmentIon(product, ion.Mz, ion.Intensity / matchedIonIntensitySum, ion.Charge));
}
string uniqueSequence = UniqueSequence ?? FullSequence + BetaPeptideFullSequence;
return new CrosslinkLibrarySpectrum(uniqueSequence, PrecursorMz, PrecursorCharge, fragments, retentionTime, betaFragments);
diff --git a/MetaMorpheus/EngineLayer/PsmTsv/PsmTsvWriter.cs b/MetaMorpheus/EngineLayer/PsmTsv/PsmTsvWriter.cs
index 509af5e42..fa2dfbb54 100644
--- a/MetaMorpheus/EngineLayer/PsmTsv/PsmTsvWriter.cs
+++ b/MetaMorpheus/EngineLayer/PsmTsv/PsmTsvWriter.cs
@@ -1,6 +1,6 @@
using Chemistry;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
@@ -8,6 +8,8 @@
using System.IO;
using System.Linq;
using System.Text;
+using Omics;
+using Omics.Modifications;
namespace EngineLayer
{
diff --git a/MetaMorpheus/EngineLayer/Silac/SilacConversions.cs b/MetaMorpheus/EngineLayer/Silac/SilacConversions.cs
index 872386832..5b7a90dbe 100644
--- a/MetaMorpheus/EngineLayer/Silac/SilacConversions.cs
+++ b/MetaMorpheus/EngineLayer/Silac/SilacConversions.cs
@@ -5,6 +5,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using Omics.Modifications;
namespace EngineLayer
{
diff --git a/MetaMorpheus/EngineLayer/SpectralLibrarySearch/CrosslinkLibrarySpectrum.cs b/MetaMorpheus/EngineLayer/SpectralLibrarySearch/CrosslinkLibrarySpectrum.cs
index 2c84683ab..b2985e658 100644
--- a/MetaMorpheus/EngineLayer/SpectralLibrarySearch/CrosslinkLibrarySpectrum.cs
+++ b/MetaMorpheus/EngineLayer/SpectralLibrarySearch/CrosslinkLibrarySpectrum.cs
@@ -1,4 +1,4 @@
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/MetaMorpheus/EngineLayer/SpectralLibrarySearch/LibrarySpectrum.cs b/MetaMorpheus/EngineLayer/SpectralLibrarySearch/LibrarySpectrum.cs
index 63d857054..4311a71de 100644
--- a/MetaMorpheus/EngineLayer/SpectralLibrarySearch/LibrarySpectrum.cs
+++ b/MetaMorpheus/EngineLayer/SpectralLibrarySearch/LibrarySpectrum.cs
@@ -1,4 +1,4 @@
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using System.Collections.Generic;
using System.Linq;
using System.Text;
diff --git a/MetaMorpheus/EngineLayer/SpectralLibrarySearch/SpectralLibrary.cs b/MetaMorpheus/EngineLayer/SpectralLibrarySearch/SpectralLibrary.cs
index de68ddefa..477f9c092 100644
--- a/MetaMorpheus/EngineLayer/SpectralLibrarySearch/SpectralLibrary.cs
+++ b/MetaMorpheus/EngineLayer/SpectralLibrarySearch/SpectralLibrary.cs
@@ -1,6 +1,6 @@
using Chemistry;
using MzLibUtil;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -10,6 +10,7 @@
using System.Text;
using System.Text.RegularExpressions;
using Easy.Common.Extensions;
+using Omics.Fragmentation.Peptide;
using ThermoFisher.CommonCore.Data.Business;
namespace EngineLayer
@@ -442,7 +443,7 @@ private LibrarySpectrum ReadLibrarySpectrum_pDeep(StreamReader reader, bool only
//TODO: figure out amino acid position
var product = new Product(peakProductType, terminus, experMz, fragmentNumber, 0, 0);
- matchedFragmentIons.Add(new MatchedFragmentIon(ref product, experMz, experIntensity, fragmentCharge));
+ matchedFragmentIons.Add(new MatchedFragmentIon(product, experMz, experIntensity, fragmentCharge));
}
}
@@ -590,11 +591,11 @@ public static MatchedFragmentIon ReadFragmentIon(string fragmentIonLine, char[]
{
int peptideLength = peptideSequence.IsNotNullOrEmptyOrWhiteSpace() ? peptideSequence.Length : 25; // Arbitrary default peptide length
product = new Product(peakProductType, terminus, experMz.ToMass(fragmentCharge), fragmentNumber,
- aminoAcidPosition: terminus == FragmentationTerminus.N ? fragmentNumber : peptideLength - fragmentNumber,
+ residuePosition: terminus == FragmentationTerminus.N ? fragmentNumber : peptideLength - fragmentNumber,
neutralLoss);
}
- return new MatchedFragmentIon(ref product, experMz, experIntensity, fragmentCharge);
+ return new MatchedFragmentIon(product, experMz, experIntensity, fragmentCharge);
}
private void IndexSpectralLibrary(string path)
diff --git a/MetaMorpheus/EngineLayer/SpectralLibrarySearch/SpectralLibrarySearchFunction.cs b/MetaMorpheus/EngineLayer/SpectralLibrarySearch/SpectralLibrarySearchFunction.cs
index 579853e05..3120e9441 100644
--- a/MetaMorpheus/EngineLayer/SpectralLibrarySearch/SpectralLibrarySearchFunction.cs
+++ b/MetaMorpheus/EngineLayer/SpectralLibrarySearch/SpectralLibrarySearchFunction.cs
@@ -1,6 +1,6 @@
using Chemistry;
using MassSpectrometry;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -95,7 +95,7 @@ public static List GetDecoyLibrarySpectrumFromTargetByRevers
{
double decoyFragmentMz = decoyPeptideTheorIon.NeutralMass.ToMz(targetIon.Charge);
Product temProduct = decoyPeptideTheorIon;
- decoyFragmentIons.Add(new MatchedFragmentIon(ref temProduct, decoyFragmentMz, targetIon.Intensity, targetIon.Charge));
+ decoyFragmentIons.Add(new MatchedFragmentIon(temProduct, decoyFragmentMz, targetIon.Intensity, targetIon.Charge));
}
}
}
diff --git a/MetaMorpheus/GUI/ForDisplayingInDataGrids/SilacInfoForDataGrid.cs b/MetaMorpheus/GUI/ForDisplayingInDataGrids/SilacInfoForDataGrid.cs
index 057bdf1fc..fbacda228 100644
--- a/MetaMorpheus/GUI/ForDisplayingInDataGrids/SilacInfoForDataGrid.cs
+++ b/MetaMorpheus/GUI/ForDisplayingInDataGrids/SilacInfoForDataGrid.cs
@@ -1,6 +1,7 @@
using Chemistry;
using Proteomics;
using System.Collections.Generic;
+using Omics.Modifications;
namespace MetaMorpheusGUI
{
diff --git a/MetaMorpheus/GUI/GUI.csproj b/MetaMorpheus/GUI/GUI.csproj
index 64b1a617c..64bb7e0f7 100644
--- a/MetaMorpheus/GUI/GUI.csproj
+++ b/MetaMorpheus/GUI/GUI.csproj
@@ -55,7 +55,7 @@
-
+
diff --git a/MetaMorpheus/GUI/MainWindow.xaml.cs b/MetaMorpheus/GUI/MainWindow.xaml.cs
index df152a3c3..db8f7bd28 100644
--- a/MetaMorpheus/GUI/MainWindow.xaml.cs
+++ b/MetaMorpheus/GUI/MainWindow.xaml.cs
@@ -17,6 +17,7 @@
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Navigation;
+using Omics.Modifications;
using TaskLayer;
namespace MetaMorpheusGUI
diff --git a/MetaMorpheus/GUI/MetaDraw/MetaDrawSettingsWindow.xaml.cs b/MetaMorpheus/GUI/MetaDraw/MetaDrawSettingsWindow.xaml.cs
index 192e11ba7..fda4dbd2a 100644
--- a/MetaMorpheus/GUI/MetaDraw/MetaDrawSettingsWindow.xaml.cs
+++ b/MetaMorpheus/GUI/MetaDraw/MetaDrawSettingsWindow.xaml.cs
@@ -3,7 +3,7 @@
using GuiFunctions;
using Nett;
using OxyPlot;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
diff --git a/MetaMorpheus/GUI/TaskWindows/SearchTaskWindow.xaml.cs b/MetaMorpheus/GUI/TaskWindows/SearchTaskWindow.xaml.cs
index b55d9f708..e39d52ea4 100644
--- a/MetaMorpheus/GUI/TaskWindows/SearchTaskWindow.xaml.cs
+++ b/MetaMorpheus/GUI/TaskWindows/SearchTaskWindow.xaml.cs
@@ -2,7 +2,7 @@
using MassSpectrometry;
using MzLibUtil;
using Nett;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
@@ -19,6 +19,8 @@
using GuiFunctions;
using Proteomics;
using System.Threading.Tasks;
+using Omics.Digestion;
+using Omics.Modifications;
namespace MetaMorpheusGUI
{
@@ -205,7 +207,7 @@ private void UpdateFieldsFromTask(SearchTask task)
SilacInfoForDataGrid infoToAdd = new SilacInfoForDataGrid(startLabel, SilacModificationWindow.ExperimentType.Start);
if (startLabel.AdditionalLabels != null)
{
- foreach (Proteomics.SilacLabel additionalLabel in startLabel.AdditionalLabels)
+ foreach (SilacLabel additionalLabel in startLabel.AdditionalLabels)
{
infoToAdd.AddAdditionalLabel(new SilacInfoForDataGrid(additionalLabel, SilacModificationWindow.ExperimentType.Start));
}
@@ -222,7 +224,7 @@ private void UpdateFieldsFromTask(SearchTask task)
SilacInfoForDataGrid infoToAdd = new SilacInfoForDataGrid(endLabel, SilacModificationWindow.ExperimentType.End);
if (endLabel.AdditionalLabels != null)
{
- foreach (Proteomics.SilacLabel additionalLabel in endLabel.AdditionalLabels)
+ foreach (SilacLabel additionalLabel in endLabel.AdditionalLabels)
{
infoToAdd.AddAdditionalLabel(new SilacInfoForDataGrid(additionalLabel, SilacModificationWindow.ExperimentType.End));
}
@@ -238,13 +240,13 @@ private void UpdateFieldsFromTask(SearchTask task)
else if (task.SearchParameters.SilacLabels != null && task.SearchParameters.SilacLabels.Count != 0)
{
CheckBoxSILAC.IsChecked = true;
- List labels = task.SearchParameters.SilacLabels;
- foreach (Proteomics.SilacLabel label in labels)
+ List labels = task.SearchParameters.SilacLabels;
+ foreach (SilacLabel label in labels)
{
SilacInfoForDataGrid infoToAdd = new SilacInfoForDataGrid(label, SilacModificationWindow.ExperimentType.Multiplex);
if (label.AdditionalLabels != null)
{
- foreach (Proteomics.SilacLabel additionalLabel in label.AdditionalLabels)
+ foreach (SilacLabel additionalLabel in label.AdditionalLabels)
{
infoToAdd.AddAdditionalLabel(new SilacInfoForDataGrid(additionalLabel, SilacModificationWindow.ExperimentType.Multiplex));
}
@@ -1091,7 +1093,7 @@ private void OnClosing(object sender, CancelEventArgs e)
CustomFragmentationWindow.Close();
}
- private static Proteomics.SilacLabel ConvertSilacDataGridInfoToSilacLabel(SilacInfoForDataGrid info)
+ private static SilacLabel ConvertSilacDataGridInfoToSilacLabel(SilacInfoForDataGrid info)
{
if (info == null)
{
@@ -1099,7 +1101,7 @@ private static Proteomics.SilacLabel ConvertSilacDataGridInfoToSilacLabel(SilacI
}
else
{
- Proteomics.SilacLabel label = info.SilacLabel[0];
+ SilacLabel label = info.SilacLabel[0];
//This is needed to prevent double adding of additional labels.
//A quick test is to create a silac condition with two labels, save, reopen the task, save, and reopen again.
//Without this line, the second label will be doubled. Example: (K+8)&(R+10)&(R+10)
@@ -1208,7 +1210,7 @@ private void SilacUpdates(out string error)
//if they're all multiplex
if (StaticSilacLabelsObservableCollection.All(x => x.LabelType == SilacModificationWindow.ExperimentType.Multiplex))
{
- List labelsToSave = new List();
+ List labelsToSave = new List();
foreach (SilacInfoForDataGrid info in StaticSilacLabelsObservableCollection)
{
labelsToSave.Add(ConvertSilacDataGridInfoToSilacLabel(info));
diff --git a/MetaMorpheus/GUI/Views/CustomFragmentationWindow.xaml.cs b/MetaMorpheus/GUI/Views/CustomFragmentationWindow.xaml.cs
index 8a616e1fe..23de0c9fb 100644
--- a/MetaMorpheus/GUI/Views/CustomFragmentationWindow.xaml.cs
+++ b/MetaMorpheus/GUI/Views/CustomFragmentationWindow.xaml.cs
@@ -1,4 +1,4 @@
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using System.Collections.Generic;
using System.Windows;
using System.ComponentModel;
@@ -6,6 +6,7 @@
using System.Linq;
using System.Collections.ObjectModel;
using System;
+using Omics.Fragmentation.Peptide;
namespace MetaMorpheusGUI
{
diff --git a/MetaMorpheus/GUI/Views/CustomModWindow.xaml.cs b/MetaMorpheus/GUI/Views/CustomModWindow.xaml.cs
index acb425902..74bf9875a 100644
--- a/MetaMorpheus/GUI/Views/CustomModWindow.xaml.cs
+++ b/MetaMorpheus/GUI/Views/CustomModWindow.xaml.cs
@@ -8,6 +8,7 @@
using MassSpectrometry;
using Proteomics;
using System.Globalization;
+using Omics.Modifications;
namespace MetaMorpheusGUI
{
diff --git a/MetaMorpheus/GUI/Views/SilacModificationWindow.xaml.cs b/MetaMorpheus/GUI/Views/SilacModificationWindow.xaml.cs
index 6e33fe7b5..ef266dc7f 100644
--- a/MetaMorpheus/GUI/Views/SilacModificationWindow.xaml.cs
+++ b/MetaMorpheus/GUI/Views/SilacModificationWindow.xaml.cs
@@ -7,6 +7,7 @@
using Chemistry;
using System.Text.RegularExpressions;
using System.Globalization;
+using Omics.Modifications;
namespace MetaMorpheusGUI
{
diff --git a/MetaMorpheus/GuiFunctions/GuiFunctions.csproj b/MetaMorpheus/GuiFunctions/GuiFunctions.csproj
index f1b519d45..b32fb72cc 100644
--- a/MetaMorpheus/GuiFunctions/GuiFunctions.csproj
+++ b/MetaMorpheus/GuiFunctions/GuiFunctions.csproj
@@ -14,7 +14,7 @@
-
+
diff --git a/MetaMorpheus/GuiFunctions/MetaDraw/DrawnSequence.cs b/MetaMorpheus/GuiFunctions/MetaDraw/DrawnSequence.cs
index 7b43733cd..d2a2dbd02 100644
--- a/MetaMorpheus/GuiFunctions/MetaDraw/DrawnSequence.cs
+++ b/MetaMorpheus/GuiFunctions/MetaDraw/DrawnSequence.cs
@@ -1,6 +1,6 @@
using EngineLayer;
using OxyPlot;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
diff --git a/MetaMorpheus/GuiFunctions/MetaDraw/MetaDrawLogic.cs b/MetaMorpheus/GuiFunctions/MetaDraw/MetaDrawLogic.cs
index faacb3780..8f520ca84 100644
--- a/MetaMorpheus/GuiFunctions/MetaDraw/MetaDrawLogic.cs
+++ b/MetaMorpheus/GuiFunctions/MetaDraw/MetaDrawLogic.cs
@@ -6,7 +6,6 @@
using iText.Kernel.Pdf;
using MassSpectrometry;
using OxyPlot.Wpf;
-using Proteomics.Fragmentation;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
@@ -25,6 +24,7 @@
using Org.BouncyCastle.Asn1.X509.Qualified;
using Readers;
using System.Threading;
+using Omics.Fragmentation;
namespace GuiFunctions
{
diff --git a/MetaMorpheus/GuiFunctions/MetaDraw/MetaDrawSettings.cs b/MetaMorpheus/GuiFunctions/MetaDraw/MetaDrawSettings.cs
index 57b6c7d64..f9ad1812c 100644
--- a/MetaMorpheus/GuiFunctions/MetaDraw/MetaDrawSettings.cs
+++ b/MetaMorpheus/GuiFunctions/MetaDraw/MetaDrawSettings.cs
@@ -2,7 +2,7 @@
using EngineLayer.GlycoSearch;
using OxyPlot;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using System;
using System.Collections.Generic;
using System.IO;
diff --git a/MetaMorpheus/GuiFunctions/MetaDraw/MetaDrawSettingsSnapshot.cs b/MetaMorpheus/GuiFunctions/MetaDraw/MetaDrawSettingsSnapshot.cs
index 04ccfdf5e..d38e7b52b 100644
--- a/MetaMorpheus/GuiFunctions/MetaDraw/MetaDrawSettingsSnapshot.cs
+++ b/MetaMorpheus/GuiFunctions/MetaDraw/MetaDrawSettingsSnapshot.cs
@@ -1,6 +1,6 @@
using EngineLayer.GlycoSearch;
using OxyPlot;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/MetaMorpheus/GuiFunctions/MetaDraw/PlotModelStat.cs b/MetaMorpheus/GuiFunctions/MetaDraw/PlotModelStat.cs
index d042c106c..63266f050 100644
--- a/MetaMorpheus/GuiFunctions/MetaDraw/PlotModelStat.cs
+++ b/MetaMorpheus/GuiFunctions/MetaDraw/PlotModelStat.cs
@@ -2,7 +2,7 @@
using OxyPlot;
using OxyPlot.Axes;
using OxyPlot.Series;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using Proteomics.RetentionTimePrediction;
using System;
diff --git a/MetaMorpheus/GuiFunctions/MetaDraw/SpectrumMatch/ChimeraSpectrumMatchPlot.cs b/MetaMorpheus/GuiFunctions/MetaDraw/SpectrumMatch/ChimeraSpectrumMatchPlot.cs
index e5c9fc8cf..1c6cfb310 100644
--- a/MetaMorpheus/GuiFunctions/MetaDraw/SpectrumMatch/ChimeraSpectrumMatchPlot.cs
+++ b/MetaMorpheus/GuiFunctions/MetaDraw/SpectrumMatch/ChimeraSpectrumMatchPlot.cs
@@ -2,7 +2,7 @@
using EngineLayer;
using MassSpectrometry;
using OxyPlot;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using System.Collections.Generic;
using System.IO;
using System.Linq;
diff --git a/MetaMorpheus/GuiFunctions/MetaDraw/SpectrumMatch/PeptideSpectrumMatchPlot.cs b/MetaMorpheus/GuiFunctions/MetaDraw/SpectrumMatch/PeptideSpectrumMatchPlot.cs
index 608fa2cd7..c48f61a45 100644
--- a/MetaMorpheus/GuiFunctions/MetaDraw/SpectrumMatch/PeptideSpectrumMatchPlot.cs
+++ b/MetaMorpheus/GuiFunctions/MetaDraw/SpectrumMatch/PeptideSpectrumMatchPlot.cs
@@ -1,6 +1,5 @@
using EngineLayer;
using MassSpectrometry;
-using Proteomics.Fragmentation;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
@@ -8,6 +7,7 @@
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;
+using Omics.Fragmentation;
namespace GuiFunctions
{
diff --git a/MetaMorpheus/GuiFunctions/MetaDraw/SpectrumMatch/SpectrumMatchPlot.cs b/MetaMorpheus/GuiFunctions/MetaDraw/SpectrumMatch/SpectrumMatchPlot.cs
index 0da8192c7..97026c930 100644
--- a/MetaMorpheus/GuiFunctions/MetaDraw/SpectrumMatch/SpectrumMatchPlot.cs
+++ b/MetaMorpheus/GuiFunctions/MetaDraw/SpectrumMatch/SpectrumMatchPlot.cs
@@ -18,11 +18,11 @@
using MassSpectrometry;
using MassSpectrometry.MzSpectra;
using mzPlot;
+using Omics.Fragmentation;
using OxyPlot;
using OxyPlot.Annotations;
using OxyPlot.Axes;
using OxyPlot.Series;
-using Proteomics.Fragmentation;
using Canvas = System.Windows.Controls.Canvas;
using FontWeights = OxyPlot.FontWeights;
using HorizontalAlignment = OxyPlot.HorizontalAlignment;
@@ -447,7 +447,7 @@ protected void AnnotateLibraryIons(bool isBetaPeptide, List
libraryIon.NeutralTheoreticalProduct.AminoAcidPosition,
libraryIon.NeutralTheoreticalProduct.NeutralLoss);
- mirroredLibraryIons.Add(new MatchedFragmentIon(ref neutralProduct, libraryIon.Mz,
+ mirroredLibraryIons.Add(new MatchedFragmentIon(neutralProduct, libraryIon.Mz,
multiplier * libraryIon.Intensity, libraryIon.Charge));
}
diff --git a/MetaMorpheus/GuiFunctions/ViewModels/IonForTreeViewModel.cs b/MetaMorpheus/GuiFunctions/ViewModels/IonForTreeViewModel.cs
index 3ef477a5d..cdc3cf98d 100644
--- a/MetaMorpheus/GuiFunctions/ViewModels/IonForTreeViewModel.cs
+++ b/MetaMorpheus/GuiFunctions/ViewModels/IonForTreeViewModel.cs
@@ -1,6 +1,6 @@
using GuiFunctions;
using OxyPlot;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
diff --git a/MetaMorpheus/GuiFunctions/ViewModels/IonTypeForTreeViewModel.cs b/MetaMorpheus/GuiFunctions/ViewModels/IonTypeForTreeViewModel.cs
index a3f0cdea5..d25b16543 100644
--- a/MetaMorpheus/GuiFunctions/ViewModels/IonTypeForTreeViewModel.cs
+++ b/MetaMorpheus/GuiFunctions/ViewModels/IonTypeForTreeViewModel.cs
@@ -1,5 +1,5 @@
using GuiFunctions;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
diff --git a/MetaMorpheus/GuiFunctions/ViewModels/Legends/PtmLegendViewModel.cs b/MetaMorpheus/GuiFunctions/ViewModels/Legends/PtmLegendViewModel.cs
index 72ee42ca0..cae4b5d44 100644
--- a/MetaMorpheus/GuiFunctions/ViewModels/Legends/PtmLegendViewModel.cs
+++ b/MetaMorpheus/GuiFunctions/ViewModels/Legends/PtmLegendViewModel.cs
@@ -8,6 +8,7 @@
using System.Threading.Tasks;
using System.Windows;
using EngineLayer;
+using Omics.Modifications;
using Proteomics.ProteolyticDigestion;
namespace GuiFunctions
diff --git a/MetaMorpheus/GuiFunctions/ViewModels/MetaDrawSettingsViewModel.cs b/MetaMorpheus/GuiFunctions/ViewModels/MetaDrawSettingsViewModel.cs
index d6a06fa30..8ffe71a02 100644
--- a/MetaMorpheus/GuiFunctions/ViewModels/MetaDrawSettingsViewModel.cs
+++ b/MetaMorpheus/GuiFunctions/ViewModels/MetaDrawSettingsViewModel.cs
@@ -1,6 +1,6 @@
using EngineLayer;
using GuiFunctions;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
diff --git a/MetaMorpheus/MetaMorpheusSetup/Product.wxs b/MetaMorpheus/MetaMorpheusSetup/Product.wxs
index 5d9ec87f8..4bb106375 100644
--- a/MetaMorpheus/MetaMorpheusSetup/Product.wxs
+++ b/MetaMorpheus/MetaMorpheusSetup/Product.wxs
@@ -271,6 +271,9 @@
+
+
+
diff --git a/MetaMorpheus/TaskLayer/CalibrationTask/CalibrationTask.cs b/MetaMorpheus/TaskLayer/CalibrationTask/CalibrationTask.cs
index 9c20fbf2c..669a09399 100644
--- a/MetaMorpheus/TaskLayer/CalibrationTask/CalibrationTask.cs
+++ b/MetaMorpheus/TaskLayer/CalibrationTask/CalibrationTask.cs
@@ -7,11 +7,12 @@
using MzLibUtil;
using Nett;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using Omics.Modifications;
using Readers;
using UsefulProteomicsDatabases;
diff --git a/MetaMorpheus/TaskLayer/FileSpecificParameters.cs b/MetaMorpheus/TaskLayer/FileSpecificParameters.cs
index b6d5aa5f4..8366d96c9 100644
--- a/MetaMorpheus/TaskLayer/FileSpecificParameters.cs
+++ b/MetaMorpheus/TaskLayer/FileSpecificParameters.cs
@@ -5,7 +5,7 @@
using Nett;
using Proteomics.ProteolyticDigestion;
using MassSpectrometry;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
namespace TaskLayer
{
diff --git a/MetaMorpheus/TaskLayer/GPTMDTask/GPTMDTask.cs b/MetaMorpheus/TaskLayer/GPTMDTask/GPTMDTask.cs
index ecd4f1b82..cde4fad40 100644
--- a/MetaMorpheus/TaskLayer/GPTMDTask/GPTMDTask.cs
+++ b/MetaMorpheus/TaskLayer/GPTMDTask/GPTMDTask.cs
@@ -12,6 +12,7 @@
using UsefulProteomicsDatabases;
using Proteomics.ProteolyticDigestion;
using System.Globalization;
+using Omics.Modifications;
namespace TaskLayer
{
diff --git a/MetaMorpheus/TaskLayer/GlycoSearchTask/PostGlycoSearchAnalysisParameters.cs b/MetaMorpheus/TaskLayer/GlycoSearchTask/PostGlycoSearchAnalysisParameters.cs
index cd18d148b..a1fd56251 100644
--- a/MetaMorpheus/TaskLayer/GlycoSearchTask/PostGlycoSearchAnalysisParameters.cs
+++ b/MetaMorpheus/TaskLayer/GlycoSearchTask/PostGlycoSearchAnalysisParameters.cs
@@ -4,6 +4,7 @@
using Proteomics;
using Proteomics.ProteolyticDigestion;
using System.Collections.Generic;
+using Omics.Modifications;
namespace TaskLayer
{
diff --git a/MetaMorpheus/TaskLayer/GlycoSearchTask/PostGlycoSearchAnalysisTask.cs b/MetaMorpheus/TaskLayer/GlycoSearchTask/PostGlycoSearchAnalysisTask.cs
index 077716c00..9f28bcc27 100644
--- a/MetaMorpheus/TaskLayer/GlycoSearchTask/PostGlycoSearchAnalysisTask.cs
+++ b/MetaMorpheus/TaskLayer/GlycoSearchTask/PostGlycoSearchAnalysisTask.cs
@@ -2,14 +2,14 @@
using EngineLayer.GlycoSearch;
using EngineLayer.FdrAnalysis;
using Proteomics;
-using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using FlashLFQ;
+using Omics.Modifications;
using pepXML.Generated;
using Proteomics.ProteolyticDigestion;
-using TaskLayer.MbrAnalysis;
+using ThermoFisher.CommonCore.Data;
using ProteinGroup = EngineLayer.ProteinGroup;
namespace TaskLayer
@@ -40,90 +40,116 @@ public MyTaskResults Run(string OutputFolder, List dbFilenameList, Li
}
var allPSMs = allPsms.OrderByDescending(p => p.Score).ToList();
+ //This is all psms for all files including glyco- and non-glyco psms.
SingleFDRAnalysis(allPSMs, commonParameters, new List { taskId });
List filteredGsms = allPSMs.Where(p => p.FdrInfo.QValue < 0.01).ToList();
- if (Parameters.GlycoSearchParameters.DoParsimony)
+ //write individual file results
+ if (Parameters.GlycoSearchParameters.WriteIndividualFiles)
{
- if (Parameters.GlycoSearchParameters.WriteIndividualFiles)
+ string individualFileResults = Path.Combine(OutputFolder, "IndividualFileResults");
+ if (!Directory.Exists(individualFileResults))
{
- string individualFileResults = Path.Combine(OutputFolder, "IndividualFileResults");
- if (!Directory.Exists(individualFileResults))
+ Directory.CreateDirectory(individualFileResults);
+ }
+
+ foreach (var fileSpecificGSMs in filteredGsms.GroupBy(p => p.FullFilePath))
+ {
+ string individualFileFolder = Path.GetFileNameWithoutExtension(fileSpecificGSMs.Key);
+ string individualFileFolderPath = Path.Combine(individualFileResults, individualFileFolder);
+ if (!Directory.Exists(individualFileFolderPath))
{
- Directory.CreateDirectory(individualFileResults);
+ Directory.CreateDirectory(individualFileFolderPath);
}
-
- foreach (var fileSpecificGSMs in filteredGsms.GroupBy(p => p.FullFilePath))
+ var fsgList = fileSpecificGSMs.ToList();
+ if (Parameters.GlycoSearchParameters.DoParsimony)
{
- string individualFileFolder = Path.GetFileNameWithoutExtension(fileSpecificGSMs.Key);
- string individualFileFolderPath = Path.Combine(individualFileResults, individualFileFolder);
- if (!Directory.Exists(individualFileFolderPath))
- {
- Directory.CreateDirectory(individualFileFolderPath);
- }
- var fsgList = fileSpecificGSMs.ToList();
GlycoProteinAnalysis(fsgList, individualFileFolderPath, individualFileFolder);
- foreach (GlycoSpectralMatch gsm in fsgList) //maybe this needs to be the filterd list???
- {
- gsm.ResolveAllAmbiguities();
- }
- var individualFilePsmsPath = Path.Combine(individualFileFolderPath, individualFileFolder + "_AllPSMs.psmtsv");
- WriteFile.WritePsmGlycoToTsv(fsgList, individualFilePsmsPath, 1);
- DividePsmsIntoGroupsWriteToTsv(glycoSearchParameters.GlycoSearchType, fsgList, commonParameters, taskId, individualFileFolderPath, individualFileFolder);
}
+
+ foreach (GlycoSpectralMatch gsm in fsgList) //maybe this needs to be the filterd list???
+ {
+ gsm.ResolveAllAmbiguities();
+ }
+ var individualFilePsmsPath = Path.Combine(individualFileFolderPath, individualFileFolder + "_AllPSMs.psmtsv");
+ WriteGlycoFile.WritePsmGlycoToTsv(fsgList, individualFilePsmsPath, false);//this is everything, glyco and non-glyco
+ //the individual file AllPSMs was just written. The next method writes only those PSMs that have a glyco mod
+ DivideGlycoPsmsIntoGroupsWriteToTsv(glycoSearchParameters.GlycoSearchType, fsgList, commonParameters, taskId, individualFileFolderPath, individualFileFolder);
}
-
- GlycoProteinAnalysis(filteredGsms, OutputFolder);//Do the whole group last so inference is done on the whole group
- foreach (GlycoSpectralMatch gsm in allPSMs) //maybe this needs to be the filterd list???
- {
- gsm.ResolveAllAmbiguities();
- }
- DividePsmsIntoGroupsWriteToTsv(glycoSearchParameters.GlycoSearchType, allPSMs, commonParameters, taskId, OutputFolder, null);
}
- else
+
+ //write combined results
+ switch (glycoSearchParameters.GlycoSearchType)
{
- if (Parameters.GlycoSearchParameters.WriteIndividualFiles) //even if we don't do parsimony, we can still get individual file results
- {
- string individualFileResults = Path.Combine(OutputFolder, "IndividualFileResults");
- if (!Directory.Exists(individualFileResults))
+ case GlycoSearchType.OGlycanSearch:
+ var allPsmsOgly = filteredGsms.Where(p => p.Routes != null).ToList();
+ if (allPsmsOgly.Any())
{
- Directory.CreateDirectory(individualFileResults);
+ SingleFDRAnalysis(allPsmsOgly, commonParameters, new List { taskId });
+ var writtenFileOGlyco = Path.Combine(OutputFolder + "\\oglyco" + ".psmtsv");
+
+ var ProteinLevelLocalization = GlycoProteinParsimony.ProteinLevelGlycoParsimony(allPsmsOgly.Where(p => p.ProteinAccession != null && p.OneBasedStartResidueInProtein.HasValue).ToList());
+ var seen_oglyco_localization_file = Path.Combine(OutputFolder + "\\seen_oglyco_localization" + ".tsv");
+ WriteGlycoFile.WriteSeenProteinGlycoLocalization(ProteinLevelLocalization, seen_oglyco_localization_file);
+
+ var protein_oglyco_localization_file = Path.Combine(OutputFolder + "\\protein_oglyco_localization" + ".tsv");
+ WriteGlycoFile.WriteProteinGlycoLocalization(ProteinLevelLocalization, protein_oglyco_localization_file);
+ WriteGlycoFile.WritePsmGlycoToTsv(allPsmsOgly, writtenFileOGlyco, true); //we write this last so localization can be attempted
}
+ break;
+ case GlycoSearchType.NGlycanSearch:
+ var allPsmsNgly = filteredGsms.Where(p => p.GlycanScore > 0 && p.Routes == null).ToList();
+ if (allPsmsNgly.Any())
+ {
+ SingleFDRAnalysis(allPsmsNgly, commonParameters, new List { taskId });
+
+ var writtenFileNGlyco = Path.Combine(OutputFolder + "\\nglyco" + ".psmtsv");
+
+ var ProteinLevelLocalization = GlycoProteinParsimony.ProteinLevelGlycoParsimony(allPsmsNgly.Where(p => p.ProteinAccession != null && p.OneBasedStartResidueInProtein.HasValue).ToList());
+ var seen_nglyco_localization_file = Path.Combine(OutputFolder + "\\seen_nglyco_localization" + ".tsv");
+ WriteGlycoFile.WriteSeenProteinGlycoLocalization(ProteinLevelLocalization, seen_nglyco_localization_file);
- foreach (var fileSpecificGSMs in filteredGsms.GroupBy(p => p.FullFilePath))
+ var protein_nglyco_localization_file = Path.Combine(OutputFolder + "\\protein_nglyco_localization" + ".tsv");
+ WriteGlycoFile.WriteProteinGlycoLocalization(ProteinLevelLocalization, protein_nglyco_localization_file);
+ WriteGlycoFile.WritePsmGlycoToTsv(allPsmsNgly, writtenFileNGlyco, true); //we write this last so localization can be attempted
+ }
+ break;
+ case GlycoSearchType.N_O_GlycanSearch:
+ default:
+ var allPsmsgly = filteredGsms.Where(p => p.GlycanScore > 0).ToList();
+ if (allPsmsgly.Any())
{
- string individualFileFolder = Path.GetFileNameWithoutExtension(fileSpecificGSMs.Key);
- string individualFileFolderPath = Path.Combine(individualFileResults, individualFileFolder);
- if (!Directory.Exists(individualFileFolderPath))
- {
- Directory.CreateDirectory(individualFileFolderPath);
- }
- var fsgList = fileSpecificGSMs.ToList();
- GlycoAccessionAnalysis(fsgList, individualFileFolderPath, individualFileFolder);
- foreach (GlycoSpectralMatch gsm in fsgList) //maybe this needs to be the filterd list???
- {
- gsm.ResolveAllAmbiguities();
- }
- var individualFilePsmsPath = Path.Combine(individualFileFolderPath, individualFileFolder + "_AllPSMs.psmtsv");
- WriteFile.WritePsmGlycoToTsv(fsgList, individualFilePsmsPath, 1);
- DividePsmsIntoGroupsWriteToTsv(glycoSearchParameters.GlycoSearchType, fsgList, commonParameters, taskId, individualFileFolderPath, individualFileFolder);
+ SingleFDRAnalysis(allPsmsgly, commonParameters, new List { taskId });
+
+ var writtenFileNOGlyco = Path.Combine(OutputFolder + "\\no_glyco" + ".psmtsv");
+
+ var ProteinLevelLocalization = GlycoProteinParsimony.ProteinLevelGlycoParsimony(allPsmsgly.Where(p => p.ProteinAccession != null && p.OneBasedStartResidueInProtein.HasValue).ToList());
+ var seen_no_glyco_localization_file = Path.Combine(OutputFolder + "\\seen_no_glyco_localization" + ".tsv");
+ WriteGlycoFile.WriteSeenProteinGlycoLocalization(ProteinLevelLocalization, seen_no_glyco_localization_file);
+
+ var protein_no_glyco_localization_file = Path.Combine(OutputFolder + "\\protein_no_glyco_localization" + ".tsv");
+ WriteGlycoFile.WriteProteinGlycoLocalization(ProteinLevelLocalization, protein_no_glyco_localization_file);
+ WriteGlycoFile.WritePsmGlycoToTsv(allPsmsgly, writtenFileNOGlyco, true); //we write this last so localization can be attempted
}
- }
+ break;
+ }
+ if (glycoSearchParameters.DoParsimony)
+ {
+ GlycoProteinAnalysis(filteredGsms, OutputFolder);//Do the whole group last so inference is done on the whole group
+ }
+ else
+ {
GlycoAccessionAnalysis(filteredGsms, OutputFolder);//Do the whole group last so inference is done on the whole group
- foreach (GlycoSpectralMatch gsm in allPSMs) //maybe this needs to be the filterd list???
- {
- gsm.ResolveAllAmbiguities();
- }
- DividePsmsIntoGroupsWriteToTsv(glycoSearchParameters.GlycoSearchType, allPSMs, commonParameters, taskId, OutputFolder, null);
}
+
QuantificationAnalysis();
WriteQuantificationResults();
var writtenFileSingle = Path.Combine(OutputFolder, "AllPSMs.psmtsv");
- WriteFile.WritePsmGlycoToTsv(filteredGsms, writtenFileSingle, 1);
+ WriteGlycoFile.WritePsmGlycoToTsv(filteredGsms, writtenFileSingle, true);
FinishedWritingFile(writtenFileSingle, new List { taskId });
return MyTaskResults;
@@ -131,56 +157,56 @@ public MyTaskResults Run(string OutputFolder, List dbFilenameList, Li
- private void DividePsmsIntoGroupsWriteToTsv(GlycoSearchType glycoSearchType, List gsms, CommonParameters commonParameters, string taskId, string individualFileFolderPath, string individualFileFolder)
+ private void DivideGlycoPsmsIntoGroupsWriteToTsv(GlycoSearchType glycoSearchType, List gsms, CommonParameters commonParameters, string taskId, string individualFileFolderPath, string individualFileFolder)
{
switch (glycoSearchType)
{
case GlycoSearchType.OGlycanSearch:
- var allPsmsOgly = gsms.Where(p => p.Routes != null).OrderByDescending(p => p.Score).ToList();
+ var allPsmsOgly = gsms.Where(p => p.Routes != null).ToList();
if (allPsmsOgly.Any())
{
SingleFDRAnalysis(allPsmsOgly, commonParameters, new List { taskId });
var writtenFileOGlyco = Path.Combine(individualFileFolderPath, individualFileFolder + "oglyco" + ".psmtsv");
- WriteFile.WritePsmGlycoToTsv(allPsmsOgly, writtenFileOGlyco, 2);
-
+
var ProteinLevelLocalization = GlycoProteinParsimony.ProteinLevelGlycoParsimony(allPsmsOgly.Where(p => p.ProteinAccession != null && p.OneBasedStartResidueInProtein.HasValue).ToList());
var seen_oglyco_localization_file = Path.Combine(individualFileFolderPath, individualFileFolder + "seen_oglyco_localization" + ".tsv");
- WriteFile.WriteSeenProteinGlycoLocalization(ProteinLevelLocalization, seen_oglyco_localization_file);
+ WriteGlycoFile.WriteSeenProteinGlycoLocalization(ProteinLevelLocalization, seen_oglyco_localization_file);
var protein_oglyco_localization_file = Path.Combine(individualFileFolderPath, individualFileFolder + "protein_oglyco_localization" + ".tsv");
- WriteFile.WriteProteinGlycoLocalization(ProteinLevelLocalization, protein_oglyco_localization_file);
+ WriteGlycoFile.WriteProteinGlycoLocalization(ProteinLevelLocalization, protein_oglyco_localization_file);
+ WriteGlycoFile.WritePsmGlycoToTsv(allPsmsOgly, writtenFileOGlyco, true); //we write this last so localization can be attempted
}
break;
case GlycoSearchType.NGlycanSearch:
- var allPsmsNgly = gsms.Where(p => p.NGlycan != null).OrderByDescending(p => p.Score).ToList();
+ var allPsmsNgly = gsms.Where(p => p.GlycanScore > 0 && p.Routes == null).OrderByDescending(p => p.Score).ToList();
if (allPsmsNgly.Any())
{
SingleFDRAnalysis(allPsmsNgly, commonParameters, new List { taskId });
- var writtenFileOGlyco = Path.Combine(individualFileFolderPath, individualFileFolder + "nglyco" + ".psmtsv");
- WriteFile.WritePsmGlycoToTsv(allPsmsNgly, writtenFileOGlyco, 2);
+ var writtenFileNGlyco = Path.Combine(individualFileFolderPath, individualFileFolder + "nglyco" + ".psmtsv");
var ProteinLevelLocalization = GlycoProteinParsimony.ProteinLevelGlycoParsimony(allPsmsNgly.Where(p => p.ProteinAccession != null && p.OneBasedStartResidueInProtein.HasValue).ToList());
var seen_nglyco_localization_file = Path.Combine(individualFileFolderPath, individualFileFolder + "seen_nglyco_localization" + ".tsv");
- WriteFile.WriteSeenProteinGlycoLocalization(ProteinLevelLocalization, seen_nglyco_localization_file);
+ WriteGlycoFile.WriteSeenProteinGlycoLocalization(ProteinLevelLocalization, seen_nglyco_localization_file);
- var protein_oglyco_localization_file = Path.Combine(individualFileFolderPath, individualFileFolder + "protein_nglyco_localization" + ".tsv");
- WriteFile.WriteProteinGlycoLocalization(ProteinLevelLocalization, protein_oglyco_localization_file);
+ var protein_nglyco_localization_file = Path.Combine(individualFileFolderPath, individualFileFolder + "protein_nglyco_localization" + ".tsv");
+ WriteGlycoFile.WriteProteinGlycoLocalization(ProteinLevelLocalization, protein_nglyco_localization_file);
+ WriteGlycoFile.WritePsmGlycoToTsv(allPsmsNgly, writtenFileNGlyco, true); //we write this last so localization can be attempted
}
break;
default: //both N and O glycan search combined
- var allPsmsGly = gsms.Where(p => p.NGlycan != null || p.Routes != null).OrderByDescending(p => p.Score).ToList();
+ var allPsmsGly = gsms.Where(p => p.GlycanScore > 0).OrderByDescending(p => p.Score).ToList();
if (allPsmsGly.Any())
{
SingleFDRAnalysis(allPsmsGly, commonParameters, new List { taskId });
- var writtenFileOGlyco = Path.Combine(individualFileFolderPath, individualFileFolder + "nglyco" + ".psmtsv");
- WriteFile.WritePsmGlycoToTsv(allPsmsGly, writtenFileOGlyco, 2);
+ var writtenFileNOGlyco = Path.Combine(individualFileFolderPath, individualFileFolder + "no_glyco" + ".psmtsv");
+ WriteGlycoFile.WritePsmGlycoToTsv(allPsmsGly, writtenFileNOGlyco, true);
var ProteinLevelLocalization = GlycoProteinParsimony.ProteinLevelGlycoParsimony(allPsmsGly.Where(p => p.ProteinAccession != null && p.OneBasedStartResidueInProtein.HasValue).ToList());
- var seen_oglyco_localization_file = Path.Combine(individualFileFolderPath, individualFileFolder + "seen_nglyco_localization" + ".tsv");
- WriteFile.WriteSeenProteinGlycoLocalization(ProteinLevelLocalization, seen_oglyco_localization_file);
+ var seen_no_glyco_localization_file = Path.Combine(individualFileFolderPath, individualFileFolder + "seen_no_glyco_localization" + ".tsv");
+ WriteGlycoFile.WriteSeenProteinGlycoLocalization(ProteinLevelLocalization, seen_no_glyco_localization_file);
- var protein_oglyco_localization_file = Path.Combine(individualFileFolderPath, individualFileFolder + "protein_nglyco_localization" + ".tsv");
- WriteFile.WriteProteinGlycoLocalization(ProteinLevelLocalization, protein_oglyco_localization_file);
+ var protein_noglyco_localization_file = Path.Combine(individualFileFolderPath, individualFileFolder + "protein_no_glyco_localization" + ".tsv");
+ WriteGlycoFile.WriteProteinGlycoLocalization(ProteinLevelLocalization, protein_noglyco_localization_file);
}
break;
}
@@ -473,6 +499,9 @@ private void WriteQuantificationResults()
WritePeptideQuantificationResultsToTsv(Parameters.FlashLfqResults, Parameters.OutputFolder, filename, new List { Parameters.SearchTaskId });
+ WriteProteinQuantificationResultsToTsv(Parameters.FlashLfqResults, Parameters.OutputFolder,
+ "AllQuantifiedProteins", new List { Parameters.SearchTaskId });
+
// write individual results
if (Parameters.CurrentRawFileList.Count > 0 && Parameters.GlycoSearchParameters.WriteIndividualFiles)
{
diff --git a/MetaMorpheus/TaskLayer/GlycoSearchTask/WriteGlycoFile.cs b/MetaMorpheus/TaskLayer/GlycoSearchTask/WriteGlycoFile.cs
new file mode 100644
index 000000000..81be1bccb
--- /dev/null
+++ b/MetaMorpheus/TaskLayer/GlycoSearchTask/WriteGlycoFile.cs
@@ -0,0 +1,114 @@
+using EngineLayer.GlycoSearch;
+using EngineLayer;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+
+namespace TaskLayer
+{
+ public static class WriteGlycoFile
+ {
+ public static void WritePsmGlycoToTsv(List gsms, string filePath, bool writeGlycoPsms)
+ {
+ if (gsms.Count == 0)
+ {
+ return;
+ }
+
+ string header = GlycoSpectralMatch.GetTabSepHeaderSingle();
+ if (writeGlycoPsms)
+ {
+ header += (GlycoSpectralMatch.GetTabSeperatedHeaderGlyco());
+ }
+
+ using (StreamWriter output = new StreamWriter(filePath))
+ {
+ output.WriteLine(header);
+ if (writeGlycoPsms)
+ {
+ foreach (var gsm in gsms)
+ {
+ output.WriteLine(gsm.SingleToString() + "\t" + gsm.GlycoToString());
+ }
+ }
+ else
+ {
+ foreach (var gsm in gsms)
+ {
+ output.WriteLine(gsm.SingleToString());
+ }
+ }
+
+ }
+ }
+
+ //The function is to summarize localized glycan by protein site.
+ public static void WriteSeenProteinGlycoLocalization(Dictionary<(string proteinAccession, string proteinPosition, int glycanId), GlycoProteinParsimony> glycoProteinParsimony, string outputPath)
+ {
+ if (glycoProteinParsimony.Keys.Count == 0)
+ { return; }
+ var writtenFile = Path.Combine(outputPath);
+ using (StreamWriter output = new StreamWriter(writtenFile))
+ {
+ output.WriteLine("Protein Accession\tModification Site\tAminoAcid\tLocalized Glycans\tLocalized\tLowest Qvalue\tBest Localization Level\tMax Site Specific Probability");
+ foreach (var protein in glycoProteinParsimony.OrderBy(i => i.Key.proteinAccession))
+ {
+ if (protein.Value != null)
+ {
+ output.WriteLine(
+ protein.Key.proteinAccession + "\t" +
+ protein.Key.proteinPosition + "\t" +
+ protein.Value.AminoAcid + "\t" +
+ GlycanBox.GlobalOGlycans[protein.Key.glycanId].Composition + "\t" +
+ protein.Value.IsLocalized + "\t" +
+ protein.Value.MinQValue.ToString("0.000") + "\t" +
+ protein.Value.BestLocalizeLevel + "\t" +
+ protein.Value.MaxProbability.ToString("0.000"));
+
+ }
+ }
+ }
+ }
+
+ //The function is to summarize localized glycosylation of each protein site.
+ public static void WriteProteinGlycoLocalization(Dictionary<(string proteinAccession, string proteinPosition, int glycanId), GlycoProteinParsimony> glycoProteinParsimony, string outputPath)
+ {
+ if (glycoProteinParsimony.Count == 0)
+ { return; }
+
+ Dictionary> localizedglycans = new Dictionary>();
+ foreach (var item in glycoProteinParsimony.Where(p => p.Value.IsLocalized && p.Value.MinQValue <= 0.01))
+ {
+
+ var key = item.Key.proteinAccession + "#" + item.Key.proteinPosition;
+ if (localizedglycans.ContainsKey(key))
+ {
+ localizedglycans[key].Add(item.Key.glycanId.ToString());
+ }
+ else
+ {
+ localizedglycans[key] = new HashSet();
+ localizedglycans[key].Add(item.Key.glycanId.ToString());
+ }
+
+ }
+
+ var writtenFile = Path.Combine(outputPath);
+ using (StreamWriter output = new StreamWriter(writtenFile))
+ {
+ output.WriteLine("Protein Accession\tModification Site\tLocalized Glycan Number\tLocalized Glycans");
+ foreach (var local in localizedglycans.OrderBy(p => p.Key))
+ {
+ var x = local.Key.Split('#');
+ output.WriteLine(
+ x[0] + "\t" +
+ x[1] + "\t" +
+ local.Value.Count() + "\t" +
+ String.Join(",", local.Value.Select(p => GlycanBox.GlobalOGlycans[int.Parse(p)].Composition))
+ );
+ }
+ }
+ }
+ }
+}
diff --git a/MetaMorpheus/TaskLayer/MetaMorpheusTask.cs b/MetaMorpheus/TaskLayer/MetaMorpheusTask.cs
index cf5470ea0..4a1803a96 100644
--- a/MetaMorpheus/TaskLayer/MetaMorpheusTask.cs
+++ b/MetaMorpheus/TaskLayer/MetaMorpheusTask.cs
@@ -14,10 +14,13 @@
using System.Globalization;
using System.IO;
using System.Linq;
+using System.Reflection;
using System.Reflection.Metadata.Ecma335;
using System.Text;
using System.Threading.Tasks;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
+using Omics.Fragmentation.Peptide;
+using Omics.Modifications;
using SpectralAveraging;
using UsefulProteomicsDatabases;
@@ -64,6 +67,11 @@ public abstract class MetaMorpheusTask
tmlString.Value == "AverageDdaScansWithOverlap"
? SpectraFileAveragingType.AverageDdaScans
: Enum.Parse(tmlString.Value))))
+ .ConfigureType(type => type
+ .IgnoreProperty(p => p.DigestionAgent)
+ .IgnoreProperty(p => p.MaxMods)
+ .IgnoreProperty(p => p.MaxLength)
+ .IgnoreProperty(p => p.MinLength))
);
diff --git a/MetaMorpheus/TaskLayer/PepXMLWriter.cs b/MetaMorpheus/TaskLayer/PepXMLWriter.cs
index 466879498..e4e2b3c68 100644
--- a/MetaMorpheus/TaskLayer/PepXMLWriter.cs
+++ b/MetaMorpheus/TaskLayer/PepXMLWriter.cs
@@ -1,12 +1,14 @@
using EngineLayer;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Xml.Serialization;
+using Omics.Fragmentation.Peptide;
+using Omics.Modifications;
namespace TaskLayer
{
diff --git a/MetaMorpheus/TaskLayer/SearchTask/MzIdentMLWriter.cs b/MetaMorpheus/TaskLayer/SearchTask/MzIdentMLWriter.cs
index 750896b20..05ecd5a7c 100644
--- a/MetaMorpheus/TaskLayer/SearchTask/MzIdentMLWriter.cs
+++ b/MetaMorpheus/TaskLayer/SearchTask/MzIdentMLWriter.cs
@@ -10,6 +10,8 @@
using System.Text;
using System.Xml;
using System.Xml.Serialization;
+using Omics.Digestion;
+using Omics.Modifications;
namespace TaskLayer
{
diff --git a/MetaMorpheus/TaskLayer/SearchTask/PostSearchAnalysisParameters.cs b/MetaMorpheus/TaskLayer/SearchTask/PostSearchAnalysisParameters.cs
index 2dc83fcb4..1251e6dd0 100644
--- a/MetaMorpheus/TaskLayer/SearchTask/PostSearchAnalysisParameters.cs
+++ b/MetaMorpheus/TaskLayer/SearchTask/PostSearchAnalysisParameters.cs
@@ -3,6 +3,7 @@
using Proteomics;
using Proteomics.ProteolyticDigestion;
using System.Collections.Generic;
+using Omics.Modifications;
namespace TaskLayer
{
diff --git a/MetaMorpheus/TaskLayer/SearchTask/PostSearchAnalysisTask.cs b/MetaMorpheus/TaskLayer/SearchTask/PostSearchAnalysisTask.cs
index 74e20bcac..f131b32ab 100644
--- a/MetaMorpheus/TaskLayer/SearchTask/PostSearchAnalysisTask.cs
+++ b/MetaMorpheus/TaskLayer/SearchTask/PostSearchAnalysisTask.cs
@@ -22,6 +22,7 @@
using MzLibUtil;
using Proteomics.AminoAcidPolymer;
using System.Text.Json.Serialization;
+using Omics.Modifications;
namespace TaskLayer
{
diff --git a/MetaMorpheus/TaskLayer/SearchTask/SearchParameters.cs b/MetaMorpheus/TaskLayer/SearchTask/SearchParameters.cs
index 3068e8f00..c11c69212 100644
--- a/MetaMorpheus/TaskLayer/SearchTask/SearchParameters.cs
+++ b/MetaMorpheus/TaskLayer/SearchTask/SearchParameters.cs
@@ -1,6 +1,7 @@
using System.Collections.Generic;
using UsefulProteomicsDatabases;
using EngineLayer;
+using Omics.Modifications;
using Proteomics;
namespace TaskLayer
diff --git a/MetaMorpheus/TaskLayer/SearchTask/SearchTask.cs b/MetaMorpheus/TaskLayer/SearchTask/SearchTask.cs
index e808c7732..2565349e6 100644
--- a/MetaMorpheus/TaskLayer/SearchTask/SearchTask.cs
+++ b/MetaMorpheus/TaskLayer/SearchTask/SearchTask.cs
@@ -7,13 +7,15 @@
using MassSpectrometry;
using MzLibUtil;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
+using Omics.Digestion;
+using Omics.Modifications;
namespace TaskLayer
{
diff --git a/MetaMorpheus/TaskLayer/TaskLayer.csproj b/MetaMorpheus/TaskLayer/TaskLayer.csproj
index 3976e9cd1..57b70d433 100644
--- a/MetaMorpheus/TaskLayer/TaskLayer.csproj
+++ b/MetaMorpheus/TaskLayer/TaskLayer.csproj
@@ -21,7 +21,7 @@
-
+
diff --git a/MetaMorpheus/TaskLayer/XLSearchTask/PostXLSearchAnalysisTask.cs b/MetaMorpheus/TaskLayer/XLSearchTask/PostXLSearchAnalysisTask.cs
index d2acd5168..59b84af77 100644
--- a/MetaMorpheus/TaskLayer/XLSearchTask/PostXLSearchAnalysisTask.cs
+++ b/MetaMorpheus/TaskLayer/XLSearchTask/PostXLSearchAnalysisTask.cs
@@ -6,6 +6,7 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using Omics.Modifications;
namespace TaskLayer
{
@@ -61,7 +62,7 @@ public MyTaskResults Run(string outputFolder, List dbFilenameList, Li
foreach (var fullFilePath in currentRawFileList)
{
string fileNameNoExtension = Path.GetFileNameWithoutExtension(fullFilePath);
- WriteFile.WritePepXML_xl(writeToXml.Where(p => p.FullFilePath == fullFilePath).ToList(), proteinList, dbFilenameList[0].FilePath, variableModifications, fixedModifications, localizeableModificationTypes, outputFolder, fileNameNoExtension, commonParameters, xlSearchParameters);
+ WriteXlFile.WritePepXML_xl(writeToXml.Where(p => p.FullFilePath == fullFilePath).ToList(), proteinList, dbFilenameList[0].FilePath, variableModifications, fixedModifications, localizeableModificationTypes, outputFolder, fileNameNoExtension, commonParameters, xlSearchParameters);
FinishedWritingFile(Path.Combine(outputFolder, fileNameNoExtension + ".pep.XML"), new List { taskId });
}
}
@@ -120,14 +121,14 @@ public void WriteCsvFiles(string outputFolder, List inte
if (interCsms.Any())
{
string file = Path.Combine(outputFolder, "XL_Interlinks.tsv");
- WriteFile.WritePsmCrossToTsv(interCsms, file, 2);
+ WriteXlFile.WritePsmCrossToTsv(interCsms, file, 2);
FinishedWritingFile(file, new List { taskId });
}
if (xlSearchParameters.WriteOutputForPercolator)
{
var interPsmsXLPercolator = interCsms.Where(p => p.Score >= 2 && p.BetaPeptide.Score >= 2).OrderBy(p => p.ScanNumber).ToList();
- WriteFile.WriteCrosslinkToTxtForPercolator(interPsmsXLPercolator, outputFolder, "XL_Interlinks_Percolator", xlSearchParameters.Crosslinker);
+ WriteXlFile.WriteCrosslinkToTxtForPercolator(interPsmsXLPercolator, outputFolder, "XL_Interlinks_Percolator", xlSearchParameters.Crosslinker);
FinishedWritingFile(Path.Combine(outputFolder, "XL_Interlinks_Percolator.txt"), new List { taskId });
}
@@ -135,14 +136,14 @@ public void WriteCsvFiles(string outputFolder, List inte
if (intraCsms.Any())
{
string file = Path.Combine(outputFolder, "XL_Intralinks.tsv");
- WriteFile.WritePsmCrossToTsv(intraCsms, file, 2);
+ WriteXlFile.WritePsmCrossToTsv(intraCsms, file, 2);
FinishedWritingFile(file, new List { taskId });
}
if (xlSearchParameters.WriteOutputForPercolator)
{
var intraPsmsXLPercolator = intraCsms.Where(p => p.Score >= 2 && p.BetaPeptide.Score >= 2).OrderBy(p => p.ScanNumber).ToList();
- WriteFile.WriteCrosslinkToTxtForPercolator(intraPsmsXLPercolator, outputFolder, "XL_Intralinks_Percolator", xlSearchParameters.Crosslinker);
+ WriteXlFile.WriteCrosslinkToTxtForPercolator(intraPsmsXLPercolator, outputFolder, "XL_Intralinks_Percolator", xlSearchParameters.Crosslinker);
FinishedWritingFile(Path.Combine(outputFolder, "XL_Intralinks_Percolator.txt"), new List { taskId });
}
@@ -151,7 +152,7 @@ public void WriteCsvFiles(string outputFolder, List inte
if (singlePsms.Any())
{
string writtenFileSingle = Path.Combine(outputFolder, "SinglePeptides" + ".tsv");
- WriteFile.WritePsmCrossToTsv(singlePsms, writtenFileSingle, 1);
+ WriteXlFile.WritePsmCrossToTsv(singlePsms, writtenFileSingle, 1);
FinishedWritingFile(writtenFileSingle, new List { taskId });
}
@@ -159,7 +160,7 @@ public void WriteCsvFiles(string outputFolder, List inte
if (loopPsms.Any())
{
string writtenFileLoop = Path.Combine(outputFolder, "Looplinks" + ".tsv");
- WriteFile.WritePsmCrossToTsv(loopPsms, writtenFileLoop, 1);
+ WriteXlFile.WritePsmCrossToTsv(loopPsms, writtenFileLoop, 1);
FinishedWritingFile(writtenFileLoop, new List { taskId });
}
@@ -167,7 +168,7 @@ public void WriteCsvFiles(string outputFolder, List inte
if (deadendPsms.Any())
{
string writtenFileDeadend = Path.Combine(outputFolder, "Deadends" + ".tsv");
- WriteFile.WritePsmCrossToTsv(deadendPsms, writtenFileDeadend, 1);
+ WriteXlFile.WritePsmCrossToTsv(deadendPsms, writtenFileDeadend, 1);
FinishedWritingFile(writtenFileDeadend, new List { taskId });
}
}
diff --git a/MetaMorpheus/TaskLayer/XLSearchTask/WriteFile.cs b/MetaMorpheus/TaskLayer/XLSearchTask/WriteXlFile.cs
similarity index 85%
rename from MetaMorpheus/TaskLayer/XLSearchTask/WriteFile.cs
rename to MetaMorpheus/TaskLayer/XLSearchTask/WriteXlFile.cs
index 95ad8e996..1b8f8846e 100644
--- a/MetaMorpheus/TaskLayer/XLSearchTask/WriteFile.cs
+++ b/MetaMorpheus/TaskLayer/XLSearchTask/WriteXlFile.cs
@@ -2,7 +2,7 @@
using EngineLayer.CrosslinkSearch;
using EngineLayer.GlycoSearch;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -10,10 +10,12 @@
using System.Linq;
using System.Xml.Serialization;
using Easy.Common.Extensions;
+using Omics.Fragmentation.Peptide;
+using Omics.Modifications;
namespace TaskLayer
{
- public static class WriteFile
+ public static class WriteXlFile
{
public static void WritePsmCrossToTsv(List items, string filePath, int writeType)
{
@@ -419,105 +421,5 @@ public static void WritePepXML_xl(List items, List items, string filePath, int writeType)
- {
- if (items.Count == 0)
- {
- return;
- }
-
- using (StreamWriter output = new StreamWriter(filePath))
- {
- string header = "";
- switch (writeType)
- {
- case 1:
- header = GlycoSpectralMatch.GetTabSepHeaderSingle();
- break;
- case 2:
- header = GlycoSpectralMatch.GetTabSepHeaderOGlyco();
- break;
- case 3:
- header = GlycoSpectralMatch.GetTabSepHeaderNGlyco();
- break;
- default:
- break;
- }
- output.WriteLine(header);
- foreach (var heh in items)
- {
- output.WriteLine(heh.ToString());
- }
- }
- }
-
- //The function is to summarize localized glycan by protein site.
- public static void WriteSeenProteinGlycoLocalization(Dictionary<(string proteinAccession, string proteinPosition, int glycanId), GlycoProteinParsimony> glycoProteinParsimony, string outputPath)
- {
- if (glycoProteinParsimony.Keys.Count == 0)
- { return; }
- var writtenFile = Path.Combine(outputPath);
- using (StreamWriter output = new StreamWriter(writtenFile))
- {
- output.WriteLine("Protein Accession\tModification Site\tAminoAcid\tLocalized Glycans\tLocalized\tLowest Qvalue\tBest Localization Level\tMax Site Specific Probability");
- foreach (var item in glycoProteinParsimony.OrderBy(i=>i.Key.proteinAccession))
- {
- if (item.Value != null)
- {
- output.WriteLine(
- item.Key.proteinAccession + "\t" +
- item.Key.proteinPosition + "\t" +
- item.Value.AminoAcid + "\t" +
- GlycanBox.GlobalOGlycans[item.Key.glycanId].Composition + "\t" +
- item.Value.IsLocalized + "\t" +
- item.Value.MinQValue.ToString("0.000") + "\t" +
- item.Value.BestLocalizeLevel + "\t" +
- item.Value.MaxProbability.ToString("0.000"));
-
- }
- }
- }
- }
-
- //The function is to summarize localized glycosylation of each protein site.
- public static void WriteProteinGlycoLocalization(Dictionary<(string proteinAccession, string proteinPosition, int glycanId), GlycoProteinParsimony> glycoProteinParsimony, string outputPath)
- {
- if (glycoProteinParsimony.Count == 0)
- { return; }
-
- Dictionary> localizedglycans = new Dictionary>();
- foreach (var item in glycoProteinParsimony.Where(p=>p.Value.IsLocalized && p.Value.MinQValue <= 0.01))
- {
-
- var key = item.Key.proteinAccession + "#" + item.Key.proteinPosition;
- if ( localizedglycans.ContainsKey(key))
- {
- localizedglycans[key].Add(item.Key.glycanId.ToString());
- }
- else
- {
- localizedglycans[key] = new HashSet();
- localizedglycans[key].Add(item.Key.glycanId.ToString());
- }
-
- }
-
- var writtenFile = Path.Combine(outputPath);
- using (StreamWriter output = new StreamWriter(writtenFile))
- {
- output.WriteLine("Protein Accession\tModification Site\tLocalized Glycan Number\tLocalized Glycans");
- foreach (var local in localizedglycans.OrderBy(p => p.Key))
- {
- var x = local.Key.Split('#');
- output.WriteLine(
- x[0] + "\t" +
- x[1] + "\t" +
- local.Value.Count() + "\t" +
- String.Join(",", local.Value.Select(p=> GlycanBox.GlobalOGlycans[int.Parse(p)].Composition))
- );
- }
- }
- }
}
}
\ No newline at end of file
diff --git a/MetaMorpheus/Test/AddCompIonsTest.cs b/MetaMorpheus/Test/AddCompIonsTest.cs
index ee5e8b178..c3a59ed5a 100644
--- a/MetaMorpheus/Test/AddCompIonsTest.cs
+++ b/MetaMorpheus/Test/AddCompIonsTest.cs
@@ -7,13 +7,15 @@
using MzLibUtil;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using Proteomics.RetentionTimePrediction;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using Omics.Digestion;
+using Omics.Modifications;
using TaskLayer;
using UsefulProteomicsDatabases;
diff --git a/MetaMorpheus/Test/AmbiguityTest.cs b/MetaMorpheus/Test/AmbiguityTest.cs
index 87e03ebb8..96dbc0e13 100644
--- a/MetaMorpheus/Test/AmbiguityTest.cs
+++ b/MetaMorpheus/Test/AmbiguityTest.cs
@@ -4,12 +4,14 @@
using MzLibUtil;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using Omics.Digestion;
+using Omics.Modifications;
using TaskLayer;
using UsefulProteomicsDatabases;
diff --git a/MetaMorpheus/Test/AnalysisEngineTest.cs b/MetaMorpheus/Test/AnalysisEngineTest.cs
index 9f07fb7f6..a4cd54884 100644
--- a/MetaMorpheus/Test/AnalysisEngineTest.cs
+++ b/MetaMorpheus/Test/AnalysisEngineTest.cs
@@ -5,11 +5,13 @@
using MzLibUtil;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.Linq;
+using Omics.Digestion;
+using Omics.Modifications;
using TaskLayer;
namespace Test
diff --git a/MetaMorpheus/Test/BinGenerationTest.cs b/MetaMorpheus/Test/BinGenerationTest.cs
index e513c7527..47cde2c42 100644
--- a/MetaMorpheus/Test/BinGenerationTest.cs
+++ b/MetaMorpheus/Test/BinGenerationTest.cs
@@ -7,6 +7,7 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using Omics.Modifications;
using TaskLayer;
using UsefulProteomicsDatabases;
diff --git a/MetaMorpheus/Test/CoIsolationTests.cs b/MetaMorpheus/Test/CoIsolationTests.cs
index dee54bda7..5f932119f 100644
--- a/MetaMorpheus/Test/CoIsolationTests.cs
+++ b/MetaMorpheus/Test/CoIsolationTests.cs
@@ -5,11 +5,13 @@
using MzLibUtil;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.Linq;
+using Omics.Digestion;
+using Omics.Modifications;
using Readers;
using TaskLayer;
diff --git a/MetaMorpheus/Test/CustomFragmentationTest.cs b/MetaMorpheus/Test/CustomFragmentationTest.cs
index 96fd8c5ac..3f0d6bac1 100644
--- a/MetaMorpheus/Test/CustomFragmentationTest.cs
+++ b/MetaMorpheus/Test/CustomFragmentationTest.cs
@@ -2,12 +2,13 @@
using MzLibUtil;
using Nett;
using NUnit.Framework;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Linq;
using MassSpectrometry;
+using Omics.Fragmentation.Peptide;
using TaskLayer;
namespace Test
diff --git a/MetaMorpheus/Test/DigestionModificationTests.cs b/MetaMorpheus/Test/DigestionModificationTests.cs
index 269251541..a3884b357 100644
--- a/MetaMorpheus/Test/DigestionModificationTests.cs
+++ b/MetaMorpheus/Test/DigestionModificationTests.cs
@@ -7,6 +7,7 @@
using System.IO;
using System.Linq;
using System.Text;
+using Omics.Modifications;
using UsefulProteomicsDatabases;
namespace Test
diff --git a/MetaMorpheus/Test/EventArgsTest.cs b/MetaMorpheus/Test/EventArgsTest.cs
index 9b4c28c92..986630c16 100644
--- a/MetaMorpheus/Test/EventArgsTest.cs
+++ b/MetaMorpheus/Test/EventArgsTest.cs
@@ -5,12 +5,13 @@
using MzLibUtil;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
+using Omics.Modifications;
namespace Test
{
diff --git a/MetaMorpheus/Test/FdrTest.cs b/MetaMorpheus/Test/FdrTest.cs
index 15896e54c..63d2d3098 100644
--- a/MetaMorpheus/Test/FdrTest.cs
+++ b/MetaMorpheus/Test/FdrTest.cs
@@ -8,12 +8,14 @@
using MzLibUtil;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using Omics.Digestion;
+using Omics.Modifications;
using TaskLayer;
using UsefulProteomicsDatabases;
@@ -263,7 +265,7 @@ public static void TestComputePEPValue()
PeptideWithSetModifications varPep = variantProtein.GetVariantProteins().SelectMany(p => p.Digest(CommonParameters.DigestionParams, null, null)).FirstOrDefault();
Product prod = new Product(ProductType.b, FragmentationTerminus.N, 1, 1, 1, 0);
- List mfi = new List { new MatchedFragmentIon(ref prod, 1, 1.0, 1) };
+ List mfi = new List { new MatchedFragmentIon(prod, 1, 1.0, 1) };
PeptideSpectralMatch variantPSM = new PeptideSpectralMatch(varPep, 0, maxScorePsm.Score, maxScorePsm.ScanIndex, scan, new CommonParameters(), mfi);
diff --git a/MetaMorpheus/Test/GPTMDengineTest.cs b/MetaMorpheus/Test/GPTMDengineTest.cs
index b89790e8e..dfc0fcef3 100644
--- a/MetaMorpheus/Test/GPTMDengineTest.cs
+++ b/MetaMorpheus/Test/GPTMDengineTest.cs
@@ -5,11 +5,12 @@
using MzLibUtil;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.Linq;
+using Omics.Modifications;
using TaskLayer;
using UsefulProteomicsDatabases;
diff --git a/MetaMorpheus/Test/IndexEngineTest.cs b/MetaMorpheus/Test/IndexEngineTest.cs
index 3e2fa5e80..1cdf6e962 100644
--- a/MetaMorpheus/Test/IndexEngineTest.cs
+++ b/MetaMorpheus/Test/IndexEngineTest.cs
@@ -3,12 +3,14 @@
using MassSpectrometry;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using Omics.Digestion;
+using Omics.Modifications;
using UsefulProteomicsDatabases;
namespace Test
diff --git a/MetaMorpheus/Test/LocalizationTest.cs b/MetaMorpheus/Test/LocalizationTest.cs
index a7ee32e96..cc553ff84 100644
--- a/MetaMorpheus/Test/LocalizationTest.cs
+++ b/MetaMorpheus/Test/LocalizationTest.cs
@@ -5,10 +5,11 @@
using MzLibUtil;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System.Collections.Generic;
using System.Linq;
+using Omics.Modifications;
namespace Test
{
diff --git a/MetaMorpheus/Test/MatchIonsOfAllCharges.cs b/MetaMorpheus/Test/MatchIonsOfAllCharges.cs
index b83c4b012..9635645b6 100644
--- a/MetaMorpheus/Test/MatchIonsOfAllCharges.cs
+++ b/MetaMorpheus/Test/MatchIonsOfAllCharges.cs
@@ -7,7 +7,7 @@
using MzLibUtil;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using TaskLayer;
using Chemistry;
@@ -15,6 +15,8 @@
using MassSpectrometry;
using Nett;
using EngineLayer.Gptmd;
+using Omics.Digestion;
+using Omics.Modifications;
using static System.Net.WebRequestMethods;
namespace Test
@@ -458,10 +460,10 @@ public static void TestDecoyLibrarySpectraGenerationFunction()
Product c = new Product(ProductType.b, FragmentationTerminus.N, 3, 3, 1, 0);
Product d = new Product(ProductType.b, FragmentationTerminus.N, 4, 4, 1, 0);
var decoyPeptideTheorProducts = new List { a, b, c, d };
- MatchedFragmentIon aa = new MatchedFragmentIon(ref a, 1, 1, 1);
- MatchedFragmentIon bb = new MatchedFragmentIon(ref b, 2, 2, 1);
- MatchedFragmentIon cc = new MatchedFragmentIon(ref c, 3, 3, 1);
- MatchedFragmentIon dd = new MatchedFragmentIon(ref d, 4, 4, 1);
+ MatchedFragmentIon aa = new MatchedFragmentIon(a, 1, 1, 1);
+ MatchedFragmentIon bb = new MatchedFragmentIon(b, 2, 2, 1);
+ MatchedFragmentIon cc = new MatchedFragmentIon(c, 3, 3, 1);
+ MatchedFragmentIon dd = new MatchedFragmentIon(d, 4, 4, 1);
var peaks = new List { aa, bb, cc, dd };
var librarySpectrum = new LibrarySpectrum("library", 0, 0, peaks, 0);
var decoySpectum = SpectralLibrarySearchFunction.GetDecoyLibrarySpectrumFromTargetByReverse(librarySpectrum, decoyPeptideTheorProducts);
diff --git a/MetaMorpheus/Test/MetaDraw/MetaDrawSettingsAndViewsTest.cs b/MetaMorpheus/Test/MetaDraw/MetaDrawSettingsAndViewsTest.cs
index 525507e90..5661074e2 100644
--- a/MetaMorpheus/Test/MetaDraw/MetaDrawSettingsAndViewsTest.cs
+++ b/MetaMorpheus/Test/MetaDraw/MetaDrawSettingsAndViewsTest.cs
@@ -8,7 +8,7 @@
using GuiFunctions.ViewModels.Legends;
using NUnit.Framework;
using OxyPlot;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
namespace Test.MetaDraw
@@ -94,6 +94,8 @@ public static void TestSaveAndLoadDefaultSettings()
string outputFolder =
Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestMetaDrawWithSpectraLibrary");
+ if (Directory.Exists(outputFolder))
+ Directory.Delete(outputFolder, true);
Assert.That(!Directory.Exists(outputFolder));
MetaDrawSettingsViewModel.SettingsPath = Path.Combine(outputFolder, @"MetaDrawSettingsDefault.xml");
diff --git a/MetaMorpheus/Test/MetaDraw/MetaDrawTest.cs b/MetaMorpheus/Test/MetaDraw/MetaDrawTest.cs
index 147b3c9fa..7dafc48b8 100644
--- a/MetaMorpheus/Test/MetaDraw/MetaDrawTest.cs
+++ b/MetaMorpheus/Test/MetaDraw/MetaDrawTest.cs
@@ -16,7 +16,7 @@
using MassSpectrometry;
using NUnit.Framework;
using OxyPlot.Series;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using Readers;
using TaskLayer;
@@ -1125,6 +1125,8 @@ public static void TestMetaDrawLoadingWithWeirdFileNames()
metadrawLogic.CleanUpResources();
// delete output
+
+
File.Delete(pathWithPeriodInIt);
Directory.Delete(outputFolder, true);
}
diff --git a/MetaMorpheus/Test/MetaDraw/SpectrumMatchPlotTests.cs b/MetaMorpheus/Test/MetaDraw/SpectrumMatchPlotTests.cs
index c5dd8d865..fd77aaae3 100644
--- a/MetaMorpheus/Test/MetaDraw/SpectrumMatchPlotTests.cs
+++ b/MetaMorpheus/Test/MetaDraw/SpectrumMatchPlotTests.cs
@@ -11,7 +11,7 @@
using NUnit.Framework;
using OxyPlot;
using OxyPlot.Annotations;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using TaskLayer;
namespace Test.MetaDraw
diff --git a/MetaMorpheus/Test/ModificationAnalysisTest.cs b/MetaMorpheus/Test/ModificationAnalysisTest.cs
index 5cc07a04c..ae6275616 100644
--- a/MetaMorpheus/Test/ModificationAnalysisTest.cs
+++ b/MetaMorpheus/Test/ModificationAnalysisTest.cs
@@ -4,10 +4,12 @@
using MassSpectrometry;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System.Collections.Generic;
using System.Linq;
+using Omics.Digestion;
+using Omics.Modifications;
namespace Test
{
diff --git a/MetaMorpheus/Test/MultiProteaseParsimonyTest.cs b/MetaMorpheus/Test/MultiProteaseParsimonyTest.cs
index e1b4c513c..2fdd76fc4 100644
--- a/MetaMorpheus/Test/MultiProteaseParsimonyTest.cs
+++ b/MetaMorpheus/Test/MultiProteaseParsimonyTest.cs
@@ -3,12 +3,14 @@
using MassSpectrometry;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using Omics.Digestion;
+using Omics.Modifications;
using TaskLayer;
namespace Test
@@ -252,20 +254,20 @@ public static void MultiProteaseParsimony_SharedSequenceCanBeUniquePeptide()
Assert.AreEqual(2, proteinGroup1.AllPeptides.Count);
Assert.AreEqual(1, proteinGroup1.UniquePeptides.Count);
var pg1pep1 = proteinGroup1.AllPeptides.Where(p => p.BaseSequence == "XYZ").First();
- Assert.That(pg1pep1.DigestionParams.Protease.Name == "proteaseA");
+ Assert.That(pg1pep1.DigestionParams.DigestionAgent.Name == "proteaseA");
var pg1pep2 = proteinGroup1.AllPeptides.Where(p => p.BaseSequence == "ABC").First();
- Assert.That(pg1pep2.DigestionParams.Protease.Name == "proteaseA");
+ Assert.That(pg1pep2.DigestionParams.DigestionAgent.Name == "proteaseA");
Assert.That(proteinGroup1.UniquePeptides.First().BaseSequence.Equals("ABC"));
var proteinGroup2 = proteinGroups.Where(p => p.ProteinGroupName == "2").First();
Assert.AreEqual(3, proteinGroup2.AllPeptides.Count);
Assert.AreEqual(2, proteinGroup2.UniquePeptides.Count);
var pg2pep1 = proteinGroup2.AllPeptides.Where(p => p.BaseSequence == "XYZ").First();
- Assert.That(pg2pep1.DigestionParams.Protease.Name == "proteaseA");
+ Assert.That(pg2pep1.DigestionParams.DigestionAgent.Name == "proteaseA");
var pg2pep2 = proteinGroup2.AllPeptides.Where(p => p.BaseSequence == "ABC").First();
- Assert.That(pg2pep2.DigestionParams.Protease.Name == "proteaseB");
+ Assert.That(pg2pep2.DigestionParams.DigestionAgent.Name == "proteaseB");
var pg2pep3 = proteinGroup2.AllPeptides.Where(p => p.BaseSequence == "EFGABC").First();
- Assert.That(pg2pep3.DigestionParams.Protease.Name == "proteaseA");
+ Assert.That(pg2pep3.DigestionParams.DigestionAgent.Name == "proteaseA");
var uniquePeptideSequences = proteinGroup2.UniquePeptides.Select(p => p.BaseSequence).ToList();
Assert.That(uniquePeptideSequences.Contains("ABC"));
Assert.That(uniquePeptideSequences.Contains("EFGABC"));
@@ -345,9 +347,9 @@ public static void MultiProteaseParsimony_IndistringuishableProteinsNowDistingui
PeptideWithSetModifications pg1pep1 = pg1.AllPeptides.Where(v => v.BaseSequence == "ABC").First();
PeptideWithSetModifications pg1pep2 = pg1.AllPeptides.Where(v => v.BaseSequence == "EFG").First();
Assert.That(pg1.UniquePeptides.Contains(pg1pep1));
- Assert.That(pg1pep1.DigestionParams.Protease.Name == "testA");
+ Assert.That(pg1pep1.DigestionParams.DigestionAgent.Name == "testA");
Assert.That(pg1.UniquePeptides.Contains(pg1pep2));
- Assert.That(pg1pep2.DigestionParams.Protease.Name == "testA");
+ Assert.That(pg1pep2.DigestionParams.DigestionAgent.Name == "testA");
Assert.That(pg1.AllPeptides.Count == 2);
Assert.That(pg1.UniquePeptides.Count == 2);
@@ -356,9 +358,9 @@ public static void MultiProteaseParsimony_IndistringuishableProteinsNowDistingui
PeptideWithSetModifications pg2pep1 = pg2.AllPeptides.Where(v => v.BaseSequence == "ABC").First();
PeptideWithSetModifications pg2pep2 = pg2.AllPeptides.Where(v => v.BaseSequence == "EFG").First();
Assert.That(pg2.UniquePeptides.Contains(pg2pep1));
- Assert.That(pg2pep1.DigestionParams.Protease.Name == "testB");
+ Assert.That(pg2pep1.DigestionParams.DigestionAgent.Name == "testB");
Assert.That(pg2.UniquePeptides.Contains(pg2pep2));
- Assert.That(pg2pep2.DigestionParams.Protease.Name == "testB");
+ Assert.That(pg2pep2.DigestionParams.DigestionAgent.Name == "testB");
Assert.That(pg2.AllPeptides.Count == 2);
Assert.That(pg2.UniquePeptides.Count == 2);
}
diff --git a/MetaMorpheus/Test/Multiplex_Labeling_TMT_iTRAQ.cs b/MetaMorpheus/Test/Multiplex_Labeling_TMT_iTRAQ.cs
index 2b0887175..20682d7b3 100644
--- a/MetaMorpheus/Test/Multiplex_Labeling_TMT_iTRAQ.cs
+++ b/MetaMorpheus/Test/Multiplex_Labeling_TMT_iTRAQ.cs
@@ -4,7 +4,7 @@
using MassSpectrometry;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
@@ -17,6 +17,7 @@
using TaskLayer;
using UsefulProteomicsDatabases;
using System.Threading.Tasks;
+using Omics.Modifications;
namespace Test
{
diff --git a/MetaMorpheus/Test/MyPeptideTest.cs b/MetaMorpheus/Test/MyPeptideTest.cs
index 0f71ea28a..04af2371e 100644
--- a/MetaMorpheus/Test/MyPeptideTest.cs
+++ b/MetaMorpheus/Test/MyPeptideTest.cs
@@ -7,13 +7,14 @@
using MzLibUtil;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using UsefulProteomicsDatabases;
+ using Omics.Modifications;
+ using UsefulProteomicsDatabases;
namespace Test
{
diff --git a/MetaMorpheus/Test/MyTaskTest.cs b/MetaMorpheus/Test/MyTaskTest.cs
index ee4ebd4ff..be7cf4f8d 100644
--- a/MetaMorpheus/Test/MyTaskTest.cs
+++ b/MetaMorpheus/Test/MyTaskTest.cs
@@ -11,6 +11,7 @@
using System.IO;
using System.Linq;
using System.Reflection;
+using Omics.Modifications;
using TaskLayer;
using UsefulProteomicsDatabases;
diff --git a/MetaMorpheus/Test/OutputTest.cs b/MetaMorpheus/Test/OutputTest.cs
index af0d9c4b4..0ab40e7ff 100644
--- a/MetaMorpheus/Test/OutputTest.cs
+++ b/MetaMorpheus/Test/OutputTest.cs
@@ -116,8 +116,8 @@ public static void TestOpairFileOutput()
//check that the first task wrote everything fine
HashSet expectedFiles = new()
{
- "_AllProteinGroups.tsv",
"AllPSMs.psmtsv",
+ "_AllProteinGroups.tsv",
"oglyco.psmtsv",
"protein_oglyco_localization.tsv",
"seen_oglyco_localization.tsv",
diff --git a/MetaMorpheus/Test/ParameterTest.cs b/MetaMorpheus/Test/ParameterTest.cs
index 6b8ab924f..567d7f1cb 100644
--- a/MetaMorpheus/Test/ParameterTest.cs
+++ b/MetaMorpheus/Test/ParameterTest.cs
@@ -3,11 +3,13 @@
using MzLibUtil;
using Nett;
using NUnit.Framework;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.IO;
+using Omics.Digestion;
+using Omics.Fragmentation.Peptide;
using TaskLayer;
namespace Test
diff --git a/MetaMorpheus/Test/ProteinGroupTest.cs b/MetaMorpheus/Test/ProteinGroupTest.cs
index bb4c15d8e..8d92eb2b8 100644
--- a/MetaMorpheus/Test/ProteinGroupTest.cs
+++ b/MetaMorpheus/Test/ProteinGroupTest.cs
@@ -11,6 +11,8 @@
using TaskLayer;
using ProteinGroup = EngineLayer.ProteinGroup;
using System.IO;
+using Omics.Digestion;
+using Omics.Modifications;
using UsefulProteomicsDatabases;
namespace Test
diff --git a/MetaMorpheus/Test/PsmTsvWriterTests.cs b/MetaMorpheus/Test/PsmTsvWriterTests.cs
index 0c5b364c0..db9b9f74f 100644
--- a/MetaMorpheus/Test/PsmTsvWriterTests.cs
+++ b/MetaMorpheus/Test/PsmTsvWriterTests.cs
@@ -3,9 +3,11 @@
using MassSpectrometry;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System.Collections.Generic;
+using Omics.Digestion;
+using Omics.Modifications;
namespace Test
{
@@ -54,7 +56,7 @@ public static void ResolveModificationsTest()
//we're adding a neutral loss of 5 to the product to make sure we hit the right spot in the unit test to add that loss to the product ion string
Product p = new Product(ProductType.b, FragmentationTerminus.N, 1, 1, 1, 5);
- mfi.Add(new MatchedFragmentIon(ref p, 1, 1, 1));
+ mfi.Add(new MatchedFragmentIon(p, 1, 1, 1));
PeptideSpectralMatch myPsm = new PeptideSpectralMatch(pwsm1, 0, 10, 0, scan, new CommonParameters(), mfi);
myPsm.AddOrReplace(pwsm2, 10, 0, true, mfi, 10);
diff --git a/MetaMorpheus/Test/PsvTsvTest.cs b/MetaMorpheus/Test/PsvTsvTest.cs
index dd3ed1000..55fd5c5f0 100644
--- a/MetaMorpheus/Test/PsvTsvTest.cs
+++ b/MetaMorpheus/Test/PsvTsvTest.cs
@@ -1,7 +1,7 @@
using EngineLayer;
using GuiFunctions;
using NUnit.Framework;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using System.Collections.Generic;
using System.IO;
using System.Linq;
@@ -239,7 +239,7 @@ public static void TestSimpleToLibrarySpectrum()
//the code below tests the addition and correct output for neutral loss fragments
Product p = new Product(ProductType.bWaterLoss, FragmentationTerminus.N, 1, 1, 1, 18);
- MatchedFragmentIon matchedIon = new(ref p, 1, 1, 1);
+ MatchedFragmentIon matchedIon = new(p, 1, 1, 1);
psms[0].MatchedIons.Add(matchedIon);
string librarySpectrumWithNeutralLoss = psms[0].ToLibrarySpectrum().ToString();
diff --git a/MetaMorpheus/Test/QuantificationTest.cs b/MetaMorpheus/Test/QuantificationTest.cs
index d61748b82..4df793fd9 100644
--- a/MetaMorpheus/Test/QuantificationTest.cs
+++ b/MetaMorpheus/Test/QuantificationTest.cs
@@ -5,7 +5,7 @@
using MzLibUtil;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using Readers;
using System;
@@ -13,6 +13,7 @@
using System.IO;
using System.Linq;
using System.Text;
+using Omics.Modifications;
using TaskLayer;
namespace Test
@@ -192,7 +193,7 @@ public static void TestProteinQuantFileHeaders(bool hasDefinedExperimentalDesign
mzAnalyzer: MZAnalyzerType.Orbitrap, totalIonCurrent: intensities.Sum(), injectionTime: 1.0, noiseData: null, nativeId: "scan=1");
// create the MS2 scan
- var pep = new PeptideWithSetModifications(peptide, new Dictionary());
+ var pep = new PeptideWithSetModifications(peptide, new Dictionary());
List frags = new List();
pep.Fragment(DissociationType.HCD, FragmentationTerminus.Both, frags);
double[] mz2 = frags.Select(v => v.NeutralMass.ToMz(1)).ToArray();
diff --git a/MetaMorpheus/Test/RetentionTimeTest.cs b/MetaMorpheus/Test/RetentionTimeTest.cs
index 41efd41aa..72102952c 100644
--- a/MetaMorpheus/Test/RetentionTimeTest.cs
+++ b/MetaMorpheus/Test/RetentionTimeTest.cs
@@ -3,6 +3,7 @@
using Proteomics.ProteolyticDigestion;
using Proteomics.RetentionTimePrediction;
using System.Collections.Generic;
+using Omics.Modifications;
namespace Test
{
diff --git a/MetaMorpheus/Test/RobTest.cs b/MetaMorpheus/Test/RobTest.cs
index 9a3d98f8f..9c7ce8f56 100644
--- a/MetaMorpheus/Test/RobTest.cs
+++ b/MetaMorpheus/Test/RobTest.cs
@@ -4,11 +4,13 @@
using MzLibUtil;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.Linq;
+using Omics.Digestion;
+using Omics.Modifications;
namespace Test
{
diff --git a/MetaMorpheus/Test/SearchEngineTests.cs b/MetaMorpheus/Test/SearchEngineTests.cs
index 390cbd8f6..5d02cefce 100644
--- a/MetaMorpheus/Test/SearchEngineTests.cs
+++ b/MetaMorpheus/Test/SearchEngineTests.cs
@@ -10,12 +10,14 @@
using NUnit.Framework;
using Proteomics;
using Proteomics.AminoAcidPolymer;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using Omics.Digestion;
+using Omics.Modifications;
using Readers;
using TaskLayer;
using UsefulProteomicsDatabases;
diff --git a/MetaMorpheus/Test/SearchTaskTest.cs b/MetaMorpheus/Test/SearchTaskTest.cs
index fbec1126d..dc3cb447c 100644
--- a/MetaMorpheus/Test/SearchTaskTest.cs
+++ b/MetaMorpheus/Test/SearchTaskTest.cs
@@ -3,13 +3,15 @@
using MzLibUtil;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
+using Omics.Digestion;
+using Omics.Modifications;
using TaskLayer;
namespace Test
diff --git a/MetaMorpheus/Test/SearchWithPeptidesAddedInParsimony.cs b/MetaMorpheus/Test/SearchWithPeptidesAddedInParsimony.cs
index 3d0cf7f57..e7c44fe94 100644
--- a/MetaMorpheus/Test/SearchWithPeptidesAddedInParsimony.cs
+++ b/MetaMorpheus/Test/SearchWithPeptidesAddedInParsimony.cs
@@ -7,6 +7,7 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using Omics.Modifications;
using TaskLayer;
using UsefulProteomicsDatabases;
diff --git a/MetaMorpheus/Test/SeqCoverageTest.cs b/MetaMorpheus/Test/SeqCoverageTest.cs
index b405bea77..620fb1c75 100644
--- a/MetaMorpheus/Test/SeqCoverageTest.cs
+++ b/MetaMorpheus/Test/SeqCoverageTest.cs
@@ -2,12 +2,14 @@
using EngineLayer;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System.Collections.Generic;
using System.Linq;
using MassSpectrometry;
using FlashLFQ;
+using Omics.Digestion;
+using Omics.Modifications;
using TaskLayer;
namespace Test
@@ -121,10 +123,10 @@ public static void TestFragmentSequenceCoverage()
Product producty1 = new (ProductType.y, FragmentationTerminus.C, 0, 1, 3, 0);
Product producty2 = new (ProductType.y, FragmentationTerminus.C, 0, 2, 2, 0);
- MatchedFragmentIon mfib1 = new MatchedFragmentIon(ref productb1, 0, 0, 1);
- MatchedFragmentIon mfib2 = new MatchedFragmentIon(ref productb2, 0, 0, 2);
- MatchedFragmentIon mfiy1 = new MatchedFragmentIon(ref producty1, 0, 0, 2);
- MatchedFragmentIon mfiy2 = new MatchedFragmentIon(ref producty2, 0, 0, 2);
+ MatchedFragmentIon mfib1 = new MatchedFragmentIon(productb1, 0, 0, 1);
+ MatchedFragmentIon mfib2 = new MatchedFragmentIon(productb2, 0, 0, 2);
+ MatchedFragmentIon mfiy1 = new MatchedFragmentIon(producty1, 0, 0, 2);
+ MatchedFragmentIon mfiy2 = new MatchedFragmentIon(producty2, 0, 0, 2);
List mfis1 = new List { mfib1 };
List mfis2 = new List { mfib2, mfiy1, mfiy2 };
diff --git a/MetaMorpheus/Test/SilacTest.cs b/MetaMorpheus/Test/SilacTest.cs
index f9c17b02b..74f86989a 100644
--- a/MetaMorpheus/Test/SilacTest.cs
+++ b/MetaMorpheus/Test/SilacTest.cs
@@ -7,6 +7,7 @@
using System;
using System.Collections.Generic;
using System.IO;
+using Omics.Modifications;
using TaskLayer;
using UsefulProteomicsDatabases;
@@ -376,7 +377,7 @@ public static void TestSilacTurnover()
string[] output = File.ReadAllLines(TestContext.CurrentContext.TestDirectory + @"/TestSilac/AllQuantifiedPeptides.tsv");
Assert.IsTrue(output[1].Contains("PEPTKIDEK\t")); //test the unlabeled is present
Assert.IsTrue(output[0].Contains("\tIntensity_silac_Original\tIntensity_silac_NewlySynthesized\tIntensity_silacPart2_Original\tIntensity_silacPart2_NewlySynthesized\t" +
- "Detection Type_silac_Original\tDetection Type_silac_NewlySynthesized\tDetection Type_silacPart2_Original\tDetection Type_silacPart2_NewlySynthesized\t")); //test filename changes
+ "Detection Type_silac_Original\tDetection Type_silac_NewlySynthesized\tDetection Type_silacPart2_Original\tDetection Type_silacPart2_NewlySynthesized")); //test filename changes
Assert.IsTrue(output[1].Contains("\t1093750\t437500\t")); //test intensities
output = File.ReadAllLines(TestContext.CurrentContext.TestDirectory + @"/TestSilac/AllQuantifiedPeaks.tsv");
@@ -411,7 +412,7 @@ public static void TestSilacTurnover()
output = File.ReadAllLines(TestContext.CurrentContext.TestDirectory + @"/TestSilac/AllQuantifiedPeptides.tsv");
Assert.IsTrue(output[1].Contains("PEPTKIDEK\t")); //test the unlabeled is present
- Assert.IsTrue(output[0].Contains("\tIntensity_silac_Original\tIntensity_silac_NewlySynthesized\tDetection Type_silac_Original\tDetection Type_silac_NewlySynthesized\t")); //test filename changes
+ Assert.IsTrue(output[0].Contains("\tIntensity_silac_Original\tIntensity_silac_NewlySynthesized\tDetection Type_silac_Original\tDetection Type_silac_NewlySynthesized")); //test filename changes
Assert.IsTrue(output[1].Contains("\t656250\t875000\t")); //test intensities
output = File.ReadAllLines(TestContext.CurrentContext.TestDirectory + @"/TestSilac/AllPSMs.psmtsv");
@@ -452,7 +453,7 @@ public static void TestSilacTurnover()
output = File.ReadAllLines(TestContext.CurrentContext.TestDirectory + @"/TestSilac/AllQuantifiedPeptides.tsv");
Assert.IsTrue(output[1].Contains("PEPEPEPTK\t")); //test the unlabeled is present
Assert.IsTrue(output[2].Contains("PEPTKIDEK\t")); //test the unlabeled is present
- Assert.IsTrue(output[0].Contains("\tIntensity_silac_Original\tIntensity_silac_NewlySynthesized\tDetection Type_silac_Original\tDetection Type_silac_NewlySynthesized\t")); //test filename changes
+ Assert.IsTrue(output[0].Contains("\tIntensity_silac_Original\tIntensity_silac_NewlySynthesized\tDetection Type_silac_Original\tDetection Type_silac_NewlySynthesized")); //test filename changes
Assert.IsTrue(output[1].Contains("\t2625000\t6125000\t")); //test the light intensity is not negative.
Assert.IsTrue(output[2].Contains("\t10500000\t5250000\t")); //test intensities. The observation is 9/6/3.
diff --git a/MetaMorpheus/Test/SpectralLibraryReaderTest.cs b/MetaMorpheus/Test/SpectralLibraryReaderTest.cs
index c158fbc56..8170c7fc9 100644
--- a/MetaMorpheus/Test/SpectralLibraryReaderTest.cs
+++ b/MetaMorpheus/Test/SpectralLibraryReaderTest.cs
@@ -5,11 +5,12 @@
using EngineLayer;
using TaskLayer;
using System.Collections.Generic;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using System.Globalization;
using Proteomics;
using MassSpectrometry;
using EngineLayer.ClassicSearch;
+using Omics.Modifications;
namespace Test
{
diff --git a/MetaMorpheus/Test/SpectralRecoveryTest.cs b/MetaMorpheus/Test/SpectralRecoveryTest.cs
index eb437e943..c26ed855a 100644
--- a/MetaMorpheus/Test/SpectralRecoveryTest.cs
+++ b/MetaMorpheus/Test/SpectralRecoveryTest.cs
@@ -11,6 +11,7 @@
using System.Linq;
using System.Text;
using Easy.Common.Extensions;
+using Omics.Modifications;
using TaskLayer;
using TaskLayer.MbrAnalysis;
diff --git a/MetaMorpheus/Test/StefanParsimonyTest.cs b/MetaMorpheus/Test/StefanParsimonyTest.cs
index 319980ed7..b836d9b30 100644
--- a/MetaMorpheus/Test/StefanParsimonyTest.cs
+++ b/MetaMorpheus/Test/StefanParsimonyTest.cs
@@ -2,11 +2,12 @@
using MassSpectrometry;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.Linq;
+using Omics.Modifications;
namespace Test
{
@@ -169,8 +170,8 @@ public static void ParsimonyWeirdCatch()
Product productC3 = new Product(ProductType.y, FragmentationTerminus.C, 0, 3, 4, 0);
Product productC4 = new Product(ProductType.y, FragmentationTerminus.C, 0, 4, 3, 0);
- MatchedFragmentIon mfiC3 = new MatchedFragmentIon(ref productC3, 0, 0, 1);
- MatchedFragmentIon mfiC4 = new MatchedFragmentIon(ref productC4, 0, 0, 1);
+ MatchedFragmentIon mfiC3 = new MatchedFragmentIon(productC3, 0, 0, 1);
+ MatchedFragmentIon mfiC4 = new MatchedFragmentIon(productC4, 0, 0, 1);
List psms = new List
{
diff --git a/MetaMorpheus/Test/Test.csproj b/MetaMorpheus/Test/Test.csproj
index 9a5b1ee1c..0404d7fb6 100644
--- a/MetaMorpheus/Test/Test.csproj
+++ b/MetaMorpheus/Test/Test.csproj
@@ -23,7 +23,7 @@
-
+
diff --git a/MetaMorpheus/Test/TestDataFile.cs b/MetaMorpheus/Test/TestDataFile.cs
index 012fe5553..4757672eb 100644
--- a/MetaMorpheus/Test/TestDataFile.cs
+++ b/MetaMorpheus/Test/TestDataFile.cs
@@ -1,6 +1,6 @@
using Chemistry;
using MassSpectrometry;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
diff --git a/MetaMorpheus/Test/XLTestNGlyco.cs b/MetaMorpheus/Test/TestNGlyco.cs
similarity index 84%
rename from MetaMorpheus/Test/XLTestNGlyco.cs
rename to MetaMorpheus/Test/TestNGlyco.cs
index 7cac3f08f..24e3c6612 100644
--- a/MetaMorpheus/Test/XLTestNGlyco.cs
+++ b/MetaMorpheus/Test/TestNGlyco.cs
@@ -6,7 +6,7 @@
using MassSpectrometry;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
@@ -16,12 +16,70 @@
using UsefulProteomicsDatabases;
using MzLibUtil;
using Nett;
+using Omics.Modifications;
namespace Test
{
[TestFixture]
- public class XLTestNGlyco
+ public class TestNGlyco
{
+ [Test]
+ public static void TestNGlycoPsmsHeader()
+ {
+ List headerTerms = new()
+ {
+ "File Name",
+ "Scan Number",
+ "Retention Time",
+ "Precursor Scan Number",
+ "Precursor MZ",
+ "Precursor Charge",
+ "Precursor Mass",
+ "Protein Accession",
+ "Organism",
+ "Protein Name",
+ "Start and End Residues In Protein",
+ "Base Sequence",
+ "FlankingResidues",
+ "Full Sequence",
+ "Number of Mods",
+ "Peptide Monoisotopic Mass",
+ "Score",
+ "Rank",
+ "Matched Ion Series",
+ "Matched Ion Mass-To-Charge Ratios",
+ "Matched Ion Mass Diff (Da)",
+ "Matched Ion Mass Diff (Ppm)",
+ "Matched Ion Intensities",
+ "Matched Ion Counts",
+ "Decoy/Contaminant/Target",
+ "QValue",
+ "PEP",
+ "PEP_QValue",
+ "Localization Score",
+ "Yion Score",
+ "DiagonosticIon Score",
+ "Plausible Number Of Glycans",//Not used for N-Glyco
+ "Total Glycosylation sites",//Not used for N-Glyco
+ "GlycanMass",
+ "Plausible GlycanComposition",
+ "N-Glycan motif Check",//Not used for N-Glyco
+ "R138/144",
+ "Plausible GlycanStructure",
+ "GlycanLocalizationLevel",
+ "Localized Glycans with Peptide Site Specific Probability",
+ "Localized Glycans with Protein Site Specific Probability",
+ "All potential glycan localizations",//Not used for N-Glyco
+ "AllSiteSpecificLocalizationProbability",//Not used for N-Glyco
+
+ };
+
+ string nglycoHeaderString = GlycoSpectralMatch.GetTabSepHeaderSingle() + GlycoSpectralMatch.GetTabSeperatedHeaderGlyco();
+ List nGlycoHeaderTerms = nglycoHeaderString.Split('\t').ToList();
+
+ CollectionAssert.AreEquivalent(headerTerms, nGlycoHeaderTerms);
+ }
+
[Test]
public static void GlyTest_GetKindString()
{
@@ -98,7 +156,10 @@ public static void GlyTest_RunTask()
Directory.CreateDirectory(Path.Combine(Environment.CurrentDirectory, @"TESTGlycoData"));
DbForTask db = new DbForTask(Path.Combine(TestContext.CurrentContext.TestDirectory, @"GlycoTestData\Q9C0Y4.fasta"), false);
string raw = Path.Combine(TestContext.CurrentContext.TestDirectory, @"GlycoTestData\yeast_glycan_25170.mgf");
- new EverythingRunnerEngine(new List<(string, MetaMorpheusTask)> { ("Task", task) }, new List { raw }, new List { db }, Path.Combine(Environment.CurrentDirectory, @"TESTGlycoData")).Run();
+ new EverythingRunnerEngine(new List<(string, MetaMorpheusTask)> { ("Task", task) }, new List { raw }, new List
+ {
+ db
+ }, Path.Combine(Environment.CurrentDirectory, @"TESTGlycoData")).Run();
Directory.Delete(Path.Combine(Environment.CurrentDirectory, @"TESTGlycoData"), true);
}
@@ -187,7 +248,7 @@ public static void GlyTest_BisectHexNAc()
public static void GlyTest_GlycanDecoy()
{
Glycan glycan = Glycan.Struct2Glycan("(N(N(H(N)(H(N)(N))(H(N(H))))))", 0);
- var test = Glycan.BuildTargetDecoyGlycans(new Glycan[] { glycan});
+ var test = Glycan.BuildTargetDecoyGlycans(new Glycan[] { glycan });
Assert.AreEqual(test.Last().Decoy, true);
foreach (var ion in test.Last().Ions)
{
@@ -245,6 +306,5 @@ public static void GlyTest_NGlycanCompositionFragments()
Assert.That(overlap == 13);
}
-
}
}
diff --git a/MetaMorpheus/Test/XLTestOGlyco.cs b/MetaMorpheus/Test/TestOGlyco.cs
similarity index 93%
rename from MetaMorpheus/Test/XLTestOGlyco.cs
rename to MetaMorpheus/Test/TestOGlyco.cs
index 5d15b6d21..a270f5bc6 100644
--- a/MetaMorpheus/Test/XLTestOGlyco.cs
+++ b/MetaMorpheus/Test/TestOGlyco.cs
@@ -2,7 +2,7 @@
using MassSpectrometry;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
@@ -19,11 +19,12 @@
using MzLibUtil;
using Readers;
using System.Text;
+using Omics.Modifications;
namespace Test
{
[TestFixture]
- public class XLTestOGlyco
+ public class TestOGlyco
{
private static GlycanBox[] OGlycanBoxes { get; set; }
@@ -769,14 +770,14 @@ public static void GlycoSearchIndividualFileFolderOutputTest()
List expectedOutput = new()
{
- "_AllProteinGroups.tsv",
"AutoGeneratedManuscriptProse.txt",
"results.txt",
"oglyco.psmtsv",
- "AllPSMs.psmtsv"
+ "AllPSMs.psmtsv",
+ "_AllProteinGroups.tsv",
+ "protein_oglyco_localization.tsv",
+ "seen_oglyco_localization.tsv"
};
- expectedOutput.Add("protein_oglyco_localization.tsv");
- expectedOutput.Add("seen_oglyco_localization.tsv");
List expectedIndividualFileOutput = new()
{
@@ -841,19 +842,19 @@ public static void NandO_GlycoSearchIndividualFileFolderOutputTest()
"_AllProteinGroups.tsv",
"AutoGeneratedManuscriptProse.txt",
"results.txt",
- "nglyco.psmtsv",
- "AllPSMs.psmtsv"
+ "no_glyco.psmtsv",
+ "AllPSMs.psmtsv",
+ "protein_no_glyco_localization.tsv",
+ "seen_no_glyco_localization.tsv"
};
- expectedOutput.Add("protein_nglyco_localization.tsv");
- expectedOutput.Add("seen_nglyco_localization.tsv");
List expectedIndividualFileOutput = new()
{
"2019_09_16_StcEmix_35trig_EThcD25_rep1_4999-5968_AllProteinGroups.tsv",
"2019_09_16_StcEmix_35trig_EThcD25_rep1_4999-5968_AllPSMs.psmtsv",
- "2019_09_16_StcEmix_35trig_EThcD25_rep1_4999-5968nglyco.psmtsv",
- "2019_09_16_StcEmix_35trig_EThcD25_rep1_4999-5968protein_nglyco_localization.tsv",
- "2019_09_16_StcEmix_35trig_EThcD25_rep1_4999-5968seen_nglyco_localization.tsv"
+ "2019_09_16_StcEmix_35trig_EThcD25_rep1_4999-5968no_glyco.psmtsv",
+ "2019_09_16_StcEmix_35trig_EThcD25_rep1_4999-5968protein_no_glyco_localization.tsv",
+ "2019_09_16_StcEmix_35trig_EThcD25_rep1_4999-5968seen_no_glyco_localization.tsv"
};
@@ -873,58 +874,81 @@ public static void NandO_GlycoSearchIndividualFileFolderOutputTest()
Directory.Delete(outputFolder, true);
}
+
[Test]
- public static void TestNGlycoPsmsHeader()
+ public static void N_GlycoSearchIndividualFileFolderOutputTest()
{
- List headerTerms = new()
+ string outputFolder = Path.Combine(TestContext.CurrentContext.TestDirectory, @"TESTGlycoData");
+ string proteinDatabase = Path.Combine(TestContext.CurrentContext.TestDirectory, @"GlycoTestData\N_O_glycoWithFileSpecific\\FourMucins_NoSigPeps_FASTA.fasta");
+ string spectraFileDirctory = Path.Combine(TestContext.CurrentContext.TestDirectory, @"GlycoTestData\N_O_glycoWithFileSpecific");
+ List rawFilePaths = Directory.GetFiles(spectraFileDirctory).Where(p => p.Contains("mzML")).ToList();
+
+ // run task
+ CommonParameters commonParameters = new(dissociationType: DissociationType.HCD, ms2childScanDissociationType: DissociationType.EThcD);
+
+ Directory.CreateDirectory(outputFolder);
+ var glycoSearchTask = new GlycoSearchTask()
+ {
+ CommonParameters = commonParameters,
+ _glycoSearchParameters = new GlycoSearchParameters()
+ {
+ OGlycanDatabasefile = "OGlycan.gdb",
+ NGlycanDatabasefile = "NGlycan.gdb",
+ GlycoSearchType = GlycoSearchType.NGlycanSearch,
+ OxoniumIonFilt = true,
+ DecoyType = DecoyType.Reverse,
+ GlycoSearchTopNum = 50,
+ MaximumOGlycanAllowed = 4,
+ DoParsimony = true,
+ WriteContaminants = true,
+ WriteDecoys = true,
+ WriteIndividualFiles = true,
+ DoQuantification = true
+ }
+ };
+ glycoSearchTask.RunTask(outputFolder, new List { new DbForTask(proteinDatabase, false) }, rawFilePaths, "");
+
+ List expectedOutput = new()
{
- "File Name",
- "Scan Number",
- "Scan Retention Time",
- "Precursor Scan Number",
- "Precursor MZ",
- "Precursor Charge",
- "Precursor Mass",
- "Protein Accession",
- "Organism",
- "Protein Name",
- "Start and End Residues In Protein",
- "Base Sequence",
- "FlankingResidues",
- "Full Sequence",
- "Number of Mods",
- "Peptide Monoisotopic Mass",
- "Score",
- "Rank",
- "Matched Ion Series",
- "Matched Ion Mass-To-Charge Ratios",
- "Matched Ion Mass Diff (Da)",
- "Matched Ion Mass Diff (Ppm)",
- "Matched Ion Intensities",
- "Matched Ion Counts",
- "Decoy/Contaminant/Target",
- "QValue",
- "PEP",
- "PEP_QValue",
- "Localization Score",
- "Yion Score",
- "DiagonosticIon Score",
- "GlycanMass",
- "Plausible GlycanComposition",
- "R138/144",
- "Plausible GlycanStructure",
- "GlycanLocalizationLevel",
- "Localized Glycans with Peptide Site Specific Probability",
- "Localized Glycans with Protein Site Specific Probability"
+ "_AllProteinGroups.tsv",
+ "AllQuantifiedPeaks.tsv",
+ "AllQuantifiedPeptides.tsv",
+ "AllQuantifiedProteins.tsv",
+ "AutoGeneratedManuscriptProse.txt",
+ "results.txt",
+ "ExperimentalDesign.tsv",
+ "nglyco.psmtsv",
+ "AllPSMs.psmtsv",
+ };
+
+ List expectedIndividualFileOutput = new()
+ {
+ "2019_09_16_StcEmix_35trig_EThcD25_rep1_4999-5968nglyco.psmtsv",
+ "2019_09_16_StcEmix_35trig_EThcD25_rep1_4999-5968_AllProteinGroups.tsv",
+ "2019_09_16_StcEmix_35trig_EThcD25_rep1_4999-5968_AllPSMs.psmtsv",
+ "2019_09_16_StcEmix_35trig_EThcD25_rep1_4999-5968_QuantifiedPeaks.tsv",
+ "2019_09_16_StcEmix_35trig_EThcD25_rep1_4999-5968_QuantifiedPeptides.tsv",
+ "2019_09_16_StcEmix_35trig_EThcD25_rep1_4999-5968_QuantifiedProteins.tsv"
};
- string nglycoHeaderString = GlycoSpectralMatch.GetTabSepHeaderNGlyco();
- List nGlycoHeaderTerms = nglycoHeaderString.Split('\t').ToList();
- nGlycoHeaderTerms.RemoveAll(s => s == "");
- CollectionAssert.AreEquivalent(headerTerms, nGlycoHeaderTerms);
+
+ List output = Directory.GetFiles(outputFolder).Select(f => Path.GetFileName(f)).ToList();
+ List outputFolders = Directory.GetDirectories(outputFolder).ToList();
+ List individualOutputFolders = Directory.GetDirectories(outputFolders.FirstOrDefault()).ToList();
+ List individualOutputs = Directory.GetFiles(individualOutputFolders.FirstOrDefault()).Select(f => Path.GetFileName(f)).ToList();
+
+ CollectionAssert.IsSubsetOf(expectedOutput, output);
+ CollectionAssert.IsSubsetOf(expectedIndividualFileOutput, individualOutputs);
+
+ string[] allProteinGroups = File.ReadAllLines(Path.Combine(outputFolder, "_AllProteinGroups.tsv"));
+ string[] proteinGroupFields = allProteinGroups[1].Split('\t');
+
+ Assert.AreEqual("Q8WXI7.3", proteinGroupFields[0]);
+
+ Directory.Delete(outputFolder, true);
}
-
+
//Test oglycopeptide quant with two conditions, experimental design and normalization
[Test]
public static void TestGlycoQuant()
@@ -966,6 +990,7 @@ public static void TestGlycoQuant()
"AllPSMs.psmtsv",
"AllQuantifiedPeaks.tsv",
"AllQuantifiedPeptides.tsv",
+ "AllQuantifiedProteins.tsv",
"AutoGeneratedManuscriptProse.txt",
"oglyco.psmtsv",
"protein_oglyco_localization.tsv",
@@ -1044,6 +1069,7 @@ public static void TestGlycoQuant2()
"AllPSMs.psmtsv",
"AllQuantifiedPeaks.tsv",
"AllQuantifiedPeptides.tsv",
+ "AllQuantifiedProteins.tsv",
"AutoGeneratedManuscriptProse.txt",
"oglyco.psmtsv",
"protein_oglyco_localization.tsv",
@@ -1119,7 +1145,7 @@ public static void GlycoQuantWithNoExperimentalDesignFileTest()
List expectedOutput = new()
{
"ExperimentalDesign.tsv",
- "_AllProteinGroups.tsv",
+ "AllQuantifiedProteins.tsv",
"AllPSMs.psmtsv",
"AllQuantifiedPeaks.tsv",
"AllQuantifiedPeptides.tsv",
@@ -1127,7 +1153,8 @@ public static void GlycoQuantWithNoExperimentalDesignFileTest()
"oglyco.psmtsv",
"protein_oglyco_localization.tsv",
"results.txt",
- "seen_oglyco_localization.tsv"
+ "seen_oglyco_localization.tsv",
+ "_AllProteinGroups.tsv"
};
@@ -1152,7 +1179,7 @@ public static void GlycoQuantWithNoExperimentalDesignFileTest()
CollectionAssert.AreEquivalent(expectedOutput, output);
CollectionAssert.AreEquivalent(expectedIndividualFileOutput, individualOutputs);
- string[] allProteinGroups = File.ReadAllLines(Path.Combine(outputFolderWithTask, "_AllProteinGroups.tsv"));
+ string[] allProteinGroups = File.ReadAllLines(Path.Combine(outputFolderWithTask, "AllQuantifiedProteins.tsv"));
string[] proteinGroupFields = allProteinGroups[1].Split('\t');
Assert.AreEqual("Q9GZM5", proteinGroupFields[0]);
diff --git a/MetaMorpheus/Test/TestPsm.cs b/MetaMorpheus/Test/TestPsm.cs
index 56a360d47..e34d4b3a1 100644
--- a/MetaMorpheus/Test/TestPsm.cs
+++ b/MetaMorpheus/Test/TestPsm.cs
@@ -6,13 +6,15 @@
using MzLibUtil;
using NUnit.Framework;
using Proteomics;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
+using Omics.Digestion;
+using Omics.Modifications;
using TaskLayer;
using UsefulProteomicsDatabases;
using PsmFromTsv = EngineLayer.PsmFromTsv;
@@ -419,7 +421,7 @@ public static void TestComplementaryIons()
for (int i = 0; i < myProducts.Count; i++)
{
var prod = myProducts[i];
- mfiList.Add(new MatchedFragmentIon(ref prod, 1, 1, 1));
+ mfiList.Add(new MatchedFragmentIon(prod, 1, 1, 1));
}
Dictionary> PTMF = new Dictionary>();
@@ -478,15 +480,15 @@ public static void TestPSMFragmentCoverage()
Product productN6 = new Product(ProductType.b, FragmentationTerminus.N, 0, 6, 6, 0);
Product productN8 = new Product(ProductType.b, FragmentationTerminus.N, 0, 8, 8, 0);
Product productN13 = new Product(ProductType.b, FragmentationTerminus.N, 0, 13, 13, 0);
- MatchedFragmentIon mfiC3 = new MatchedFragmentIon(ref productC3, 0, 0, 1);
- MatchedFragmentIon mfiC4 = new MatchedFragmentIon(ref productC4, 0, 0, 1);
- MatchedFragmentIon mfiC7 = new MatchedFragmentIon(ref productC7, 0, 0, 1);
- MatchedFragmentIon mfiC13 = new MatchedFragmentIon(ref productC13, 0, 0, 1);
- MatchedFragmentIon mfiN3 = new MatchedFragmentIon(ref productN3, 0, 0, 1);
- MatchedFragmentIon mfiN4 = new MatchedFragmentIon(ref productN4, 0, 0, 1);
- MatchedFragmentIon mfiN6 = new MatchedFragmentIon(ref productN6, 0, 0, 1);
- MatchedFragmentIon mfiN8 = new MatchedFragmentIon(ref productN8, 0, 0, 1);
- MatchedFragmentIon mfiN13 = new MatchedFragmentIon(ref productN13, 0, 0, 1);
+ MatchedFragmentIon mfiC3 = new MatchedFragmentIon(productC3, 0, 0, 1);
+ MatchedFragmentIon mfiC4 = new MatchedFragmentIon(productC4, 0, 0, 1);
+ MatchedFragmentIon mfiC7 = new MatchedFragmentIon(productC7, 0, 0, 1);
+ MatchedFragmentIon mfiC13 = new MatchedFragmentIon(productC13, 0, 0, 1);
+ MatchedFragmentIon mfiN3 = new MatchedFragmentIon(productN3, 0, 0, 1);
+ MatchedFragmentIon mfiN4 = new MatchedFragmentIon(productN4, 0, 0, 1);
+ MatchedFragmentIon mfiN6 = new MatchedFragmentIon(productN6, 0, 0, 1);
+ MatchedFragmentIon mfiN8 = new MatchedFragmentIon(productN8, 0, 0, 1);
+ MatchedFragmentIon mfiN13 = new MatchedFragmentIon(productN13, 0, 0, 1);
List mfis1 = new List { mfiC3, mfiC4, mfiC7, mfiC13, mfiN3, mfiN4, mfiN6, mfiN8, mfiN13};
MsDataScan mzLibScan1 = t.GetOneBasedScan(2);
Ms2ScanWithSpecificMass scan1 = new Ms2ScanWithSpecificMass(mzLibScan1, 0, 1, null, new CommonParameters());
diff --git a/MetaMorpheus/Test/TestToml.cs b/MetaMorpheus/Test/TestToml.cs
index 4a8bf2734..f17690598 100644
--- a/MetaMorpheus/Test/TestToml.cs
+++ b/MetaMorpheus/Test/TestToml.cs
@@ -10,6 +10,8 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using Omics.Digestion;
+using Omics.Fragmentation;
using SpectralAveraging;
using TaskLayer;
using UsefulProteomicsDatabases;
@@ -262,6 +264,50 @@ public static void TestFileSpecificAndCommonParametersNameEquality()
Assert.That(commonProperty.GetType(), Is.EqualTo(fileSpecificProperty.GetType()));
}
}
+
+ [Test]
+ public static void TestDigestionParamsTomlReadingWriting()
+ {
+ var digestionParams = new DigestionParams("top-down", 4, 5, 12345, 2012,
+ InitiatorMethionineBehavior.Undefined, 4, CleavageSpecificity.Semi, FragmentationTerminus.Both, false,
+ true, true);
+ var commonParams = new CommonParameters(digestionParams: digestionParams);
+ var searchTask = new SearchTask();
+ searchTask.CommonParameters = commonParams;
+
+ // check that digestion params are correct in search task
+ Assert.That(searchTask.CommonParameters.DigestionParams.FragmentationTerminus, Is.EqualTo(digestionParams.FragmentationTerminus));
+ Assert.That(searchTask.CommonParameters.DigestionParams.SearchModeType, Is.EqualTo(digestionParams.SearchModeType));
+ Assert.That(searchTask.CommonParameters.DigestionParams.InitiatorMethionineBehavior, Is.EqualTo(digestionParams.InitiatorMethionineBehavior));
+ Assert.That(searchTask.CommonParameters.DigestionParams.MaxMissedCleavages, Is.EqualTo(digestionParams.MaxMissedCleavages));
+ Assert.That(searchTask.CommonParameters.DigestionParams.MaxModificationIsoforms, Is.EqualTo(digestionParams.MaxModificationIsoforms));
+ Assert.That(searchTask.CommonParameters.DigestionParams.MinPeptideLength, Is.EqualTo(digestionParams.MinPeptideLength));
+ Assert.That(searchTask.CommonParameters.DigestionParams.MaxPeptideLength, Is.EqualTo(digestionParams.MaxPeptideLength));
+ Assert.That(searchTask.CommonParameters.DigestionParams.Protease.Name, Is.EqualTo(digestionParams.Protease.Name));
+ Assert.That(searchTask.CommonParameters.DigestionParams.GeneratehUnlabeledProteinsForSilac, Is.EqualTo(digestionParams.GeneratehUnlabeledProteinsForSilac));
+ Assert.That(searchTask.CommonParameters.DigestionParams.KeepNGlycopeptide, Is.EqualTo(digestionParams.KeepNGlycopeptide));
+ Assert.That(searchTask.CommonParameters.DigestionParams.KeepOGlycopeptide, Is.EqualTo(digestionParams.KeepOGlycopeptide));
+
+ // write and read file
+ string filePath = Path.Combine(TestContext.CurrentContext.TestDirectory, "testDigestionParams.toml");
+ Toml.WriteFile(searchTask, filePath, MetaMorpheusTask.tomlConfig);
+ var searchTaskLoaded = Toml.ReadFile(filePath, MetaMorpheusTask.tomlConfig);
+
+ // check that digestion params are correct in search task
+ Assert.That(searchTaskLoaded.CommonParameters.DigestionParams.FragmentationTerminus, Is.EqualTo(digestionParams.FragmentationTerminus));
+ Assert.That(searchTaskLoaded.CommonParameters.DigestionParams.SearchModeType, Is.EqualTo(digestionParams.SearchModeType));
+ Assert.That(searchTaskLoaded.CommonParameters.DigestionParams.InitiatorMethionineBehavior, Is.EqualTo(digestionParams.InitiatorMethionineBehavior));
+ Assert.That(searchTaskLoaded.CommonParameters.DigestionParams.MaxMissedCleavages, Is.EqualTo(digestionParams.MaxMissedCleavages));
+ Assert.That(searchTaskLoaded.CommonParameters.DigestionParams.MaxModificationIsoforms, Is.EqualTo(digestionParams.MaxModificationIsoforms));
+ Assert.That(searchTaskLoaded.CommonParameters.DigestionParams.MinPeptideLength, Is.EqualTo(digestionParams.MinPeptideLength));
+ Assert.That(searchTaskLoaded.CommonParameters.DigestionParams.MaxPeptideLength, Is.EqualTo(digestionParams.MaxPeptideLength));
+ Assert.That(searchTaskLoaded.CommonParameters.DigestionParams.Protease.Name, Is.EqualTo(digestionParams.Protease.Name));
+ Assert.That(searchTaskLoaded.CommonParameters.DigestionParams.GeneratehUnlabeledProteinsForSilac, Is.EqualTo(digestionParams.GeneratehUnlabeledProteinsForSilac));
+ Assert.That(searchTaskLoaded.CommonParameters.DigestionParams.KeepNGlycopeptide, Is.EqualTo(digestionParams.KeepNGlycopeptide));
+ Assert.That(searchTaskLoaded.CommonParameters.DigestionParams.KeepOGlycopeptide, Is.EqualTo(digestionParams.KeepOGlycopeptide));
+
+ File.Delete(filePath);
+ }
}
}
\ No newline at end of file
diff --git a/MetaMorpheus/Test/TestTopDown.cs b/MetaMorpheus/Test/TestTopDown.cs
index 5c768533b..b99e13262 100644
--- a/MetaMorpheus/Test/TestTopDown.cs
+++ b/MetaMorpheus/Test/TestTopDown.cs
@@ -8,6 +8,7 @@
using IO.MzML;
using MzLibUtil;
using NUnit.Framework;
+using Omics.Modifications;
using Proteomics;
using Proteomics.ProteolyticDigestion;
using TaskLayer;
diff --git a/MetaMorpheus/Test/VariantSearchTests.cs b/MetaMorpheus/Test/VariantSearchTests.cs
index 82d20ba42..d13602de4 100644
--- a/MetaMorpheus/Test/VariantSearchTests.cs
+++ b/MetaMorpheus/Test/VariantSearchTests.cs
@@ -12,6 +12,7 @@
using TaskLayer;
using UsefulProteomicsDatabases;
using Nett;
+using Omics.Modifications;
namespace Test
{
diff --git a/MetaMorpheus/Test/XLSearchOutputTest.cs b/MetaMorpheus/Test/XLSearchOutputTest.cs
index 7066e2a1f..7a1406887 100644
--- a/MetaMorpheus/Test/XLSearchOutputTest.cs
+++ b/MetaMorpheus/Test/XLSearchOutputTest.cs
@@ -4,7 +4,7 @@
using TaskLayer;
using EngineLayer;
using System.Linq;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
namespace Test
{
@@ -99,9 +99,9 @@ public static void WriteXlSpectralLibraryTest()
Assert.AreEqual(interSpectrum.AlphaPeptideSequence, "GVTVDKMTELR");
Assert.AreEqual(interSpectrum.BetaPeptideSequence, "SFTFVTKTPPAAVLLK");
Assert.True(interSpectrum.BetaPeptideSpectrum.IsBetaPeptide);
- interLinkSpectrum.MatchedFragmentIons.Add(new MatchedFragmentIon(ref productWithNeutralLoss, 100, 100, 1));
+ interLinkSpectrum.MatchedFragmentIons.Add(new MatchedFragmentIon(productWithNeutralLoss, 100, 100, 1));
CrosslinkLibrarySpectrum spectrumDup = (CrosslinkLibrarySpectrum)interLinkSpectrum;
- spectrumDup.BetaPeptideSpectrum.MatchedFragmentIons.Add(new MatchedFragmentIon(ref productWithNeutralLoss20, 100, 100, 1));
+ spectrumDup.BetaPeptideSpectrum.MatchedFragmentIons.Add(new MatchedFragmentIon(productWithNeutralLoss20, 100, 100, 1));
var spectrumString = spectrumDup.ToString();
// Check neutral loss fragments are written correctly
StringAssert.Contains("\"Y1^1-10/0ppm\"", spectrumString);
diff --git a/MetaMorpheus/Test/XLTest.cs b/MetaMorpheus/Test/XLTest.cs
index 5e84dd0fc..aa2568118 100644
--- a/MetaMorpheus/Test/XLTest.cs
+++ b/MetaMorpheus/Test/XLTest.cs
@@ -9,7 +9,7 @@
using NUnit.Framework;
using Proteomics;
using Proteomics.AminoAcidPolymer;
-using Proteomics.Fragmentation;
+using Omics.Fragmentation;
using Proteomics.ProteolyticDigestion;
using System;
using System.Collections.Generic;
@@ -18,6 +18,8 @@
using System.IO.Compression;
using System.Linq;
using System.Text;
+using Omics.Digestion;
+using Omics.Modifications;
using TaskLayer;
using UsefulProteomicsDatabases;
@@ -211,14 +213,14 @@ public static void XlTest_BSA_DSSO()
//Test Output
var task = new XLSearchTask();
- WriteFile.WritePepXML_xl(newPsms, proteinList, null, variableModifications, fixedModifications, null, TestContext.CurrentContext.TestDirectory, "pep.XML", commonParameters, xlSearchParameters);
+ WriteXlFile.WritePepXML_xl(newPsms, proteinList, null, variableModifications, fixedModifications, null, TestContext.CurrentContext.TestDirectory, "pep.XML", commonParameters, xlSearchParameters);
File.Delete(@"singlePsms.tsv");
File.Delete(@"pep.XML.pep.xml");
File.Delete(@"allPsms.tsv");
// write percolator result
- WriteFile.WriteCrosslinkToTxtForPercolator(newPsms.Where(q => q.CrossType == PsmCrossType.Inter || q.CrossType == PsmCrossType.Intra).ToList(), TestContext.CurrentContext.TestDirectory, "perc", new Crosslinker());
+ WriteXlFile.WriteCrosslinkToTxtForPercolator(newPsms.Where(q => q.CrossType == PsmCrossType.Inter || q.CrossType == PsmCrossType.Intra).ToList(), TestContext.CurrentContext.TestDirectory, "perc", new Crosslinker());
var percOut = File.ReadAllLines(Path.Combine(TestContext.CurrentContext.TestDirectory, @"perc.txt"), Encoding.UTF8);
string header = "SpecId\tLabel\tScannr\tScore\tdScore\tCharge\tMass\tPPM\tLenShort\tLenLong\tLenSum\tPeptide\tProtein";
string dataRow = "T-2-1\t1\t2\t9.080357142857142\t9.080357142857142\t3\t1994.05\t79237.2823474838\t7\t9\t16\t-.EKVLTSSAR2--LSQKFPK4.-\tFake01(2)\tFake02(4)";
@@ -1185,7 +1187,7 @@ public static void TestTheoreticalFragmentsCleavableCrosslink()
public static void XLSearchTastWriteFileTest()
{
//sending zero CSMs to write doesn't error. Method Simply Returns.
- WriteFile.WritePsmCrossToTsv(new List(), "", 0);
+ WriteXlFile.WritePsmCrossToTsv(new List(), "", 0);
//sending the wrong writeType doesn't error. Method Simply breaks.
string outputFolder = Path.Combine(TestContext.CurrentContext.TestDirectory, @"XlTestData\TestXLWrite");
@@ -1221,7 +1223,7 @@ public static void XLSearchTastWriteFileTest()
csmAlpha.LinkPositions = new() { 1 };
csmBeta.LinkPositions = new() { 1 };
- WriteFile.WritePsmCrossToTsv(new List() { csmAlpha}, outputFolder + "csm.psmtsv", 0);
+ WriteXlFile.WritePsmCrossToTsv(new List() { csmAlpha}, outputFolder + "csm.psmtsv", 0);
//check decoy label
csmAlpha.BetaPeptide = csmBeta;
@@ -1248,7 +1250,7 @@ public static void XLSearchTastWriteFileTest()
Assert.AreEqual("ACCESSION()", lastRandomString);
- WriteFile.WriteCrosslinkToTxtForPercolator(new List() { csmAlpha }, outputFolder, "percolator.tsv", xlinker);
+ WriteXlFile.WriteCrosslinkToTxtForPercolator(new List() { csmAlpha }, outputFolder, "percolator.tsv", xlinker);
Directory.Delete(outputFolder, true);
}
@@ -1322,7 +1324,7 @@ public static void TestWriteNonSingleCross()
csms[0].First().ResolveAllAmbiguities();
csms[0].First().SetFdrValues(0, 0, 0.1, 0, 0, 0, 0, 0);
- WriteFile.WritePepXML_xl(csms.SelectMany(p => p).ToList(), new List(), "", new List { deadend }, new List { deadend }, new List(), TestContext.CurrentContext.TestDirectory, "test", new CommonParameters(), new XlSearchParameters { Crosslinker = crosslinker });
+ WriteXlFile.WritePepXML_xl(csms.SelectMany(p => p).ToList(), new List(), "", new List { deadend }, new List { deadend }, new List(), TestContext.CurrentContext.TestDirectory, "test", new CommonParameters(), new XlSearchParameters { Crosslinker = crosslinker });
File.Delete(Path.Combine(TestContext.CurrentContext.TestDirectory, @"test.pep.XML"));
}
@@ -1416,7 +1418,7 @@ public static void TestMixedMs2Ms2()
// write results to TSV
csm.SetFdrValues(1, 0, 0, 0, 0, 0, 0, 0);
- WriteFile.WritePsmCrossToTsv(new List { csm }, outputFile, 2);
+ WriteXlFile.WritePsmCrossToTsv(new List { csm }, outputFile, 2);
// read results from TSV
var psmFromTsv = PsmTsvReader.ReadTsv(outputFile, out var warnings).First();
@@ -1505,7 +1507,7 @@ public static void TestMs2Ms3()
// write results to TSV
csm.SetFdrValues(1, 0, 0, 0, 0, 0, 0, 0);
- WriteFile.WritePsmCrossToTsv(new List { csm }, outputFile, 2);
+ WriteXlFile.WritePsmCrossToTsv(new List { csm }, outputFile, 2);
// read results from TSV
var psmFromTsv = PsmTsvReader.ReadTsv(outputFile, out var warnings).First();
diff --git a/MetaMorpheus/Test/gptmdPrunedBdTests.cs b/MetaMorpheus/Test/gptmdPrunedBdTests.cs
index b5672b25e..a10baa6f3 100644
--- a/MetaMorpheus/Test/gptmdPrunedBdTests.cs
+++ b/MetaMorpheus/Test/gptmdPrunedBdTests.cs
@@ -7,6 +7,7 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using Omics.Modifications;
using TaskLayer;
using UsefulProteomicsDatabases;
@@ -359,7 +360,7 @@ public static void TestProteinPrunedWithModSelection()
CommonParameters commonParam = new CommonParameters();
double[,] noiseData = new double[10000, 10000];
noiseData[0,0] = 1.0;
- List matchedFragmentIons = new List() { };
+ List matchedFragmentIons = new List() { };
MzSpectrum spectrum = new MzSpectrum(noiseData);
MsDataScan scan = new MsDataScan(spectrum , 1, 1, true, Polarity.Unknown, 2, new MzLibUtil.MzRange(10, 1000), "", MZAnalyzerType.Orbitrap, 10000, null, noiseData, "");
testPostTaskParameters.ProteinList = new List() { protein1, protein2 };
@@ -464,7 +465,7 @@ public static void TestProteinPrunedWithModSelectionAndVariants()
CommonParameters commonParam = new CommonParameters();
double[,] noiseData = new double[10000, 10000];
noiseData[0, 0] = 1.0;
- List matchedFragmentIons = new List() { };
+ List matchedFragmentIons = new List() { };
MzSpectrum spectrum = new MzSpectrum(noiseData);
MsDataScan scan = new MsDataScan(spectrum, 1, 1, true, Polarity.Unknown, 2, new MzLibUtil.MzRange(10, 1000), "", MZAnalyzerType.Orbitrap, 10000, null, noiseData, "");
testPostTaskParameters.ProteinList = proteinList;