/// <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); }
/// <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); }
/// <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); } }
/// <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); }
/// <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); } }