// assume the spectrum read sequentially
        public double GetMonoMass(ISpectrum spectrum)
        {
            if (spectrum.GetMSnOrder() == 1)
            {
                List <IPoint> points = new List <IPoint>();
                foreach (IPeak pk in spectrum.GetPeaks())
                {
                    points.Add(new PeakPoint(pk));
                }
                matcher.setData(points);

                return(0);
            }

            ISpectrumMSn spectrumMSn = spectrum as ISpectrumMSn;

            double mz       = spectrumMSn.GetParentMZ();
            double monoMass = mz;


            // search isotopic point on full MS spectrum
            int charge   = spectrumMSn.GetParentCharge();
            int isotopic = 0;

            while (isotopic < maxIsotopic)
            {
                double target = mz - Proton / charge * (isotopic + 1);
                if (!matcher.Found(new GeneralPoint(target)))
                {
                    break;
                }
                isotopic++;
            }

            // get max intensity peak
            if (isotopic == 0)
            {
                return(monoMass);
            }
            double        isoMZ   = mz - Proton / charge * isotopic;
            List <IPoint> matched = matcher.Search(new GeneralPoint(isoMZ));

            return(matched.OrderBy(x => Math.Abs((x as PeakPoint).MZ - isoMZ)).First().GetValue());
        }
示例#2
0
        public void Run()
        {
            ThermoRawSearchRunSpectrum specRunner = new ThermoRawSearchRunSpectrum();

            specRunner.Run(@"C:\Users\iruiz\Downloads\ZC_20171218_H95_R1.raw");
            //specRunner.Run(@"C:\Users\rz20\Downloads\ZC_20171218_H95_R1.raw");
            ISpectrum spectrum = specRunner.GetSpectrum(7859);


            ISpectrumMSn         msnSpectrum = specRunner.GetSpectrum(7861) as ISpectrumMSn;
            IMonoMassSpectrumRun monoRunner  = new BinSearchMonoMassSpectrumRun();

            monoRunner.SetMS1Spectrum(spectrum);
            monoRunner.Run(msnSpectrum);

            Console.WriteLine(monoRunner.GetIsotopic());


            //ISpectrumProcessing processor = new GeneralPeakPickingSpectrumProcessing();
            ////processor.Process(spectrum);

            //int charge = 4;
            //double Hydrogen = 1.0078;

            //int indx = PreciseMatch(1198.48413085938, Find(1198.48413085938, peaks, 10), peaks);

            //double ppm =  UtilMass.Instance.CalcPPM(peaks[indx].GetMZ(), 1198.48413085938);
            //Console.WriteLine(ppm);

            //Console.WriteLine(peaks[indx].GetIntensity());

            //double mz = peaks[indx].GetMZ();
            //Console.WriteLine(peaks[FindMassPeak(mz - Hydrogen/charge, peaks, 5)].GetMZ());
            //Console.WriteLine(peaks[FindMassPeak(mz - Hydrogen/charge * 2, peaks, 5)].GetMZ());

            //Console.WriteLine(peaks[FindMassPeak(mz - Hydrogen/charge * 3, peaks, 5)].GetMZ());



            Console.Read();
        }
示例#3
0
        public override void Run(ISpectrumMSn spectrum)
        {
            if (msSpectrum == null)
            {
                monoPeak = null;
                monoMass = spectrum.GetParentMZ();
                return;
            }
            List <IPeak> peaks  = msSpectrum.GetPeaks();
            double       mz     = spectrum.GetParentMZ();
            int          charge = spectrum.GetParentCharge();
            double       Proton = UtilMass.Hydrogen;

            isotopics = 0;
            int index = FindMassPeak(mz, peaks, tol);

            while (isotopics < 10)
            {
                int matchIndex = FindMassPeak(mz - Proton / charge * (isotopics + 1), peaks, tol);
                if (matchIndex > 0)
                {
                    isotopics++;
                    index = matchIndex;
                }
                else
                {
                    break;
                }
            }
            if (index > 0)
            {
                monoPeak = peaks[index];
                monoMass = monoPeak.GetMZ();
            }
            else
            {
                monoPeak = null;
                monoMass = mz;
            }
        }
        public void Run()
        {
            var watch = new System.Diagnostics.Stopwatch();

            watch.Start();

            FastaSearchRunPeptides pepRunner = new FastaSearchRunPeptides();

            pepRunner.SetPeptideCreator(new NGlycosylationPeptideCreator(new GeneralPeptideCreator()));
            List <IPeptide> peptides = pepRunner.Run(@"C:\Users\iruiz\Downloads\ms_fasta.fasta");

            //List<IPeptide> peptides = pepRunner.Run(@"C:\Users\rz20\Downloads\ms_fasta.fasta");
            Console.WriteLine(peptides.Count);

            IAccumulatedMSNGlycanCreator       glyRunner = new AccumulatedMSBruteForceNGlycanCreator();
            List <IAccumulatedGlycanMassProxy> glycans   = glyRunner.GenerateSpecific();
            //IGlycanGenerator glyRunner = new SimpleGlycanGenerator();
            //List<IGlycan> glycans = glyRunner.Generate();

            ThermoRawSearchRunSpectrum specRunner = new ThermoRawSearchRunSpectrum();

            specRunner.Run(@"C:\Users\iruiz\Downloads\ZC_20171218_H95_R1.raw");
            //specRunner.Run(@"C:\Users\rz20\Downloads\ZC_20171218_H95_R1.raw");
            ISpectrumMSn spectrum = specRunner.GetSpectrum(7861) as ISpectrumMSn;

            List <IGlycan> glycanSet = new List <IGlycan>();

            glycanSet.AddRange(glycans);

            //IAccumulatedPrecursorMatcher matcher = new AccumulatedNGlycoPeptidePrecursorMatcher(peptides, glycanSet, 20);
            //List<IAccumulatedGlycoPeptideMassProxy> glycoPeptides =  matcher.Match(spectrum);


            IPrecursorMatcher    matcher       = new GlycoPeptidePrecursorMatcher(peptides, glycanSet, 20);
            List <IGlycoPeptide> glycoPeptides = matcher.Match(spectrum);


            //int last = specRunner.GetLastScan();
            //for (int i = 0; i <= last; i++)
            //{
            //    specRunner.GetSpectrum(i);
            //}
            //specRunner.Run(@"C:\Users\iruiz\Downloads\2.raw");
            //last = specRunner.GetLastScan();
            //for (int i = 0; i <= last; i++)
            //{
            //    specRunner.GetSpectrum(i);
            //}
            //specRunner.Exit();

            watch.Stop();
            Console.WriteLine(glycans.Count);
            Console.WriteLine(glycoPeptides.Count);
            foreach (IGlycoPeptide gly in glycoPeptides)
            {
                Console.WriteLine(gly.GetPeptide().GetSequence());
                Console.WriteLine(gly.GetGlycan().GetName());
            }

            Console.WriteLine($"Execution Time: {watch.ElapsedMilliseconds} ms");
            Console.Read();
        }
 public abstract void Run(ISpectrumMSn spectrum);