def get_ontology(self, data_type: DataType, provider=None): """Get Ontology""" ontology = Ontology() terms_pairs = [] if data_type == DataType.GO: terms_pairs = Neo4jHelper.run_single_parameter_query( self.get_ontology_pairs_query.format("GO", "GO"), None) elif data_type == DataType.DO: terms_pairs = Neo4jHelper.run_single_parameter_query( self.get_ontology_pairs_query.format("DO", "DO"), None) elif data_type == DataType.EXPR: if provider in EXPRESSION_PRVD_SUBTYPE_MAP: terms_pairs = Neo4jHelper.run_single_parameter_query( self.get_ontology_pairs_query.format(EXPRESSION_PRVD_SUBTYPE_MAP[provider], EXPRESSION_PRVD_SUBTYPE_MAP[provider]), None) for terms_pair in terms_pairs: self.add_neo_term_to_ontobio_ontology_if_not_exists( terms_pair["term1.primaryKey"], terms_pair["term1.name"], terms_pair["term1.type"], terms_pair["term1.isObsolete"], ontology) self.add_neo_term_to_ontobio_ontology_if_not_exists( terms_pair["term2.primaryKey"], terms_pair["term2.name"], terms_pair["term2.type"], terms_pair["term2.isObsolete"], ontology) ontology.add_parent(terms_pair["term1.primaryKey"], terms_pair["term2.primaryKey"], relation="subClassOf" if terms_pair["rel_type"] == "IS_A" else "BFO:0000050") if data_type == DataType.EXPR and provider == "MGI": self.add_neo_term_to_ontobio_ontology_if_not_exists("EMAPA_ARTIFICIAL_NODE:99999", "embryo", "anatomical_structure", False, ontology) ontology.add_parent("EMAPA_ARTIFICIAL_NODE:99999", "EMAPA:0", relation="subClassOf") self.add_neo_term_to_ontobio_ontology_if_not_exists("EMAPA_ARTIFICIAL_NODE:99998", "head", "anatomical_structure", False, ontology) ontology.add_parent("EMAPA_ARTIFICIAL_NODE:99998", "EMAPA:0", relation="subClassOf") GeneDescriptionsETL.add_neo_term_to_ontobio_ontology_if_not_exists( "EMAPA_ARTIFICIAL_NODE:99997", "gland", "anatomical_structure", False, ontology) ontology.add_parent("EMAPA_ARTIFICIAL_NODE:99997", "EMAPA:0", relation="subClassOf") elif data_type == DataType.EXPR and provider == "FB": GeneDescriptionsETL.add_neo_term_to_ontobio_ontology_if_not_exists( "FBbt_ARTIFICIAL_NODE:99999", "organism", "", False, ontology) ontology.add_parent("FBbt_ARTIFICIAL_NODE:99999", "FBbt:10000000", relation="subClassOf") return ontology
def test_awe_1_to_many_hier(): """ Text axiom weight estimation """ ont = Ontology() assert ont.nodes() == [] lexmap = LexicalMapEngine() ont.add_node('X:1', 'foo 1') ont.add_node('Z:1a', 'foo 1') ont.add_node('Z:1b', 'foo 1') ont.add_parent('Z:1b', 'Z:1a') lexmap.index_ontology(ont) xg = lexmap.get_xref_graph() df = lexmap.as_dataframe(xg) print(df.to_csv(sep="\t")) P_a = lexmap.weighted_axioms('X:1', 'Z:1a', xg) P_b = lexmap.weighted_axioms('X:1', 'Z:1b', xg) logging.info('P_a={} P_b={}'.format(P_a, P_b)) assert P_a[0] > P_a[1] assert P_b[0] < P_b[1] assert P_a[0] > P_b[0]