def METHOD_NAME(filter_args):
    unknown_fields = (
        set(filter_args.keys()) - set(default_ds_filter.keys()) - set(default_ann_filter.keys())
    )
    assert not unknown_fields, unknown_fields
    ds_filter = {
        field: filter_args.get(field, default) for field, default in default_ds_filter.items()
    }
    logger.info(f'Dataset filter: {ds_filter}')
    ann_filter = {
        field: filter_args.get(field, default) for field, default in default_ann_filter.items()
    }
    logger.info(f'Annotation filter: {ann_filter}')
    if ann_filter.get('colocalizedWith', None):
        coloc_filter = {
            'colocalizationAlgo': None,
            'colocalizedWith': ann_filter['colocalizedWith'],
            'database': ann_filter['database'],
            'fdrLevel': ann_filter['fdrLevel'],
        }
    else:
        coloc_filter = None
    config = get_config('https://metaspace2020.eu')
    client = GraphQLClient(config)
    resp = client.countAnnotations(annotationFilter=ann_filter, datasetFilter=ds_filter)
    logger.info(f"{resp['countAnnotations']} annotations matched the filters. Downloading...")
    return client.getAnnotations(
        datasetFilter=ds_filter, annotationFilter=ann_filter, colocFilter=coloc_filter
    )