Exemple #1
0
        /// <summary>
        /// Author: Ryan Liang
        /// </summary>
        private TableRow CreateTableRow(Drug_Information drug, PDB_Interaction interaction, SNV_Mutation mutation)
        {
            TableRow tableRow = new TableRow();

            tableRow.Cells.Add(new TableCell()
            {
                Text = drug.Drug_Common_Name
            });
            tableRow.Cells.Add(new TableCell()
            {
                Text = mutation.PDB_File_ID
            });
            tableRow.Cells.Add(new TableCell()
            {
                Text = mutation.Drug_PDB_ID
            });
            tableRow.Cells.Add(new TableCell()
            {
                Text = drug.PubChem_CID
            });
            tableRow.Cells.Add(new TableCell()
            {
                Text = drug.ChEMBL_ID
            });

            if (double.TryParse(interaction?.Interaction_Distance_Ratio, out double result))
            {
                tableRow.Cells.Add(new TableCell()
                {
                    Text = result.ToString("0.0")
                });
            }
            else
            {
                tableRow.Cells.Add(new TableCell()
                {
                    Text = ""
                });
            }

            string predictedEffiency = FindPredictedEffiency(mutation);

            tableRow.Cells.Add(new TableCell()
            {
                Text = predictedEffiency
            });

            return(tableRow);
        }
Exemple #2
0
 /// <summary>
 /// Author: Ryan Liang
 /// </summary>
 public void LoadProtein(Protein_Information protein, PDB_Interaction interaction, SNV_Mutation mutation)
 {
     ProcessRow(gene_name_row, gene_name, mutation.NCBI_Gene_Name);
     ProcessRow(uniprot_id_row, uniprot_id, mutation.UniProt_ID, protein.UniProt_Entry_URL);
     ProcessRow(refseq_id_row, refseq_id, protein.NCBI_RefSeq_NP_ID, protein.NCBI_RefSeq_NP_ID_URL);
     ProcessRow(nucleotide_id_row, nucleotide_id, protein.NCBI_Nucleotide_ID, protein.NCBI_Nucleotide_ID_URL);
     ProcessRow(gene_id_row, gene_id, protein.NCBI_Gene_ID, protein.NCBI_Gene_URL);
     ProcessRow(chromosome_location_row, chromosome_location, protein.Human_Chromosome_Location);
     ProcessRow(gene_location_row, gene_location, protein.Human_Gene_Location);
     ProcessRow(aa_residue_no_row, aa_residue_no, interaction.Uniprot_Residue_Number);
     ProcessRow(atomic_interactions_row, atomic_interactions, interaction.Number_of_Atomic_Interactions);
     ProcessRow(aa_residue_type_row, aa_residue_type, interaction.AA_Residue_Type);
     ProcessRow(avg_atom_distance_row, avg_atom_distance, interaction.Average_Distance_Between_Atoms);
     ProcessRow(interaction_distance_ratio_row, interaction_distance_ratio, interaction.Interaction_Distance_Ratio);
 }
