public List <ModResModel> getPmFromDB(double ipaco)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("SELECT max(z) MAXZ,Parent_ions.* FROM Parent_ions group by seq,mod_res");
            //sb.Append(" WHERE ABS(MZ - " + pmFromFile.ToString() + ") < " + deviation + "order by FORUMLA");

            DataSet ds = sqlHelper.Query(sb.ToString());

            int count = ds.Tables[0].Rows.Count;

            List <ModResModel> lst = new List <ModResModel>();

            ModResModel model = new ModResModel();

            for (int i = 0; i < count; i++)
            {
                //if (model.Forumla == ds.Tables[0].Rows[i]["FORUMLA"].ToString())
                //{
                //continue;
                //}
                model          = new ModResModel();
                model.ID       = ds.Tables[0].Rows[i]["ID"].ToString();
                model.Mod_Res  = ds.Tables[0].Rows[i]["MOD_RES"].ToString();
                model.Z        = int.Parse(ds.Tables[0].Rows[i]["MAXZ"].ToString());
                model.Sequence = ds.Tables[0].Rows[i]["SEQ"].ToString();
                model.M_Z      = double.Parse(ds.Tables[0].Rows[i]["MZ"].ToString());
                model.Forumla  = ds.Tables[0].Rows[i]["FORUMLA"].ToString();
                model.M_Z_ALL  = ds.Tables[0].Rows[i]["MZ_ALL"].ToString().Split(',').Select(ms => double.Parse(ms)).ToList();
                model.M_ALL    = ds.Tables[0].Rows[i]["Relative_Abundance_ALL"].ToString().Split(',').Select(ms => double.Parse(ms)).ToList();
                List <MassPoint> lstMassPoint = new List <MassPoint>();

                for (int j = 0; j < model.M_Z_ALL.Count; j++)
                {
                    MassPoint mp = new MassPoint();

                    mp.Mass      = Convert.ToDouble(model.M_Z_ALL[j]);
                    mp.Intensity = Convert.ToDouble(model.M_ALL[j]);

                    if (Convert.ToDouble(model.M_ALL[j]) * 100 > ipaco)
                    {
                        if (Convert.ToDouble(model.M_ALL[j]) == 1.000)
                        {
                            model.M = lstMassPoint.Count;
                        }
                        lstMassPoint.Add(mp);
                    }
                }

                model.Mass_Point = lstMassPoint;
                lst.Add(model);
            }

            return(lst);
        }
        public List <ModResModel> getPmFromDB(double pmFromFile, double deviation, double ipaco)
        {
            StringBuilder sb = new StringBuilder();

            //sb.AppendFormat("SELECT * FROM {0}", sTableName);
            //sb.AppendFormat(" WHERE ABS(MZ - {0}) < {1}", pmFromFile, deviation);
            //sb.Append(" ORDER BY FORUMLA");

            sb.AppendFormat("SELECT * FROM {0}", sTableName);
            sb.AppendFormat(" WHERE MZ < {0} + {1} AND MZ > {2}", pmFromFile, deviation, pmFromFile);
            sb.AppendFormat("    OR MZ < {0} AND MZ > {1} - {2}", pmFromFile, pmFromFile, deviation);
            sb.Append(" ORDER BY FORUMLA");
            DataSet ds = sqlHelper.Query(sb.ToString());

            List <ModResModel> lst = new List <ModResModel>();

            ModResModel model;

            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                model          = new ModResModel();
                model.ID       = ds.Tables[0].Rows[i]["ID"].ToString();
                model.Mod_Res  = ds.Tables[0].Rows[i]["MOD_RES"].ToString();
                model.Z        = int.Parse(ds.Tables[0].Rows[i]["Z"].ToString());
                model.Sequence = ds.Tables[0].Rows[i]["SEQ"].ToString();
                model.M_Z      = double.Parse(ds.Tables[0].Rows[i]["MZ"].ToString());
                model.Forumla  = ds.Tables[0].Rows[i]["FORUMLA"].ToString();
                model.M_Z_ALL  = ds.Tables[0].Rows[i]["MZ_ALL"].ToString().Split(',').Select(ms => double.Parse(ms)).ToList();
                model.M_ALL    = ds.Tables[0].Rows[i]["Relative_Abundance_ALL"].ToString().Split(',').Select(ms => double.Parse(ms)).ToList();

                List <MassPoint> lstMassPoint = new List <MassPoint>();
                for (int j = 0; j < model.M_Z_ALL.Count; j++)
                {
                    MassPoint mp = new MassPoint();

                    mp.Mass      = Convert.ToDouble(model.M_Z_ALL[j]);
                    mp.Intensity = Convert.ToDouble(model.M_ALL[j]);

                    if (Convert.ToDouble(model.M_ALL[j]) * 100 > ipaco)
                    {
                        if (Convert.ToDouble(model.M_ALL[j]) == 1.000)
                        {
                            model.M = lstMassPoint.Count;
                        }
                        lstMassPoint.Add(mp);
                    }
                }

                model.Mass_Point = lstMassPoint;
                lst.Add(model);
            }

            return(lst);
        }
        public List <string[]> getFmFromDB(string ID, string mod_res, string scanTpye, string seq)
        {
            StringBuilder   sb          = new StringBuilder();
            List <string[]> returnValue = new List <string[]>();

            sb.Append("SELECT * FROM " + "Fragment_ions");
            sb.Append(" WHERE MOD_RES='" + mod_res + "'");
            //sb.Append(" and SEQ='" + seq + "'");
            //sb.Append(" WHERE ID ='" + ID+"' and MOD_RES='"+mod_res+"'");
            //sb.Append(" WHERE ID ='" + ID + "' and MOD_RES='S1,ac;K20,me2;'");
            //sb.Append(" WHERE ID ='" + ID + "' and MOD_RES=''");
            DataSet ds = sqlHelper.Query(sb.ToString());

            //int count = ds.Tables[0].Rows.Count;
            var       drrArr = ds.Tables[0].AsEnumerable().Where(query => query["SEQ"].Equals(seq));
            DataTable dt     = drrArr.CopyToDataTable();
            int       count  = dt.Rows.Count;

            List <ModResModel> lst = new List <ModResModel>();

            ModResModel model = new ModResModel();

            string[] etd_mz  = null;
            string[] etd_m   = null;
            string[] etd_max = null;
            string   useStr  = "";

            for (int i = 0; i < count; i++)
            {
                if (scanTpye == "ETD")
                {
                    dt.Rows[i]["ETD_MZ"].ToString();
                    dt.Rows[i]["ETD_Relative_Abundance"].ToString();
                    dt.Rows[i]["ETD_MZ_MAX"].ToString();
                    useStr  = dt.Rows[i]["ETD_MZ"].ToString();
                    useStr  = System.Text.RegularExpressions.Regex.Replace(useStr, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
                    etd_mz  = useStr.Split(new string[] { "&" }, StringSplitOptions.RemoveEmptyEntries);
                    useStr  = dt.Rows[i]["ETD_Relative_Abundance"].ToString();
                    useStr  = System.Text.RegularExpressions.Regex.Replace(useStr, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
                    etd_m   = useStr.Split(new string[] { "&" }, StringSplitOptions.RemoveEmptyEntries);
                    useStr  = dt.Rows[i]["ETD_MZ_MAX"].ToString();
                    useStr  = System.Text.RegularExpressions.Regex.Replace(useStr, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
                    etd_max = useStr.Split(new string[] { "&" }, StringSplitOptions.RemoveEmptyEntries);
                }
                else
                {
                    dt.Rows[i]["CID_MZ"].ToString();
                    dt.Rows[i]["CID_Relative_Abundance"].ToString();
                    dt.Rows[i]["CID_MZ_MAX"].ToString();
                    useStr  = dt.Rows[i]["CID_MZ"].ToString();
                    useStr  = System.Text.RegularExpressions.Regex.Replace(useStr, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
                    etd_mz  = useStr.Split(new string[] { "&" }, StringSplitOptions.RemoveEmptyEntries);
                    useStr  = dt.Rows[i]["CID_Relative_Abundance"].ToString();
                    useStr  = System.Text.RegularExpressions.Regex.Replace(useStr, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
                    etd_m   = useStr.Split(new string[] { "&" }, StringSplitOptions.RemoveEmptyEntries);
                    useStr  = dt.Rows[i]["CID_MZ_MAX"].ToString();
                    useStr  = System.Text.RegularExpressions.Regex.Replace(useStr, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
                    etd_max = useStr.Split(new string[] { "&" }, StringSplitOptions.RemoveEmptyEntries);
                }
                returnValue.Add(etd_mz);
                returnValue.Add(etd_m);
                returnValue.Add(etd_max);
            }

            return(returnValue);
        }