Ejemplo n.º 1
0
        /// <summary>
        /// Find the Isotope Profile
        /// </summary>
        /// <returns></returns>
        public List <MSPoint> GetIsotopeProfileUsingMass(double mass)
        {
            mobj_theoretical_dist.Mass = mass;
            List <MSPoint> isotopeprofiler = new List <MSPoint>();

            mobj_theoretical_dist.CreateTheoreticalDistributionUsingMass();
            StreamReader sr = new StreamReader("tmp.csv");
            float        tmpmz = 0.0f, tmpintensity, currentmz = 0.0f, currentintensity;

            //Find max intensity in each peak
            string tmp = sr.ReadLine();

            currentmz        = Convert.ToSingle(tmp.Split(',')[0]);
            currentintensity = Convert.ToSingle(tmp.Split(',')[1]);
            do
            {
                tmp          = sr.ReadLine();
                tmpmz        = Convert.ToSingle(tmp.Split(',')[0]);
                tmpintensity = Convert.ToSingle(tmp.Split(',')[1]);

                if (Math.Abs(tmpmz - currentmz) < 0.9)
                {
                    if (tmpintensity >= currentintensity)
                    {
                        currentintensity = tmpintensity;
                        currentmz        = tmpmz;
                    }
                }
                else
                {
                    isotopeprofiler.Add(new MSPoint(currentmz, currentintensity));
                    currentmz        = tmpmz;
                    currentintensity = tmpintensity;
                }
            } while (!sr.EndOfStream);
            isotopeprofiler.Add(new MSPoint(currentmz, currentintensity));
            sr.Close();
            return(isotopeprofiler);
        }