Beispiel #1
0
        public static void Insilico_filter_U2(proteins prot, List <double> peakList, double tol)
        {
            double       l_score;
            double       r_score;
            double       score;
            bool         left;
            bool         right;
            insilico_obj comp;

            comp    = new insilico_obj();
            r_score = 0;
            l_score = 0;

            comp = prot.insilico_details;
            //comp.insilico_mass_right = frags.ElementAt(j).mw_right_ion;

            for (int k = 0; k < prot.insilico_details.insilico_mass_left.Count; k++)
            {
                left = false;
                for (int i = 0; i < peakList.Count; i++)
                {
                    if (Math.Abs(prot.insilico_details.insilico_mass_left[k] - peakList[i]) < tol)
                    {
                        l_score++;
                        comp.peaklist_mass_left.Add(peakList[i]);
                        left = true;
                    }
                }
                if (left == false)
                {
                    comp.peaklist_mass_left.Add(0);
                }
            }

            for (int k = 0; k < prot.insilico_details.insilico_mass_right.Count; k++)
            {
                right = false;

                for (int i = 0; i < peakList.Count; i++)
                {
                    if (Math.Abs(prot.insilico_details.insilico_mass_right[k] - peakList[i]) < tol)
                    {
                        comp.peaklist_mass_right.Add(peakList[i]);
                        r_score++;
                        right = true;
                    }
                }
                if (right == false)
                {
                    comp.peaklist_mass_right.Add(0);
                }
            }

            score = (l_score + r_score) / (peakList.Count);
            Console.WriteLine("Insilico score:");
            Console.WriteLine(score);

            prot.insilico_score   = score;
            prot.insilico_details = comp;
        }
Beispiel #2
0
        /// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        public static void insilico_fragmentation_2(proteins prot, string clevageType, string ions)
        {
            frag1_2(prot, clevageType, ions, 0);

            //return result;
        }
Beispiel #3
0
        public static void frag1_2(proteins prot, string clevageType, string HandleIon, int index)
        {
            string strprotein = prot.sequence;
            int    prtlength  = strprotein.Length; //Gives length of Protein

            strprotein = strprotein.ToUpper();     //Convert all amino aFragment letters into uppercase letters

            if (prot.ptm_particulars != null)
            {
                if (prot.ptm_particulars.Count != 0)
                {
                    for (int j = 0; j < prot.ptm_particulars.Count; j++)
                    {
                        prot.insilico_details.insilico_mass_right[0] += prot.ptm_particulars[j].mod_weight;
                        if (prot.ptm_particulars[j].i == 0)
                        {
                            prot.insilico_details.insilico_mass_left[0] += prot.ptm_particulars[j].mod_weight;
                        }
                    }
                }
            }

            for (int ifragmentationposition = 1; ifragmentationposition < prtlength; ifragmentationposition++)
            {
                if (prot.ptm_particulars != null)
                {
                    if (prot.ptm_particulars.Count != 0)
                    {
                        for (int j = 0; j < prot.ptm_particulars.Count; j++)
                        {
                            if (prot.ptm_particulars[j].i == ifragmentationposition)
                            {
                                for (int k = ifragmentationposition; k < prtlength; k++)
                                {
                                    prot.insilico_details.insilico_mass_left[ifragmentationposition] += prot.ptm_particulars[j].mod_weight;
                                }
                                for (int k = ifragmentationposition; k > 0; k--)
                                {
                                    prot.insilico_details.insilico_mass_right[ifragmentationposition] -= prot.ptm_particulars[j].mod_weight;
                                }
                            }
                        }
                    }
                    else
                    {
                        break;
                    }
                }
                else
                {
                    break;
                }
            }

            if (clevageType == "CID" || clevageType == "cid" || clevageType == "bird" || clevageType == "BIRD" || clevageType == "imd" || clevageType == "IMD" || clevageType == "HCD" || clevageType == "hcd" || clevageType == "SID" || clevageType == "sid")
            {
                for (int i = 0; i < prtlength; i++)//for Fragment
                {
                    if (HandleIon == "bo")
                    {
                        prot.insilico_details.insilico_mass_left.Add(prot.insilico_details.insilico_mass_left[i] - 18 - 1.00794);
                    }
                    else if (HandleIon == "bstar")
                    {
                        prot.insilico_details.insilico_mass_left.Add(prot.insilico_details.insilico_mass_left[i] - 17.026549 - 1.00794);
                    }
                    else if (HandleIon == "ystar")
                    {
                        prot.insilico_details.insilico_mass_right.Add(prot.insilico_details.insilico_mass_right[i] - 17.026549 + 1.00794);
                    }
                    else if (HandleIon == "yo")
                    {
                        prot.insilico_details.insilico_mass_right.Add(prot.insilico_details.insilico_mass_right[i] - 18 + 1.00794);
                    }

                    prot.insilico_details.insilico_mass_left[i]  -= 1.00794;
                    prot.insilico_details.insilico_mass_right[i] += 1.00794;
                }
            }

            else if (clevageType == "ECD" || clevageType == "ecd" || clevageType == "ETD" || clevageType == "etd")
            {
                for (int i = 0; i < prtlength; i++)//for Fragment
                {
                    if (HandleIon == "zd")
                    {
                        prot.insilico_details.insilico_mass_right.Add(prot.insilico_details.insilico_mass_right[i] + 1 - 16.02258);
                    }
                    else if (HandleIon == "zdd")
                    {
                        prot.insilico_details.insilico_mass_right.Add(prot.insilico_details.insilico_mass_right[i] + 2 - 16.02258);
                    }

                    prot.insilico_details.insilico_mass_left[i]  += 16.02258;
                    prot.insilico_details.insilico_mass_right[i] -= 16.02258;
                }
            }

            else if (clevageType == "EDD" || clevageType == "edd" || clevageType == "NETD" || clevageType == "netd")
            {
                for (int i = 0; i < prtlength; i++)//for Fragment
                {
                    if (HandleIon == "ao")
                    {
                        prot.insilico_details.insilico_mass_left.Add(prot.insilico_details.insilico_mass_left[i] - 18 - 29.01804);
                    }
                    else if (HandleIon == "astar")
                    {
                        prot.insilico_details.insilico_mass_left.Add(prot.insilico_details.insilico_mass_left[i] - 17.026549 - 29.01804);
                    }

                    prot.insilico_details.insilico_mass_left[i]  -= 29.01804;
                    prot.insilico_details.insilico_mass_right[i] += 27.02534;
                }
            }

            //return output;
        }
