diff --git a/beacon/__main__.py b/beacon/__main__.py index 26c1082..3a1fea0 100644 --- a/beacon/__main__.py +++ b/beacon/__main__.py @@ -103,9 +103,9 @@ def main(path=None): # TODO: add the CA chain # Load ontologies - LOG.info("Loading ontologies... (this might take a while)") - ontologies.load_obo() - LOG.info("Finished loading the ontologies...") + #LOG.info("Loading ontologies... (this might take a while)") + #ontologies.load_obo() + #LOG.info("Finished loading the ontologies...") # Run beacon if path: diff --git a/beacon/db/filters.py b/beacon/db/filters.py index 5243131..4424e47 100644 --- a/beacon/db/filters.py +++ b/beacon/db/filters.py @@ -147,7 +147,11 @@ def apply_alphanumeric_filter(query: dict, filter: AlphanumericFilter, collectio LOG.debug(filter.value) formatted_value = format_value(filter.value) formatted_operator = format_operator(filter.operator) - if isinstance(formatted_value,str): + if collection == 'g_variants': + formatted_value = format_value(filter.value) + formatted_operator = format_operator(filter.operator) + query[filter.id] = { formatted_operator: formatted_value } + elif isinstance(formatted_value,str): if formatted_operator == "$eq": if '%' in filter.value: if collection == 'individuals': diff --git a/beacon/db/g_variants.py b/beacon/db/g_variants.py index 1393f2d..f259207 100644 --- a/beacon/db/g_variants.py +++ b/beacon/db/g_variants.py @@ -72,6 +72,7 @@ def generate_position_filter_end(key: str, value: List[int]) -> List[Alphanumeri def apply_request_parameters(query: Dict[str, List[dict]], qparams: RequestParams): + collection = 'g_variants' LOG.debug("Request parameters len = {}".format(len(qparams.query.request_parameters))) if len(qparams.query.request_parameters) > 0 and "$and" not in query: query["$and"] = [] @@ -81,20 +82,20 @@ def apply_request_parameters(query: Dict[str, List[dict]], qparams: RequestParam v = v.split(',') filters = generate_position_filter_start(k, v) for filter in filters: - query["$and"].append(apply_alphanumeric_filter({}, filter)) + query["$and"].append(apply_alphanumeric_filter({}, filter, collection)) elif k == "end": if isinstance(v, str): v = v.split(',') filters = generate_position_filter_end(k, v) for filter in filters: - query["$and"].append(apply_alphanumeric_filter({}, filter)) + query["$and"].append(apply_alphanumeric_filter({}, filter, collection)) elif k == "variantMinLength" or k == "variantMaxLength" or k == "mateName": continue else: query["$and"].append(apply_alphanumeric_filter({}, AlphanumericFilter( id=VARIANTS_PROPERTY_MAP[k], value=v - ))) + ), collection)) return query