コード例 #1
0
ファイル: ScanAssigner.cs プロジェクト: gwilson9/GlycoTools
        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);
        }
コード例 #2
0
        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);
                }
            }
        }
コード例 #3
0
ファイル: TestThermo.cs プロジェクト: dippman/mzLib
        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);
        }
コード例 #5
0
ファイル: ScanAssigner.cs プロジェクト: gwilson9/GlycoTools
        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);
        }
コード例 #6
0
        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);
                }
            }
        }
コード例 #7
0
ファイル: Class1.cs プロジェクト: stefanks/MassSpecFiles
        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);
        }
コード例 #8
0
ファイル: TestThermo.cs プロジェクト: dippman/mzLib
        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);
        }