Beispiel #4
0
        //Returns Search History of specific query ie. search parameters and Results
        public searchview retrieve_searchview_db(string qid)
        {
            searchview       result = new searchview();
            QuerryParameters qp     = new QuerryParameters();
            Results          r      = new Results();

            string[] QIDArr = qid.Split('z');
            qid = QIDArr[0];
            int file_id = Convert.ToInt32(QIDArr[1]);

            string query1 = "SELECT * FROM proteomics.query where QueryId='" + qid + "';";
            string queryT = "SELECT * FROM proteomics.timings where querry_ID='" + qid + "';";

            if (this.OpenConnection() == true)
            {
                try
                {
                    using (MySqlTransaction trans = connection.BeginTransaction())
                    {
                        MySqlCommand    cmd    = new MySqlCommand(queryT, connection);
                        MySqlDataReader reader = cmd.ExecuteReader();
                        if (reader.Read())
                        {
                            r.times.insilico_time  = reader.GetValue(1).ToString();
                            r.times.ptm_time       = reader.GetValue(2).ToString();
                            r.times.tuner_time     = reader.GetValue(3).ToString();
                            r.times.mw_filter_time = reader.GetValue(4).ToString();
                            r.times.pst_time       = reader.GetValue(5).ToString();
                            r.times.total_time     = reader.GetValue(6).ToString();
                            r.times.file           = reader.GetValue(7).ToString();
                        }
                        reader.Close();



                        cmd    = new MySqlCommand(query1, connection);
                        reader = cmd.ExecuteReader();


                        if (reader.Read())
                        {
                            qp.queryid            = reader.GetValue(0).ToString();
                            qp.userID             = reader.GetValue(1).ToString();
                            qp.title              = reader.GetValue(2).ToString();
                            qp.protDB             = reader.GetValue(3).ToString();
                            qp.outputFormat       = Convert.ToInt32(reader.GetValue(4));
                            qp.insilico_frag_type = reader.GetValue(5).ToString();
                            qp.filterDB           = Convert.ToInt32(reader.GetValue(6));

                            qp.ptm_tolerance = Convert.ToDouble(reader.GetValue(7));
                            qp.MWTolUnit     = reader.GetValue(8).ToString();
                            qp.MW_tolerance  = Convert.ToDouble(reader.GetValue(9));
                            qp.hopThreshhold = Convert.ToDouble(reader.GetValue(10));

                            qp.minimum_est_length = Convert.ToInt32(reader.GetValue(11));
                            qp.maximum_est_length = Convert.ToInt32(reader.GetValue(12));
                            // public double pst_tolerance;
                            qp.GUI_mass   = Convert.ToDouble(reader.GetValue(13));
                            qp.HandleIons = reader.GetValue(14).ToString();
                            qp.autotune   = Convert.ToInt32(reader.GetValue(15));


                            qp.peakListFile = reader.GetValue(16).ToString().Split('<');
                            qp.fileType     = reader.GetValue(17).ToString();
                            // public double peptideTol;

                            //added
                            qp.hopTolUnit = reader.GetValue(18).ToString();


                            qp.MW_sweight       = Convert.ToDouble(reader.GetValue(19));
                            qp.PST_sweight      = Convert.ToDouble(reader.GetValue(20));
                            qp.Insilico_sweight = Convert.ToDouble(reader.GetValue(21));

                            qp.NumberOfOutputs = Convert.ToInt32(reader.GetValue(22));
                            /////
                            qp.denovo_allow = Convert.ToInt32(reader.GetValue(23));
                            qp.ptm_allow    = Convert.ToInt32(reader.GetValue(24));
                        }

                        reader.Close();
                        query1 = "SELECT fixed_mod FROM fixed_modifications where QuerryId='" + qid + "';";
                        cmd    = new MySqlCommand(query1, connection);
                        using (reader = cmd.ExecuteReader())
                        {
                            qp.ptm_code_fix = new List <int>();
                            while (reader.Read())
                            {
                                qp.ptm_code_fix.Add(Convert.ToInt32(reader["fixed_mod"]));
                            }
                        }

                        reader.Close();
                        query1 = "SELECT variable_mod FROM variable_modifications where QuerryId='" + qid + "';";
                        cmd    = new MySqlCommand(query1, connection);
                        using (reader = cmd.ExecuteReader())
                        {
                            qp.ptm_code_var = new List <int>();
                            while (reader.Read())
                            {
                                qp.ptm_code_var.Add(Convert.ToInt32(reader["variable_mod"]));
                            }
                        }
                        reader.Close();
                        // SELECT * FROM proteomics.results Where Querry_ID = 'fe29e39e-97ee-4f5e-9cab-4d414b5e902a' ORDER BY score DESC LIMIT 3;



                        string query2 = "SELECT * FROM results where Querry_ID='" + qid + "' AND file_ID = " + file_id + " ORDER BY score DESC LIMIT " + qp.NumberOfOutputs + ";";
                        cmd          = new MySqlCommand(query2, connection);
                        r.querryID   = qid;
                        r.final_prot = new List <proteins>();
                        proteins      temp_prot = new proteins();
                        List <string> resid     = new List <string>();

                        using (reader = cmd.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                temp_prot = new proteins();
                                resid.Add(reader.GetValue(0).ToString());
                                temp_prot.header         = reader.GetValue(2).ToString();
                                temp_prot.sequence       = reader.GetValue(3).ToString();
                                temp_prot.est_score      = Convert.ToDouble(reader.GetValue(4));
                                temp_prot.insilico_score = Convert.ToDouble(reader.GetValue(5));
                                temp_prot.ptm_score      = Convert.ToDouble(reader.GetValue(6));
                                temp_prot.score          = Convert.ToDouble(reader.GetValue(7));
                                temp_prot.MW_score       = Convert.ToDouble(reader.GetValue(8));
                                temp_prot.MW             = Convert.ToDouble(reader.GetValue(9));

                                r.final_prot.Add(temp_prot);
                            }
                        }
                        reader.Close();



                        Sites  temp_site = new Sites();
                        string tempaa;
                        for (int i = 0; i < resid.Count; i++)
                        {
                            query2 = "SELECT * FROM ptm_sites where result_id='" + resid[i] + "';";
                            cmd    = new MySqlCommand(query2, connection);
                            using (reader = cmd.ExecuteReader())
                            {
                                while (reader.Read())
                                {
                                    temp_site            = new Sites();
                                    temp_site.i          = Convert.ToInt32(reader.GetValue(1));
                                    temp_site.score      = Convert.ToInt32(reader.GetValue(2));
                                    temp_site.mod_weight = Convert.ToInt32(reader.GetValue(3));
                                    temp_site.mod_name   = reader.GetValue(4).ToString();
                                    temp_site.site       = Convert.ToChar(reader.GetValue(5));
                                    tempaa = reader.GetValue(6).ToString();

                                    for (int j = 0; j < tempaa.Length; j++)
                                    {
                                        temp_site.AA.Add(tempaa[j]);
                                    }


                                    r.final_prot[i].ptm_particulars.Add(temp_site);
                                }
                            }
                        }
                        reader.Close();
                        ///////////



                        //temp_p.insilico_details.insilico_mass_left = dataPs[3].Split(',').Select(t => double.Parse(t)).ToList<double>();

                        string xx;
                        for (int i = 0; i < resid.Count; i++)
                        {
                            query2 = "SELECT matched_peak_left FROM insilico_matches_left where result_id='" + resid[i] + "';";



                            cmd = new MySqlCommand(query2, connection);
                            using (reader = cmd.ExecuteReader())
                            {
                                temp_site = new Sites();

                                if (reader.Read())
                                {
                                    xx = reader.GetValue(0).ToString();

                                    r.final_prot[i].insilico_details.peaklist_mass_left = xx.Split(',').Select(t => double.Parse(t)).ToList <double>();
                                }
                            }



                            query2 = "SELECT Ions FROM leftions where ProteinID='" + r.final_prot[i].header + "';";



                            cmd = new MySqlCommand(query2, connection);
                            using (reader = cmd.ExecuteReader())
                            {
                                temp_site = new Sites();

                                if (reader.Read())
                                {
                                    xx = reader.GetValue(0).ToString();
                                    xx = Decompress(xx);
                                    r.final_prot[i].insilico_details.insilico_mass_left = xx.Split(',').Select(t => double.Parse(t)).ToList <double>();
                                }
                            }
                        }
                        reader.Close();

                        //////////////////////////////////////////////////////////////



                        for (int i = 0; i < resid.Count; i++)
                        {
                            query2 = "SELECT matchedpeak_right FROM insilico_matches_right where result_id='" + resid[i] + "';";



                            cmd = new MySqlCommand(query2, connection);
                            using (reader = cmd.ExecuteReader())
                            {
                                temp_site = new Sites();

                                if (reader.Read())
                                {
                                    xx = reader.GetValue(0).ToString();

                                    r.final_prot[i].insilico_details.peaklist_mass_right = xx.Split(',').Select(t => double.Parse(t)).ToList <double>();
                                }
                            }



                            query2 = "SELECT Ions FROM rightions where ProteinID='" + r.final_prot[i].header + "';";



                            cmd = new MySqlCommand(query2, connection);
                            using (reader = cmd.ExecuteReader())
                            {
                                temp_site = new Sites();

                                if (reader.Read())
                                {
                                    xx = reader.GetValue(0).ToString();
                                    xx = Decompress(xx);
                                    r.final_prot[i].insilico_details.insilico_mass_right = xx.Split(',').Select(t => double.Parse(t)).ToList <double>();
                                }
                            }
                        }
                        reader.Close();

                        //////////////////////////////////////////////////////////////



                        //for (int i = 0; i < resid.Count; i++)
                        //{
                        //    query2 = "SELECT * FROM insilico_mass_right where result_id='" + resid[i] + "';";
                        //    cmd = new MySqlCommand(query2, connection);
                        //    using (reader = cmd.ExecuteReader())
                        //    {

                        //        while (reader.Read())
                        //        {
                        //            temp_site = new Sites();
                        //            r.final_prot[i].insilico_details.insilico_mass_right.Add(Convert.ToDouble(reader.GetValue(1)));
                        //            r.final_prot[i].insilico_details.peaklist_mass_right.Add(Convert.ToDouble(reader.GetValue(2)));


                        //        }
                        //    }

                        //}
                        //reader.Close();



                        ////////////
                        result.param  = qp;
                        result.result = r;



                        trans.Commit();
                        connection.Close();
                    }
                }


                catch (Exception e)
                {
                    System.Diagnostics.Debug.WriteLine(e.Message);
                }
            }


            // result.result.final_prot = result.result.final_prot.OrderByDescending(o => o.score).ToList();
            return(result);
        }