protected ProteinQuantificationEngineResult(ProteinGroup protein, List <Peptide> peptides, string controlCondition, string treatmentCondition) { this.Protein = protein; this.Peptides = peptides; this.ControlCondition = controlCondition; this.TreatmentCondition = treatmentCondition; }
public void WriteResults(string peaksOutputPath, string modPeptideOutputPath, string baseSeqPeptideOutputPath, string proteinOutputPath) { if (peaksOutputPath != null) { using (StreamWriter output = new StreamWriter(peaksOutputPath)) { output.WriteLine(ChromatographicPeak.TabSeparatedHeader); foreach (var peak in Peaks.SelectMany(p => p.Value)) { output.WriteLine(peak.ToString()); } } } if (modPeptideOutputPath != null) { using (StreamWriter output = new StreamWriter(modPeptideOutputPath)) { output.WriteLine(Peptide.TabSeparatedHeader(SpectraFiles)); foreach (var peptide in PeptideModifiedSequences.OrderBy(p => p.Key)) { output.WriteLine(peptide.Value.ToString(SpectraFiles)); } } } if (baseSeqPeptideOutputPath != null) { using (StreamWriter output = new StreamWriter(baseSeqPeptideOutputPath)) { output.WriteLine(Peptide.TabSeparatedHeader(SpectraFiles)); foreach (var peptide in PeptideBaseSequences.OrderBy(p => p.Key)) { output.WriteLine(peptide.Value.ToString(SpectraFiles)); } } } if (proteinOutputPath != null) { using (StreamWriter output = new StreamWriter(proteinOutputPath)) { output.WriteLine(ProteinGroup.TabSeparatedHeader(SpectraFiles)); foreach (var protein in ProteinGroups.OrderBy(p => p.Key)) { output.WriteLine(protein.Value.ToString(SpectraFiles)); } } } }
public void MergeResultsWith(FlashLfqResults mergeFrom) { this.SpectraFiles.AddRange(mergeFrom.SpectraFiles); foreach (var pep in mergeFrom.PeptideModifiedSequences) { if (this.PeptideModifiedSequences.TryGetValue(pep.Key, out var peptide)) { Peptide mergeFromPep = pep.Value; Peptide mergeToPep = peptide; foreach (SpectraFileInfo file in mergeFrom.SpectraFiles) { mergeToPep.SetIntensity(file, mergeFromPep.GetIntensity(file)); mergeToPep.SetDetectionType(file, mergeFromPep.GetDetectionType(file)); } } else { this.PeptideModifiedSequences.Add(pep.Key, pep.Value); } } foreach (var pg in mergeFrom.ProteinGroups) { if (this.ProteinGroups.TryGetValue(pg.Key, out var proteinGroup)) { ProteinGroup mergeFromPg = pg.Value; ProteinGroup mergeToPg = proteinGroup; foreach (SpectraFileInfo file in mergeFrom.SpectraFiles) { mergeToPg.SetIntensity(file, mergeFromPg.GetIntensity(file)); } } else { this.ProteinGroups.Add(pg.Key, pg.Value); } } foreach (var fromPeaks in mergeFrom.Peaks) { if (this.Peaks.TryGetValue(fromPeaks.Key, out var toPeaks)) { toPeaks.AddRange(fromPeaks.Value); } else { this.Peaks.Add(fromPeaks.Key, fromPeaks.Value); } } }
public void WriteResults(string peaksOutputPath, string modPeptideOutputPath, string proteinOutputPath, string bayesianProteinQuantOutput, bool silent) { if (!silent) { Console.WriteLine("Writing output..."); } if (peaksOutputPath != null) { using (StreamWriter output = new StreamWriter(peaksOutputPath)) { output.WriteLine(ChromatographicPeak.TabSeparatedHeader); foreach (var peak in Peaks.SelectMany(p => p.Value) .OrderBy(p => p.SpectraFileInfo.FilenameWithoutExtension) .ThenByDescending(p => p.Intensity)) { output.WriteLine(peak.ToString()); } } } if (modPeptideOutputPath != null) { using (StreamWriter output = new StreamWriter(modPeptideOutputPath)) { output.WriteLine(Peptide.TabSeparatedHeader(SpectraFiles)); foreach (var peptide in PeptideModifiedSequences.OrderBy(p => p.Key)) { output.WriteLine(peptide.Value.ToString(SpectraFiles)); } } } if (proteinOutputPath != null) { using (StreamWriter output = new StreamWriter(proteinOutputPath)) { output.WriteLine(ProteinGroup.TabSeparatedHeader(SpectraFiles)); foreach (var protein in ProteinGroups.OrderBy(p => p.Key)) { output.WriteLine(protein.Value.ToString(SpectraFiles)); } } } if (bayesianProteinQuantOutput != null) { StringBuilder header = new StringBuilder(); StringBuilder[] proteinStringBuilders = new StringBuilder[ProteinGroups.Count]; for (int i = 0; i < proteinStringBuilders.Length; i++) { proteinStringBuilders[i] = new StringBuilder(); } using (StreamWriter output = new StreamWriter(bayesianProteinQuantOutput)) { if (!ProteinGroups.Any()) { return; } var firstProteinQuantResults = ProteinGroups.First().Value.ConditionToQuantificationResults; if (!firstProteinQuantResults.Any()) { return; } string tabSepHeader = null; if (firstProteinQuantResults.First().Value is PairedProteinQuantResult) { tabSepHeader = PairedProteinQuantResult.TabSeparatedHeader(); } else { tabSepHeader = UnpairedProteinQuantResult.TabSeparatedHeader(); } foreach (var condition in firstProteinQuantResults.Keys) { header.Append(tabSepHeader); int p = 0; // sort by protein false discovery rate, then by number of measurements foreach (var protein in ProteinGroups .OrderByDescending(v => v.Value.ConditionToQuantificationResults[condition].IsStatisticallyValid) .ThenByDescending(v => v.Value.ConditionToQuantificationResults[condition].BayesFactor) .ThenByDescending(v => v.Value.ConditionToQuantificationResults[condition].Peptides.Count)) { proteinStringBuilders[p].Append( protein.Value.ConditionToQuantificationResults[condition].ToString()); p++; } } output.WriteLine(header); foreach (var proteinStringBuilder in proteinStringBuilders) { output.WriteLine(proteinStringBuilder); } } } if (!silent) { Console.WriteLine("Finished writing output"); } }
public void WriteResults(string peaksOutputPath, string modPeptideOutputPath, string proteinOutputPath, string bayesianProteinQuantOutput, bool silent) { if (!silent) { Console.WriteLine("Writing output..."); } if (peaksOutputPath != null) { using (StreamWriter output = new StreamWriter(peaksOutputPath)) { output.WriteLine(ChromatographicPeak.TabSeparatedHeader); foreach (var peak in Peaks.SelectMany(p => p.Value)) { output.WriteLine(peak.ToString()); } } } if (modPeptideOutputPath != null) { using (StreamWriter output = new StreamWriter(modPeptideOutputPath)) { output.WriteLine(Peptide.TabSeparatedHeader(SpectraFiles)); foreach (var peptide in PeptideModifiedSequences.OrderBy(p => p.Key)) { output.WriteLine(peptide.Value.ToString(SpectraFiles)); } } } if (proteinOutputPath != null) { using (StreamWriter output = new StreamWriter(proteinOutputPath)) { output.WriteLine(ProteinGroup.TabSeparatedHeader(SpectraFiles)); foreach (var protein in ProteinGroups.OrderBy(p => p.Key)) { output.WriteLine(protein.Value.ToString(SpectraFiles)); } } } if (bayesianProteinQuantOutput != null) { StringBuilder header = new StringBuilder(); StringBuilder[] proteinStringBuilders = new StringBuilder[ProteinGroups.Count]; for (int i = 0; i < proteinStringBuilders.Length; i++) { proteinStringBuilders[i] = new StringBuilder(); } using (StreamWriter output = new StreamWriter(bayesianProteinQuantOutput)) { if (!ProteinGroups.Any()) { return; } var firstProteinQuantResults = ProteinGroups.First().Value.ConditionToQuantificationResults; if (!firstProteinQuantResults.Any()) { return; } foreach (var condition in firstProteinQuantResults.Keys) { header.Append(ProteinQuantificationEngineResult.TabSeparatedHeader()); int p = 0; // sort by protein false discovery rate, then by number of fold-change measurements foreach (var protein in ProteinGroups .OrderBy(v => v.Value.ConditionToQuantificationResults[condition].FalseDiscoveryRate) .ThenByDescending(v => v.Value.ConditionToQuantificationResults[condition].PeptideFoldChangeMeasurements.SelectMany(b => b.foldChanges).Count())) { proteinStringBuilders[p].Append( protein.Value.ConditionToQuantificationResults[condition].ToString()); p++; } } output.WriteLine(header); foreach (var proteinStringBuilder in proteinStringBuilders) { output.WriteLine(proteinStringBuilder); } } } if (!silent) { Console.WriteLine("Finished writing output"); } }
private static void Main(string[] args) { Console.WriteLine("Welcome to MetaMorpheus"); // EDGAR: Createing the FlashLfqEngine is unforunately required, // otherwise the code just crashes when executed. SpectraFileInfo mzml = new SpectraFileInfo("sliced-mzml.mzml", "a", 0, 1, 0); var pg = new FlashLFQ.ProteinGroup("MyProtein", "gene", "org"); Identification id3 = new Identification(mzml, "EGFQVADGPLYR", "EGFQVADGPLYR", 1350.65681, 94.12193, 2, new List <FlashLFQ.ProteinGroup> { pg }); Identification id4 = new Identification(mzml, "EGFQVADGPLYR", "EGFQVADGPLYR", 1350.65681, 94.05811, 2, new List <FlashLFQ.ProteinGroup> { pg }); FlashLfqEngine engine = new FlashLfqEngine(new List <Identification> { id3, id4 }, normalize: true); // EDGAR: End of part required to avoid crash //generate toml Console.WriteLine("generating toml with {0} key-value pairs", args[1]); var tomlData = Toml.Create(); for (int i = 0; i < int.Parse(args[1]); i++) { tomlData.Add(i.ToString(), i); } //write toml Console.WriteLine("writing toml file {0}", args[0]); Stopwatch stopwatch = Stopwatch.StartNew(); Toml.WriteFile(tomlData, args[0]); stopwatch.Stop(); Console.WriteLine("Time elapsed for toml write: {0}\n", stopwatch.ElapsedMilliseconds); //read file Console.WriteLine("reading toml file {0}", args[0]); stopwatch = Stopwatch.StartNew(); var tomlRead = Toml.ReadFile(args[0]); stopwatch.Stop(); Console.WriteLine("Time elapsed for toml read: {0}\n", stopwatch.ElapsedMilliseconds); //read mzml file Console.WriteLine("reading mzml file {0}", args[2]); stopwatch = Stopwatch.StartNew(); var msData = Mzml.LoadAllStaticData(args[2]); stopwatch.Stop(); Console.WriteLine("Time elapsed for mzML read: {0}\n", stopwatch.ElapsedMilliseconds); //write mzml file Console.WriteLine("writing mzml file {0}", args[3]); stopwatch = Stopwatch.StartNew(); MzmlMethods.CreateAndWriteMyMzmlWithCalibratedSpectra(msData, args[3], false); stopwatch.Stop(); Console.WriteLine("Time elapsed for mzML write: {0}", stopwatch.ElapsedMilliseconds); }