// 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()); }
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(); }
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);