Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        public static double CheckPeak(ThermoMzPeak peak)
        {
            double intensity = 0;

            if (peak != null)
            {
                intensity = peak.Intensity;
            }

            return(intensity);
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
                        }
                    }
                }
            }
        }