Example #1
0
 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()
Example #2
0
 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()
Example #3
0
 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()
Example #4
0
 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()
Example #5
0
 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()
Example #6
0
 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
Example #8
0
 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()
Example #9
0
 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)