def get_drug_disease_mapping_from_cui(name_to_cui_and_confidences, name_to_drug, synonym_to_drug, concept_id_to_mesh_id, mesh_id_to_name, dump_file): """ name_to_cui_and_confidences mapping from MEDI name_to_drug & synonym mapping from DrugBank concept & mesh_id mapping from UMLS (MSH | MH) """ if dump_file is not None and os.path.exists(dump_file): drug_to_diseases = cPickle.load(open(dump_file)) return drug_to_diseases drug_to_diseases = {} # (mesh_term, mesh_id, association score) for name, values in name_to_cui_and_confidences.iteritems(): # Get drugbank id from name in the label drugbank_id, drugbank_name = parse_drugbank.get_drugbank_id_from_name( name, name_to_drug, synonym_to_drug) if drugbank_id is None: continue print "%s\t%s\t%s" % (drugbank_name, drugbank_id, name) for cui, val in values: #print cui, val, cui in concept_id_to_mesh_id if cui in concept_id_to_mesh_id: dui = concept_id_to_mesh_id[cui] phenotype = mesh_id_to_name[dui] drug_to_diseases.setdefault(drugbank_id, set()).add( (phenotype, dui, val)) if dump_file is not None: cPickle.dump(drug_to_diseases, open(dump_file, 'w')) return drug_to_diseases
def get_drug_disease_mapping(spl_id_to_cuis, spl_id_to_names, name_to_drug, synonym_to_drug, concept_id_to_mesh_id, mesh_id_to_name, dump_file): """ spl_id_to_cuis mapping from LabeledIn spl_id_to_names mapping from DailyMed rxnorm name_to_drug & synonym mapping from DrugBank concept & mesh_id mapping from UMLS (MSH | MH) """ if os.path.exists(dump_file): drug_to_diseases = cPickle.load(open(dump_file)) return drug_to_diseases drug_to_diseases = {} # (mesh_id, mesh_term, association score) val = 1 for spl_id, cuis in spl_id_to_cuis.iteritems(): if spl_id not in spl_id_to_names: continue for name in spl_id_to_names[spl_id]: # Get drugbank id from name in the label if name.find(" / ") != -1: # Skip drug combinations continue drugbank_id, drugbank_name = parse_drugbank.get_drugbank_id_from_name(drug, name_to_drug, synonym_to_drug, regex_db_name = True) if drugbank_id is not None: break if drugbank_id is None: continue print "%s\t%s\t%s\t%s" % (spl_id, drugbank_id, drugbank_name, name) for cui in cuis: if cui in concept_id_to_mesh_id: dui = concept_id_to_mesh_id[cui] phenotype = mesh_id_to_name[dui] drug_to_diseases.setdefault(drugbank_id, set()).add((phenotype, dui, val)) cPickle.dump(drug_to_diseases, open(dump_file, 'w')) return drug_to_diseases
def get_drug_disease_mapping_from_cui(name_to_cui_and_confidences, name_to_drug, synonym_to_drug, concept_id_to_mesh_id, mesh_id_to_name, dump_file): """ name_to_cui_and_confidences mapping from MEDI name_to_drug & synonym mapping from DrugBank concept & mesh_id mapping from UMLS (MSH | MH) """ if dump_file is not None and os.path.exists(dump_file): drug_to_diseases = cPickle.load(open(dump_file)) return drug_to_diseases drug_to_diseases = {} # (mesh_term, mesh_id, association score) for name, values in name_to_cui_and_confidences.iteritems(): # Get drugbank id from name in the label drugbank_id, drugbank_name = parse_drugbank.get_drugbank_id_from_name(name, name_to_drug, synonym_to_drug) if drugbank_id is None: continue print "%s\t%s\t%s" % (drugbank_name, drugbank_id, name) for cui, val in values: #print cui, val, cui in concept_id_to_mesh_id if cui in concept_id_to_mesh_id: dui = concept_id_to_mesh_id[cui] phenotype = mesh_id_to_name[dui] drug_to_diseases.setdefault(drugbank_id, set()).add((phenotype, dui, val)) if dump_file is not None: cPickle.dump(drug_to_diseases, open(dump_file, 'w')) return drug_to_diseases
def get_drug_disease_mapping(name_to_icd_and_confidences, name_to_drug, synonym_to_drug, icd_to_mesh_ids, mesh_id_to_name, dump_file): """ name_to_icd_and_confidences mapping from MEDI name_to_drug & synonym mapping from DrugBank icd_to_mesh_ids mapping from DO mesh_id_to_name mapping from UMLS (MSH | MH) """ if dump_file is not None and os.path.exists(dump_file): drug_to_diseases = cPickle.load(open(dump_file)) return drug_to_diseases drug_to_diseases = {} # (mesh_term, mesh_id, association score) for name, values in name_to_icd_and_confidences.iteritems(): #if name != "Acarbose": # continue # Get drugbank id from name in the label drugbank_id, drugbank_name = parse_drugbank.get_drugbank_id_from_name( name, name_to_drug, synonym_to_drug) if drugbank_id is None: continue #if drugbank_id != "DB00284": # continue #print "%s\t%s\t%s" % (drugbank_name, drugbank_id, name) for icd, val in values: icd = icd.split(".")[0] #print icd, val, icd in icd_to_mesh_ids if icd in icd_to_mesh_ids: dui_list = icd_to_mesh_ids[icd] #print dui_list for dui in dui_list: if dui not in mesh_id_to_name: continue phenotype = mesh_id_to_name[dui].lower() #print dui, phenotype drug_to_diseases.setdefault(drugbank_id, set()).add( (phenotype, dui, val)) #else: # ICD9 ids are problematic - consider name matching if dump_file is not None: cPickle.dump(drug_to_diseases, open(dump_file, 'w')) return drug_to_diseases
def get_drug_disease_mapping(name_to_icd_and_confidences, name_to_drug, synonym_to_drug, icd_to_mesh_ids, mesh_id_to_name, dump_file): """ name_to_icd_and_confidences mapping from MEDI name_to_drug & synonym mapping from DrugBank icd_to_mesh_ids mapping from DO mesh_id_to_name mapping from UMLS (MSH | MH) """ if dump_file is not None and os.path.exists(dump_file): drug_to_diseases = cPickle.load(open(dump_file)) return drug_to_diseases drug_to_diseases = {} # (mesh_term, mesh_id, association score) for name, values in name_to_icd_and_confidences.iteritems(): #if name != "Acarbose": # continue # Get drugbank id from name in the label drugbank_id, drugbank_name = parse_drugbank.get_drugbank_id_from_name(name, name_to_drug, synonym_to_drug) if drugbank_id is None: continue #if drugbank_id != "DB00284": # continue #print "%s\t%s\t%s" % (drugbank_name, drugbank_id, name) for icd, val in values: icd = icd.split(".")[0] #print icd, val, icd in icd_to_mesh_ids if icd in icd_to_mesh_ids: dui_list = icd_to_mesh_ids[icd] #print dui_list for dui in dui_list: if dui not in mesh_id_to_name: continue phenotype = mesh_id_to_name[dui].lower() #print dui, phenotype drug_to_diseases.setdefault(drugbank_id, set()).add((phenotype, dui, val)) #else: # ICD9 ids are problematic - consider name matching if dump_file is not None: cPickle.dump(drug_to_diseases, open(dump_file, 'w')) return drug_to_diseases
def get_drug_disease_mapping(spl_id_to_cuis, spl_id_to_names, name_to_drug, synonym_to_drug, concept_id_to_mesh_id, mesh_id_to_name, dump_file): """ spl_id_to_cuis mapping from LabeledIn spl_id_to_names mapping from DailyMed rxnorm name_to_drug & synonym mapping from DrugBank concept & mesh_id mapping from UMLS (MSH | MH) """ if os.path.exists(dump_file): drug_to_diseases = cPickle.load(open(dump_file)) return drug_to_diseases drug_to_diseases = {} # (mesh_id, mesh_term, association score) val = 1 for spl_id, cuis in spl_id_to_cuis.iteritems(): if spl_id not in spl_id_to_names: continue for name in spl_id_to_names[spl_id]: # Get drugbank id from name in the label if name.find(" / ") != -1: # Skip drug combinations continue drugbank_id, drugbank_name = parse_drugbank.get_drugbank_id_from_name( drug, name_to_drug, synonym_to_drug, regex_db_name=True) if drugbank_id is not None: break if drugbank_id is None: continue print "%s\t%s\t%s\t%s" % (spl_id, drugbank_id, drugbank_name, name) for cui in cuis: if cui in concept_id_to_mesh_id: dui = concept_id_to_mesh_id[cui] phenotype = mesh_id_to_name[dui] drug_to_diseases.setdefault(drugbank_id, set()).add( (phenotype, dui, val)) cPickle.dump(drug_to_diseases, open(dump_file, 'w')) return drug_to_diseases