Exemple #3
0
        /// <summary>
        /// Author: Ryan Liang
        /// </summary>
        public static PDB_Interaction GetPDB_Interaction(string uniProt_ID, string drug_PDB_ID, string amino_acid_specification)
        {
            PDB_Interaction PDB_interaction = new PDB_Interaction();

            using (DrugProNETEntities context = new DrugProNETEntities())
            {
                PDB_interaction = context.PDB_Interaction.Where(i =>
                                                                i.UniProt_ID.ToLower().Contains(uniProt_ID.ToLower()) &&
                                                                i.Drug_PDB_ID.ToLower().Contains(drug_PDB_ID.ToLower()) &&
                                                                (i.AA_Residue_Type + "-" + i.UniProt_Residue_Number).ToLower().Contains(amino_acid_specification.ToLower())
                                                                ).FirstOrDefault();
            }

            return(PDB_interaction);
        }
        /// <summary>
        /// Author: Garth Nelson
        /// </summary>
        protected new void Page_Load(object sender, EventArgs e)
        {
            base.Page_Load(sender, e);

            SNV_ID_Key = Request.QueryString["query_string"];

            try
            {
                string stringAfterPDot   = SNV_ID_Key.Substring(SNV_ID_Key.IndexOf("p.") + 2);
                string specifiedAAType   = new string(stringAfterPDot.TakeWhile(c => char.IsLetter(c)).ToArray());
                string specifiedAANumber = new string(stringAfterPDot.Substring(specifiedAAType.Length).TakeWhile(c => char.IsNumber(c)).ToArray());
                string specifiedAA       = specifiedAAType + "-" + specifiedAANumber;

                mutations       = EF_Data.GetMutationsBySNVIDKey(SNV_ID_Key);
                proteinMutation = EF_Data.GetMutationBySNVIDKey(SNV_ID_Key);
                protein         = EF_Data.GetProteinByUniprotID(proteinMutation.UniProt_ID);

                foreach (SNV_Mutation mutation in mutations)
                {
                    Drug_Information drug = EF_Data.GetDrugByDrugPDBID(mutation.Drug_PDB_ID);

                    drugs.Add(drug);

                    PDB_Interaction interaction = EF_Data.GetPDB_Interaction(mutation.UniProt_ID, mutation.Drug_PDB_ID, specifiedAA);

                    interactions.Add(interaction);
                }

                Session["drugs"]        = drugs;
                Session["interactions"] = interactions;
                Session["mutations"]    = mutations;
                Session["SNV_ID_Key"]   = SNV_ID_Key;

                LoadSNVID(SNV_ID_Key);
                LoadTargetGeneID(protein, mutations[0]);

                CreateIDofPDILinkedSNVTable(drugs, interactions, mutations);
            }
            catch (Exception)
            {
                Page.Master.FindControl("BodyContentPlaceHolder").Visible = false;
                ExceptionUtilities.DisplayAlert(this, QUERY_PAGE);
            }
        }
Exemple #5
0
        /// <summary>
        /// Author: Ryan Liang
        /// </summary>
        public static Dictionary <PDB_Distance, string> GetUniprotResidueNumberByDistance(List <PDB_Distance> distances)
        {
            Dictionary <PDB_Distance, string> DistanceAndUniprotResidueNumbers = new Dictionary <PDB_Distance, string>();

            using (DrugProNETEntities context = new DrugProNETEntities())
            {
                foreach (PDB_Distance distance in distances)
                {
                    PDB_Interaction interaction = context.PDB_Interaction.Where(i =>
                                                                                i.PDB_Entry.ToLower().Equals(distance.PDB_Entry) &&
                                                                                i.AA_Residue_Type.Equals(distance.Protein_Residue) &&
                                                                                distance.Protein_Residue_.Equals(i.PDB_Residue_Number)
                                                                                ).FirstOrDefault();

                    DistanceAndUniprotResidueNumbers.Add(distance, interaction.Uniprot_Residue_Number);
                }
            }

            return(DistanceAndUniprotResidueNumbers);
        }
Exemple #6
0
        /// <summary>
        /// Author: Garth Nelson
        /// </summary>
        protected new void Page_Load(object sender, EventArgs e)
        {
            base.Page_Load(sender, e);

            try
            {
                string protein_specification = Request.QueryString["query_string"];
                string drug_specification    = Request.QueryString["drug_specification"];
                string SNV_Key = Request.QueryString["snv_id_key"];

                Session["SNV_Key"] = SNV_Key;

                Protein_Information protein = EF_Data.GetProtein(protein_specification);
                Drug_Information    drug    = EF_Data.GetDrugUsingDropDownName(drug_specification);
                PDB_Information     PDB     = EF_Data.GetPDBInfo(protein, drug);

                string[] SNV_KEYsplit = SNV_Key.Split('-');

                // Retrieve second and third elements
                string amino_acid_specification = SNV_KEYsplit[1] + "-" + SNV_KEYsplit[2];

                PDB_Interaction interaction = EF_Data.GetPDB_Interaction(protein.Uniprot_ID, drug.Drug_PDB_ID, amino_acid_specification);
                mutation = EF_Data.GetMutationBySNVKey(SNV_Key);

                Session["mutation"] = mutation;

                LoadProtein(protein, interaction, mutation);
                LoadDrug(drug, mutation);
                LoadPDB_Info(PDB);

                CreateSNVIdentificationTable(mutation);
            }
            catch (Exception)
            {
                Page.Master.FindControl("BodyContentPlaceHolder").Visible = false;
                ExceptionUtilities.DisplayAlert(this, QUERY_PAGE);
            }
        }