def create_phenotype_terms(): print('Creating phenotype terms') handle = os.path.join(FIXTURE_DIR, 'hpo.json') with open(handle, 'r', encoding='utf-8') as f: hpo_json = f.read() g = obograph_util.convert_json_object(json.loads(hpo_json)) ont = Ontology(handle=handle, payload=g) phenotype_terms = [] for class_node in get_classes(ont): phenotype_terms.append( PhenotypeTerm(term_id=class_node[0], label=class_node[1])) PhenotypeTerm.objects.bulk_create(phenotype_terms)
def create_study_terms(): print('Creating study terms') handle = os.path.join(FIXTURE_DIR, 'edda.json') with open(handle, 'r', encoding='utf-8') as f: edda_json = f.read() g = obograph_util.convert_json_object(json.loads(edda_json)) ont = Ontology(handle=handle, payload=g) study_terms = [] for class_node in get_classes(ont): study_terms.append( StudyTerm(term_id=class_node[0], label=class_node[1])) StudyTerm.objects.bulk_create(study_terms)
def create_disease_terms(): print('Removing existing disease terms') with connection.cursor() as cursor: cursor.execute("truncate core_diseaseterm cascade") print('Creating hdo disease terms') handle = os.path.join(FIXTURE_DIR, 'hdo.json') with open(handle, 'r', encoding='utf-8') as f: hdo_json = f.read() g = obograph_util.convert_json_object(json.loads(hdo_json)) ont = Ontology(handle=handle, payload=g) disease_terms = [] for class_node in get_classes(ont): disease_terms.append(DiseaseTerm(term_id=class_node[0], label=class_node[1])) DiseaseTerm.objects.bulk_create(disease_terms)
def get(self, id): """ Returns evidence graph as a png TODO - requires matplotlib which is hard to install """ args = parser.parse_args() assoc = get_association(id, user_agent=USER_AGENT) eg = {'graphs': [assoc.get('evidence_graph')]} digraph = convert_json_object(eg) #fp = tempfile.TemporaryFile() nx.draw(digraph) fn = '/tmp/' + id + '.png' # TODO plt.savefig(fn) return send_file(fn)
def test_obograph_to_assoc_results(self): # Hits the mock solr manager in setup_class results = self.golr_query.exec() assoc = results['associations'][0] if len( results['associations']) > 0 else {} eg = {'graphs': [assoc.get('evidence_graph')]} digraph = convert_json_object(eg, reverse_edges=False)['graph'] association_results = obograph_to_assoc_results(digraph) results = json.dumps( association_results, default=lambda obj: getattr(obj, '__dict__', str(obj))) expected_fh = os.path.join(os.path.dirname(__file__), 'resources/expected/test-evidence.json') expected_results = json.dumps(json.load(open(expected_fh))) assert results == expected_results
def create_gene_terms(): print('Creating gene terms') handle = os.path.join(FIXTURE_DIR, 'hgnc.json') with open(handle, 'r', encoding='utf-8') as f: hgnc_json = f.read() g = obograph_util.convert_json_object(json.loads(hgnc_json)) ont = Ontology(handle=handle, payload=g) gene_terms = [] for n_id in ont.nodes(): n_dict = ont.node(n_id) if 'type' in n_dict: if ont.node_type(n_id) == 'CLASS': for t in n_dict['meta']['basicPropertyValues']: if t['pred'] == 'http://ncicb.nci.nih.gov/xml/owl/EVS/Hugo.owl#Approved_Symbol': symbol = t['val'] if not symbol.endswith('~withdrawn'): # print('{} {}'.format(n_id, symbol)) gene_terms.append( GeneTerm(term_id=n_id, label=symbol)) break GeneTerm.objects.bulk_create(gene_terms)
def create_ontology_from_obograph(og): ont = None g = obograph_util.convert_json_object(og) ont = Ontology(handle=None, payload=g) return ont