def test_batch_drug_wildcard_query(self): for trapi_version, queries in self.drug_batch_queries.items(): query = Query.load(trapi_version, None, query=queries[0]) interface = TrapiInterface(query=query) interface.build_chp_queries() interface.run_chp_queries() response = interface.construct_trapi_response()
def test_simple_batch_query(self): # These are simple queries logger.info('Running batch simple query test.') for trapi_version, queries in self.batch_queries.items(): query = Query.load(trapi_version, None, query=queries[0]) interface = TrapiInterface(query=query) interface.build_chp_queries() interface.run_chp_queries() response = interface.construct_trapi_response()
def test_simple_single_query(self): # This is a simple query logger.info('Running single simple query test.') for trapi_version, queries in self.queries.items(): query = Query.load(trapi_version, None, query=queries[1]) interface = TrapiInterface(query=query) interface.build_chp_queries() interface.run_chp_queries() response = interface.construct_trapi_response()
def test_wildcard_batch_onehop_query(self): for trapi_version, queries in self.wildcard_batch_queries.items(): for name, query_dict in queries.items(): #if name != 'gene_to_disease_proxy_context': # continue query = Query.load(trapi_version, None, query=query_dict) interface = TrapiInterface(query=query) interface.build_chp_queries() interface.run_chp_queries() response = interface.construct_trapi_response()
def test_inverse_wildcard_query(self): for trapi_version, queries in self.gene_queries.items(): query = Query.load(trapi_version, None, query=queries[0]) for edge_id, edge in query.message.query_graph.edges.items(): predicate = edge.predicates[0] inverse = edge.predicates[0].get_inverse() edge.set_predicates(inverse) interface = TrapiInterface(query=query) interface.build_chp_queries() interface.run_chp_queries() response = interface.construct_trapi_response()
def test_inverse_query(self): # This is a simple query logger.info('Running default inverse query test.') for trapi_version, queries in self.queries.items(): query = Query.load(trapi_version, None, query=queries[1]) for edge_id, edge in query.message.query_graph.edges.items(): predicate = edge.predicates[0] inverse = edge.predicates[0].get_inverse() edge.set_predicates(inverse) interface = TrapiInterface(query=query) interface.build_chp_queries() interface.run_chp_queries() response = interface.construct_trapi_response()
def process_request(self, request, trapi_version): """ Helper function that extracts the query from the message. """ logger.info('Starting query.') query = Query.load(self.trapi_version, biolink_version=None, query=request.data) # Setup query in Base Processor self.setup_query(query) logger.info('Query loaded') return query
def test_inverse_onehop_query(self): for trapi_version, queries in self.standard_single_queries.items(): for name, query_dict in queries.items(): #if name != 'gene_to_disease_proxy_context': # continue query = Query.load(trapi_version, None, query=query_dict) for edge_id, edge in query.message.query_graph.edges.items(): predicate = edge.predicates[0] inverse = edge.predicates[0].get_inverse() if inverse is not None: edge.set_predicates(inverse) interface = TrapiInterface(query=query) interface.build_chp_queries() interface.run_chp_queries() response = interface.construct_trapi_response()
def test_ars_notnone_queries(self): from trapi_model.query import Query from trapi_model.exceptions import UnknownBiolinkEntity ars_predicates_dir = os.path.join(self.ncats_test_dir, 'ars-requests/not-none') # Run tests for filename in os.listdir(ars_predicates_dir): try: if os.path.splitext(filename)[-1] == '.json': filepath = os.path.join(ars_predicates_dir, filename) query = Query.load('1.0', None, query_filepath=filepath) query_dict = query.to_dict() if query.is_batch_query(): batch = query.expand_batch_query() except UnknownBiolinkEntity as ex: logger.critical('Failed on file {} with {}'.format( filename, ex.message))
def get_responses(self, queries=None, trapi_queries=None): # Initialize interface interface = TrapiInterface( bkb_handler=self.bkb_handler, dynamic_reasoner=self.dynamic_reasoner, joint_reasoner=self.joint_reasoner, ) # Load queries if trapi_queries is None: trapi_queries = [ Query.load(query["trapi_version"], None, query=query) for query in queries ] # Process trapi query interface.setup_trapi_queries(trapi_queries) # Build CHP queries interface.build_chp_queries() # Run CHP queries interface.run_chp_queries() # Get Responses responses = interface.construct_trapi_responses() return responses
def test_inverse_query(self): standard_queries = copy.deepcopy(self.standard_queries) descriptions = [ query.pop("test_description", None) for query in self.standard_queries ] # Make inverse queries trapi_queries = [ Query.load(query["trapi_version"], None, query=query) for query in standard_queries ] for query in trapi_queries: for edge_id, edge in query.message.query_graph.edges.items(): predicate = edge.predicates[0] inverse = edge.predicates[0].get_inverse() if inverse is not None: edge.set_predicates(inverse) # Switch subject and object edge_subject = copy.deepcopy(edge.subject) edge_object = copy.deepcopy(edge.object) edge.subject = edge_object edge.object = edge_subject responses = self.get_responses(trapi_queries=trapi_queries)