https://github.com/emreg00/toolbox
Tip revision: b662ce66f5e0825eadca02aeed8844a39de43b16 authored by Emre Guney on 02 April 2022, 19:37:14 UTC
generator pickling fix for newer versions of networkx
generator pickling fix for newer versions of networkx
Tip revision: b662ce6
parse_medic.py
import OBO
def main():
medic_file = "../../data/ontology/CTD_diseases.obo"
name_to_id, id_to_mesh_ids = get_medic_mesh_id_mapping(medic_file)
return
def get_medic_mesh_id_mapping(medic_file):
medic = OBO.OBO(medic_file, save_synonyms = True)
name_to_id = {}
id_to_mesh_ids = {}
for node, data in medic.g.nodes(data=True):
name = data['n']
name_to_id[name] = node
if 's' in data:
for name in data['s']:
name_to_id[name] = node
if node.startswith("MESH:D"):
id_to_mesh_ids[node] = [ node[5:] ]
else:
for node2, type2 in medic.get_term_relations(node):
if type2 == "is_a":
if node2.startswith("MESH:D"):
id_to_mesh_ids.setdefault(node, []).append(node2[5:])
return name_to_id, id_to_mesh_ids
if __name__ == "__main__":
main()