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 double CheckPeak(ThermoMzPeak peak) { double intensity = 0; if (peak != null) { intensity = peak.Intensity; } return(intensity); }
public RTPeak(MZPeak peak, double RT) { this._intensity = peak.Intensity; this._mz = peak.MZ; this._rt = RT; this.Peak = peak; ThermoMzPeak labelPeak = ((ThermoMzPeak)peak); this.charge = labelPeak.Charge; this.Sn = labelPeak.GetSignalToNoise(); }
public static ThermoMzPeak GetClosestPeak(List <ThermoMzPeak> peaks, double expMZ) { double diff = double.MaxValue; ThermoMzPeak returnPeak = null; foreach (var peak in peaks) { var currDiff = Math.Abs(peak.MZ - expMZ); if (currDiff < diff) { diff = currDiff; returnPeak = peak; } } return(returnPeak); }
static void Main(string[] args) { UsefulProteomicsDatabases.Loaders.LoadElements("elements.dat"); var tol = 0.01; var Compound1 = new Peptide("NNNNN"); var regularMZ = new IsotopicDistribution(Compound1.GetChemicalFormula(), 0.1, 0.001).Masses.Select(b => b.ToMassToChargeRatio(1)).ToList(); Console.WriteLine("NNNNN mz: " + string.Join(", ", regularMZ)); var withAmmoniaLoss = Compound1.GetChemicalFormula(); withAmmoniaLoss.Add(new ChemicalFormula("N-1H-2")); var withAmmoniaLossMZ = new IsotopicDistribution(withAmmoniaLoss, 0.1, 0.001).Masses.Select(b => b.ToMassToChargeRatio(1)).ToList(); Console.WriteLine("withAmmoniaLoss mz: " + string.Join(", ", withAmmoniaLossMZ)); var deamidated = Compound1.GetChemicalFormula(); deamidated.Add(new ChemicalFormula("H-1N-1O")); var deamidatedMZ = new IsotopicDistribution(deamidated, 0.1, 0.001).Masses.Select(b => b.ToMassToChargeRatio(1)).ToList(); Console.WriteLine("deamidated mz: " + string.Join(", ", deamidatedMZ)); List <List <double> > allDistributions = new List <List <double> >() { regularMZ, withAmmoniaLossMZ, deamidatedMZ }; foreach (var arg in args) { var file = new ThermoRawFile(arg); file.Open(); string output_filepath = file.FilePath.Remove(file.FilePath.IndexOf(".raw"), ".raw".Length); //removes .raw at end for output using (System.IO.StreamWriter shiftsFile = new System.IO.StreamWriter(output_filepath + ".tsv")) { shiftsFile.WriteLine(file.FilePath); Console.WriteLine(file.FilePath); foreach (var scan in file) { if (scan.MsnOrder == 1) { double bestIntensity = 0; double monoError = double.NaN; foreach (var dist in allDistributions) { ThermoMzPeak monoisotopicPeak = null; try { monoisotopicPeak = scan.MassSpectrum.newSpectrumExtract(dist[0] - tol, dist[0] + tol).PeakWithHighestY; } catch { } if (monoisotopicPeak != null && bestIntensity < monoisotopicPeak.Intensity) { bestIntensity = monoisotopicPeak.Intensity; monoError = dist[0] - monoisotopicPeak.MZ; } } shiftsFile.WriteLine(scan.ScanNumber + "\t" + monoError); } } } } }