private static ThermoMzPeak GetPeak(PSM psm, double oxoniumIon, ThermoRawFile rawFile) { DoubleRange rangeOxonium = DoubleRange.FromPPM(oxoniumIon, 20); List <ThermoMzPeak> peaks; ThermoSpectrum spec = rawFile.GetSpectrum(psm.scanNumber); if (spec.TryGetPeaks(rangeOxonium, out peaks)) { peaks = peaks.OrderBy(x => x.SignalToNoise).ToList(); } double diff = double.MaxValue; ThermoMzPeak returnPeak = null; foreach (ThermoMzPeak peak in peaks) { var currDiff = Math.Abs(peak.MZ - oxoniumIon); if (currDiff < diff) { diff = currDiff; returnPeak = peak; } } return(returnPeak); }
public static void GetXICs(ThermoSpectrum currentSpectrum, int specNumber, double rt) { List <LFPeptide> donePeptides = targetPeptides.Where(x => x.LastScan < specNumber).ToList(); foreach (var pep in donePeptides) { pep.doneBuildingXIC = true; } List <LFPeptide> currPeptides = targetPeptides.Where(x => x.FirstScan <= specNumber && x.LastScan >= specNumber).ToList(); foreach (var pep in currPeptides) { List <ThermoMzPeak> outPeaks = new List <ThermoMzPeak>(); if (currentSpectrum.TryGetPeaks(pep.lookupRange, out outPeaks)) { var matchPeak = GetClosestPeak(outPeaks, pep.UserMZ); var newRTPeak = new RTPeak(matchPeak, rt); pep.XICLibrary.Add(newRTPeak); } else { var newRTPeak = new RTPeak(pep.UserMZ, 0, rt); pep.XICLibrary.Add(newRTPeak); } } }
public static void ThermoSpectrumTest() { double[] mz = new double[] { 1 }; double[] intensity = new double[] { 1 }; ThermoSpectrum s1 = new ThermoSpectrum(mz, intensity, false); ThermoSpectrum s2 = new ThermoSpectrum(mz, intensity, false); s1.ReplaceXbyApplyingFunction((a) => 4); Assert.AreEqual(4, s2.XArray[0]); }
public void MatchIntensities(ThermoSpectrum spectrum, int spectrumNumber) { var outputIntensity = 0.0; spectrum.TryGetIntensities(mzRange, out outputIntensity); intensities.Add(outputIntensity); spectrumNumbers.Add(spectrumNumber); spectrumTICs.Add(spectrum.TotalIonCurrent); }
public static int GetSpectraCountOxonium(List <int> spectrumList, double oxoniumIon1, double oxoniumIon2, ThermoRawFile rawFile) { int count = 0; foreach (int scan in spectrumList) { ThermoSpectrum spectrum = rawFile.GetSpectrum(scan); bool oxoniumIsPresent = false; DoubleRange rangeOxonium1 = DoubleRange.FromPPM(oxoniumIon1, 20); List <ThermoMzPeak> peaks; if (spectrum.TryGetPeaks(rangeOxonium1, out peaks)) { peaks = peaks.OrderBy(x => x.SignalToNoise).ToList(); } if (peaks.Count > 0) { if (peaks[0].SignalToNoise > 3) { oxoniumIsPresent = true; } } if (oxoniumIon2 > 0) { DoubleRange rangeOxonium2 = DoubleRange.FromPPM(oxoniumIon2, 20); List <ThermoMzPeak> peaks2; if (spectrum.TryGetPeaks(rangeOxonium2, out peaks2)) { peaks2 = peaks2.OrderBy(x => x.SignalToNoise).ToList(); } if (peaks2.Count > 0) { if (peaks2[0].SignalToNoise > 3) { oxoniumIsPresent = true; } } } if (oxoniumIsPresent) { count++; } } return(count); }
public static void RecalibrateThermoRawFile() { List <ISpectrum> spectra = new List <ISpectrum>(); using (ThermoRawFile rawFile = new ThermoRawFile("Resources/ThermoRawFileMS1MS2.raw")) { rawFile.Open(); for (int i = rawFile.FirstSpectrumNumber; i <= rawFile.LastSpectrumNumber; i++) { ThermoSpectrum spectrum = rawFile.GetLabeledSpectrum(i); ThermoSpectrum correctedSpectrum = spectrum.CorrectMasses((mz) => mz - 5); // shift all masses 5 Th lower spectra.Add(correctedSpectrum); } } }
public void LoadThermoTest2() { ThermoRawFile a = new ThermoRawFile(@"05-13-16_cali_MS_60K-res_MS.raw"); a.Open(); Assert.AreEqual(360, a.LastSpectrumNumber); var ok = a.GetScan(1).MassSpectrum.GetNoises(); Assert.AreEqual(2401.57, ok[0], 0.01); ThermoSpectrum ok2 = a.GetScan(1).MassSpectrum.newSpectrumExtract(0, 500); Assert.GreaterOrEqual(1000, a.GetScan(1).MassSpectrum.newSpectrumExtract(0, 500).LastX); Assert.AreEqual(2, a.GetScan(1).MassSpectrum.newSpectrumFilterByY(5e6).Count); var ye = a.GetScan(1).MassSpectrum.CopyTo2DArray(); Assert.AreEqual(1, ye[4, 1119]); Assert.AreEqual("(195.0874,1.0214E+07) z = +1 SN = 4170.38", a.GetScan(1).MassSpectrum.PeakWithHighestY.ToString()); Assert.AreEqual(77561752, a.GetTIC(1)); Assert.AreEqual(144, a.GetSpectrumNumber(2)); Assert.AreEqual(0.98, a.GetElapsedScanTime(100), 0.01); var cromatogram = a.GetTICChroma(); Assert.AreEqual(360, cromatogram.Count); Assert.AreEqual(0.01, cromatogram.FirstTime, 0.002); Assert.AreEqual(2.788433333, cromatogram.PeakWithHighestY.Time, 0.0001); Assert.AreEqual(2.788433333, cromatogram.GetApex(0, 5).Time, 0.0001); var newSpectrum = new ThermoSpectrum(a.GetScan(51).MassSpectrum); Assert.AreEqual(22246 / 5574.8, newSpectrum.GetSignalToNoise(1), 0.01); Assert.AreEqual(1, newSpectrum.GetCharges()[1]); Assert.AreEqual(102604, newSpectrum.GetResolutions()[1]); Assert.AreEqual(181, newSpectrum.newSpectrumExtract(500, 1000).Count); Assert.AreEqual(0, newSpectrum.newSpectrumExtract(-3, -2).Count); var hm = newSpectrum.newSpectrumExtract(501, 502); Assert.AreEqual(0, hm.Count); }
public static void LoadThermoTest2() { ThermoStaticData a = ThermoStaticData.LoadAllStaticData(@"05-13-16_cali_MS_60K-res_MS.raw"); Assert.AreEqual(360, a.NumSpectra); Assert.GreaterOrEqual(1000, a.GetOneBasedScan(1).MassSpectrum.Extract(0, 500).Last().X); Assert.AreEqual(2, a.GetOneBasedScan(1).MassSpectrum.FilterByY(5e6, double.MaxValue).Count()); var ye = a.GetOneBasedScan(1).MassSpectrum.CopyTo2DArray(); Assert.AreEqual(77561752, a.GetOneBasedScan(1).TotalIonCurrent); Assert.AreEqual(144, a.GetClosestOneBasedSpectrumNumber(2)); var newSpectrum = new ThermoSpectrum(a.GetOneBasedScan(51).MassSpectrum); Assert.AreEqual(1120, a.GetOneBasedScan(1).MassSpectrum.Size); var newDeconvolution = a.GetOneBasedScan(1).MassSpectrum.Deconvolute(new MzRange(double.MinValue, double.MaxValue), 1, 10, 1, 4).ToList(); Assert.IsTrue(newDeconvolution.Any(b => Math.Abs(b.peaks.First().mz.ToMass(b.charge) - 523.257) < 0.001)); MzmlMethods.CreateAndWriteMyMzmlWithCalibratedSpectra(a, Path.Combine(TestContext.CurrentContext.TestDirectory, "convertedThermo.mzML"), false); var sdafaf = a.Deconvolute(null, null, 1, 30, 10, 3, 10, b => true).OrderByDescending(b => b.NumPeaks).First(); Assert.IsTrue(Math.Abs(262.64 - sdafaf.Mass.ToMz(2)) <= 0.01); using (ThermoDynamicData dynamicThermo = ThermoDynamicData.InitiateDynamicConnection(@"05-13-16_cali_MS_60K-res_MS.raw")) { Assert.AreEqual(136, dynamicThermo.GetClosestOneBasedSpectrumNumber(1.89)); dynamicThermo.ClearCachedScans(); } Mzml readCovertedMzmlFile = Mzml.LoadAllStaticData(Path.Combine(TestContext.CurrentContext.TestDirectory, "convertedThermo.mzML")); Assert.AreEqual(a.First().Polarity, readCovertedMzmlFile.First().Polarity); }