def process_ontology(self, obo_file): obo_dag = GODag(obo_file) obo_dag.populate_terms() diseases = self.diseases ontology_map = {} self.category_map = defaultdict(list) for item_id, item in obo_dag.items(): # Considers those diseases whose names are subsets of the disease ontology names correlated_diseases = [ disease for disease in diseases if disease in item.name ] if len(correlated_diseases) > 0: d = {} for parent in (obo_dag.paths_to_top(item.id)[0]): d[parent.level] = parent.name for corr_disease in correlated_diseases: self.category_map[parent.name] += [corr_disease] for corr_disease in correlated_diseases: # Chooses the most specific disease mapping if corr_disease in ontology_map: if len(ontology_map[corr_disease]) > len(d): continue ontology_map[corr_disease] = d self.dag = obo_dag self.disease_class_map = ontology_map
def test_paths_to_top(): dag = GODag(ROOT + "mini_obo.obo") expected_paths = [['GO:0000001', 'GO:0000002', 'GO:0000005', 'GO:0000010'], ['GO:0000001', 'GO:0000003', 'GO:0000005', 'GO:0000010'], ['GO:0000001', 'GO:0000003', 'GO:0000006', 'GO:0000008', 'GO:0000010']] actual_paths = dag.paths_to_top("GO:0000010") chk_results(actual_paths, expected_paths) print_paths(actual_paths)
def test_paths_to_top(): #dag = GODag("./tests/data/mini_obo.obo") dag = GODag("./data/mini_obo.obo") expected_paths = [ ['GO:0000001', 'GO:0000002', 'GO:0000005', 'GO:0000010'], ['GO:0000001', 'GO:0000003', 'GO:0000005', 'GO:0000010'], ['GO:0000001', 'GO:0000003', 'GO:0000006', 'GO:0000008', 'GO:0000010'] ] actual_paths = dag.paths_to_top("GO:0000010") chk_results(actual_paths, expected_paths) prt_paths(actual_paths)
def test_paths_to_top(): #dag = GODag("./tests/data/mini_obo.obo") dag = GODag("./data/mini_obo.obo") expected_paths = [['GO:0000001', 'GO:0000002', 'GO:0000005', 'GO:0000010'], ['GO:0000001', 'GO:0000003', 'GO:0000005', 'GO:0000010'], [ 'GO:0000001', 'GO:0000003', 'GO:0000006', 'GO:0000008', 'GO:0000010' ]] actual_paths = dag.paths_to_top("GO:0000010") chk_results(actual_paths, expected_paths) prt_paths(actual_paths)