Skip to content

Commit d9ff62a

Browse files
committed
dataset variable in request parameters
1 parent 4c6468f commit d9ff62a

File tree

8 files changed

+39
-39
lines changed

8 files changed

+39
-39
lines changed

beacon/conf/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
beacon_id = 'org.ega-archive.beacon-ri-demo' # ID of the Beacon
1616
beacon_name = 'Beacon Reference Implementation demo' # Name of the Beacon service
1717
api_version = 'v2.0.0' # Version of the Beacon implementation
18-
uri = 'https://beacon-ri-demo.ega-archive.org/api/'
18+
uri = 'http://beaconprod:5050/api/'
1919
environment = 'test'
2020
description = r"This Beacon is based on synthetic data hosted at the <a href='https://ega-archive.org/datasets/EGAD00001003338'>EGA</a>. The dataset contains 2504 samples including genetic data based on 1K Genomes data, and 76 individual attributes and phenotypic data derived from UKBiobank."
2121
version = api_version_yaml['api_version']

beacon/connections/mongo/analyses.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ def get_analyses(self, entry_id: Optional[str], qparams: RequestParams, dataset:
1515
collection = 'analyses'
1616
mongo_collection = client.beacon.analyses
1717
parameters_as_filters=False
18-
query_parameters, parameters_as_filters = apply_request_parameters(self, {}, qparams)
18+
query_parameters, parameters_as_filters = apply_request_parameters(self, {}, qparams, dataset)
1919
if parameters_as_filters == True and query_parameters != {'$and': []}:# pragma: no cover
20-
query, parameters_as_filters = apply_request_parameters(self, {}, qparams)
20+
query, parameters_as_filters = apply_request_parameters(self, {}, qparams, dataset)
2121
query_parameters={}
2222
elif query_parameters != {'$and': []}:
2323
query=query_parameters

beacon/connections/mongo/biosamples.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ def get_biosamples(self, entry_id: Optional[str], qparams: RequestParams, datase
1414
collection = 'biosamples'
1515
mongo_collection = client.beacon.biosamples
1616
parameters_as_filters=False
17-
query_parameters, parameters_as_filters = apply_request_parameters(self, {}, qparams)
17+
query_parameters, parameters_as_filters = apply_request_parameters(self, {}, qparams, dataset)
1818
if parameters_as_filters == True and query_parameters != {'$and': []}:# pragma: no cover
19-
query, parameters_as_filters = apply_request_parameters(self, {}, qparams)
19+
query, parameters_as_filters = apply_request_parameters(self, {}, qparams, dataset)
2020
query_parameters={}
2121
elif query_parameters != {'$and': []}:
2222
query=query_parameters

beacon/connections/mongo/datasets.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ def get_list_of_datasets(self):
5656
@log_with_args_mongo(level)
5757
def get_dataset_with_id(self, entry_id: Optional[str], qparams: RequestParams):
5858
limit = qparams.query.pagination.limit
59-
query_parameters, parameters_as_filters = apply_request_parameters(self, {}, qparams)
59+
query_parameters, parameters_as_filters = apply_request_parameters(self, {}, qparams, dataset)
6060
if parameters_as_filters == True:
61-
query, parameters_as_filters = apply_request_parameters(self, {}, qparams)# pragma: no cover
61+
query, parameters_as_filters = apply_request_parameters(self, {}, qparams, dataset)# pragma: no cover
6262
else:
6363
query={}
6464
query = query_id(self, query, entry_id)

beacon/connections/mongo/g_variants.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ def get_variants(self, entry_id: Optional[str], qparams: RequestParams, dataset:
1414
collection = 'g_variants'
1515
mongo_collection = client.beacon.genomicVariations
1616
parameters_as_filters=False
17-
query_parameters, parameters_as_filters = apply_request_parameters(self, {}, qparams)
17+
query_parameters, parameters_as_filters = apply_request_parameters(self, {}, qparams, dataset)
1818
if parameters_as_filters == True and query_parameters != {'$and': []}:
19-
query, parameters_as_filters = apply_request_parameters(self, {}, qparams)# pragma: no cover
19+
query, parameters_as_filters = apply_request_parameters(self, {}, qparams, dataset)# pragma: no cover
2020
query_parameters={}# pragma: no cover
2121
elif query_parameters != {'$and': []}:
2222
query=query_parameters
@@ -41,9 +41,9 @@ def get_variant_with_id(self, entry_id: Optional[str], qparams: RequestParams, d
4141
collection = 'g_variants'
4242
mongo_collection = client.beacon.genomicVariations
4343
query = {"$and": [{"variantInternalId": entry_id}]}
44-
query_parameters, parameters_as_filters = apply_request_parameters(self, query, qparams)
44+
query_parameters, parameters_as_filters = apply_request_parameters(self, query, qparams, dataset)
4545
if parameters_as_filters == True:
46-
query, parameters_as_filters = apply_request_parameters(self, {}, qparams)# pragma: no cover
46+
query, parameters_as_filters = apply_request_parameters(self, {}, qparams, dataset)# pragma: no cover
4747
query_parameters={}# pragma: no cover
4848
else:
4949
query=query_parameters
@@ -63,9 +63,9 @@ def get_biosamples_of_variant(self, entry_id: Optional[str], qparams: RequestPar
6363
collection = 'g_variants'
6464
mongo_collection = client.beacon.biosamples
6565
query = {"$and": [{"variantInternalId": entry_id}]}
66-
query_parameters, parameters_as_filters = apply_request_parameters(self, query, qparams)
66+
query_parameters, parameters_as_filters = apply_request_parameters(self, query, qparams, dataset)
6767
if parameters_as_filters == True:
68-
query, parameters_as_filters = apply_request_parameters(self, {}, qparams)# pragma: no cover
68+
query, parameters_as_filters = apply_request_parameters(self, {}, qparams, dataset)# pragma: no cover
6969
query_parameters={}# pragma: no cover
7070
else:
7171
query=query_parameters
@@ -110,9 +110,9 @@ def get_runs_of_variant(self, entry_id: Optional[str], qparams: RequestParams, d
110110
collection = 'g_variants'
111111
mongo_collection = client.beacon.runs
112112
query = {"$and": [{"variantInternalId": entry_id}]}
113-
query_parameters, parameters_as_filters = apply_request_parameters(self, query, qparams)
113+
query_parameters, parameters_as_filters = apply_request_parameters(self, query, qparams, dataset)
114114
if parameters_as_filters == True:
115-
query, parameters_as_filters = apply_request_parameters(self, {}, qparams)# pragma: no cover
115+
query, parameters_as_filters = apply_request_parameters(self, {}, qparams, dataset)# pragma: no cover
116116
query_parameters={}# pragma: no cover
117117
else:
118118
query=query_parameters
@@ -156,9 +156,9 @@ def get_analyses_of_variant(self, entry_id: Optional[str], qparams: RequestParam
156156
collection = 'g_variants'
157157
mongo_collection = client.beacon.analyses
158158
query = {"$and": [{"variantInternalId": entry_id}]}
159-
query_parameters, parameters_as_filters = apply_request_parameters(self, query, qparams)
159+
query_parameters, parameters_as_filters = apply_request_parameters(self, query, qparams, dataset)
160160
if parameters_as_filters == True:
161-
query, parameters_as_filters = apply_request_parameters(self, {}, qparams)# pragma: no cover
161+
query, parameters_as_filters = apply_request_parameters(self, {}, qparams, dataset)# pragma: no cover
162162
query_parameters={}# pragma: no cover
163163
else:
164164
query=query_parameters
@@ -202,9 +202,9 @@ def get_individuals_of_variant(self, entry_id: Optional[str], qparams: RequestPa
202202
collection = 'g_variants'
203203
mongo_collection = client.beacon.individuals
204204
query = {"$and": [{"variantInternalId": entry_id}]}
205-
query_parameters, parameters_as_filters = apply_request_parameters(self, query, qparams)
205+
query_parameters, parameters_as_filters = apply_request_parameters(self, query, qparams, dataset)
206206
if parameters_as_filters == True:
207-
query, parameters_as_filters = apply_request_parameters(self, query, qparams)# pragma: no cover
207+
query, parameters_as_filters = apply_request_parameters(self, query, qparams, dataset)# pragma: no cover
208208
query_parameters={}# pragma: no cover
209209
else:
210210
query=query_parameters

beacon/connections/mongo/individuals.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ def get_individuals(self, entry_id: Optional[str], qparams: RequestParams, datas
1414
collection = 'individuals'
1515
mongo_collection = client.beacon.individuals
1616
parameters_as_filters=False
17-
query_parameters, parameters_as_filters = apply_request_parameters(self, {}, qparams)
17+
query_parameters, parameters_as_filters = apply_request_parameters(self, {}, qparams, dataset)
1818
if parameters_as_filters == True and query_parameters != {'$and': []}:
19-
query, parameters_as_filters = apply_request_parameters(self, {}, qparams)# pragma: no cover
19+
query, parameters_as_filters = apply_request_parameters(self, {}, qparams, dataset)# pragma: no cover
2020
query_parameters={}# pragma: no cover
2121
elif query_parameters != {'$and': []}:
2222
query=query_parameters
@@ -39,7 +39,7 @@ def get_individual_with_id(self, entry_id: Optional[str], qparams: RequestParams
3939
collection = 'individuals'
4040
idq="id"
4141
mongo_collection = client.beacon.individuals
42-
query, parameters_as_filters = apply_request_parameters(self, {}, qparams)
42+
query, parameters_as_filters = apply_request_parameters(self, {}, qparams, dataset)
4343
query = apply_filters(self, query, qparams.query.filters, collection, {}, dataset)
4444
query = query_id(self, query, entry_id)
4545
schema = DefaultSchemas.INDIVIDUALS
@@ -83,7 +83,7 @@ def get_variants_of_individual(self, entry_id: Optional[str], qparams: RequestPa
8383
queryHGVS["$in"]=listHGVS
8484
query["identifiers.genomicHGVSId"]=queryHGVS
8585
mongo_collection = client.beacon.genomicVariations
86-
query, parameters_as_filters = apply_request_parameters(self, query, qparams)
86+
query, parameters_as_filters = apply_request_parameters(self, query, qparams, dataset)
8787
query = apply_filters(self, query, qparams.query.filters, collection, {}, dataset)
8888
schema = DefaultSchemas.GENOMICVARIATIONS
8989
include = qparams.query.include_resultset_responses
@@ -100,7 +100,7 @@ def get_biosamples_of_individual(self, entry_id: Optional[str], qparams: Request
100100
collection = 'biosamples'
101101
mongo_collection = client.beacon.biosamples
102102
query = {"individualId": entry_id}
103-
query, parameters_as_filters = apply_request_parameters(self, query, qparams)
103+
query, parameters_as_filters = apply_request_parameters(self, query, qparams, dataset)
104104
query = apply_filters(self, query, qparams.query.filters, collection, {}, dataset)
105105
schema = DefaultSchemas.BIOSAMPLES
106106
include = qparams.query.include_resultset_responses

beacon/connections/mongo/request_parameters.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def generate_position_filter_end(self, key: str, value: List[int]) -> List[Alpha
6767
return filters
6868

6969
@log_with_args(level)
70-
def apply_request_parameters(self, query: Dict[str, List[dict]], qparams: RequestParams):
70+
def apply_request_parameters(self, query: Dict[str, List[dict]], qparams: RequestParams, dataset: str):
7171
collection = 'g_variants'
7272
if len(qparams.query.request_parameters) > 0 and "$and" not in query:
7373
query["$and"] = []
@@ -85,45 +85,45 @@ def apply_request_parameters(self, query: Dict[str, List[dict]], qparams: Reques
8585
v = v.split(',')
8686
filters = generate_position_filter_start(self, k, v)
8787
for filter in filters:
88-
subquery["$and"].append(apply_alphanumeric_filter({}, filter, collection))
88+
subquery["$and"].append(apply_alphanumeric_filter({}, filter, collection, dataset))
8989
elif k == "end":
9090
if isinstance(v, str):
9191
v = v.split(',')
9292
filters = generate_position_filter_end(self, k, v)
9393
for filter in filters:
94-
subquery["$and"].append(apply_alphanumeric_filter({}, filter, collection))
94+
subquery["$and"].append(apply_alphanumeric_filter({}, filter, collection, dataset))
9595
elif k == "datasets":
9696
pass
9797
elif k == "variantMinLength":
9898
try:
9999
subquery["$and"].append(apply_alphanumeric_filter({}, AlphanumericFilter(
100100
id=VARIANTS_PROPERTY_MAP[k],
101101
value='min'+v
102-
), collection))
102+
), collection, dataset))
103103
except KeyError:
104104
raise web.HTTPNotFound
105105
elif k == "variantMaxLength":
106106
try:
107107
subquery["$and"].append(apply_alphanumeric_filter({}, AlphanumericFilter(
108108
id=VARIANTS_PROPERTY_MAP[k],
109109
value='max'+v
110-
), collection))
110+
), collection, dataset))
111111
except KeyError:
112112
raise web.HTTPNotFound
113113
elif k == "mateName" or k == 'referenceName':
114114
try:
115115
subqueryor["$or"].append(apply_alphanumeric_filter({}, AlphanumericFilter(
116116
id=VARIANTS_PROPERTY_MAP[k],
117117
value='max'+v
118-
), collection))
118+
), collection, dataset))
119119
except KeyError:
120120
raise web.HTTPNotFound
121121
elif k != 'filters':
122122
try:
123123
subquery["$and"].append(apply_alphanumeric_filter({}, AlphanumericFilter(
124124
id=VARIANTS_PROPERTY_MAP[k],
125125
value=v
126-
), collection))
126+
), collection, dataset))
127127
except KeyError:
128128
raise web.HTTPNotFound
129129

@@ -155,45 +155,45 @@ def apply_request_parameters(self, query: Dict[str, List[dict]], qparams: Reques
155155
v = v.split(',')
156156
filters = generate_position_filter_start(self, k, v)
157157
for filter in filters:
158-
query["$and"].append(apply_alphanumeric_filter(self, {}, filter, collection))
158+
query["$and"].append(apply_alphanumeric_filter(self, {}, filter, collection, dataset))
159159
elif k == "end":
160160
if isinstance(v, str):
161161
v = v.split(',')
162162
filters = generate_position_filter_end(self, k, v)
163163
for filter in filters:
164-
query["$and"].append(apply_alphanumeric_filter(self, {}, filter, collection))
164+
query["$and"].append(apply_alphanumeric_filter(self, {}, filter, collection, dataset))
165165
elif k == "datasets":
166166
pass
167167
elif k == "variantMinLength":
168168
try:
169169
query["$and"].append(apply_alphanumeric_filter(self, {}, AlphanumericFilter(
170170
id=VARIANTS_PROPERTY_MAP[k],
171171
value='min'+v
172-
), collection))
172+
), collection, dataset))
173173
except KeyError:# pragma: no cover
174174
raise web.HTTPNotFound
175175
elif k == "variantMaxLength":
176176
try:
177177
query["$and"].append(apply_alphanumeric_filter(self, {}, AlphanumericFilter(
178178
id=VARIANTS_PROPERTY_MAP[k],
179179
value='max'+v
180-
), collection))
180+
), collection, dataset))
181181
except KeyError:# pragma: no cover
182182
raise web.HTTPNotFound
183183
elif k == "mateName" or k == 'referenceName':
184184
try:
185185
subqueryor["$or"].append(apply_alphanumeric_filter(self, {}, AlphanumericFilter(
186186
id=VARIANTS_PROPERTY_MAP[k],
187187
value=v
188-
), collection))
188+
), collection, dataset))
189189
except KeyError:# pragma: no cover
190190
raise web.HTTPNotFound
191191
elif k != 'filters':
192192
try:
193193
query["$and"].append(apply_alphanumeric_filter(self, {}, AlphanumericFilter(
194194
id=VARIANTS_PROPERTY_MAP[k],
195195
value=v
196-
), collection))
196+
), collection, dataset))
197197
except KeyError:# pragma: no cover
198198
raise web.HTTPNotFound
199199

beacon/connections/mongo/runs.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ def get_runs(self, entry_id: Optional[str], qparams: RequestParams, dataset: str
1414
collection = 'runs'
1515
mongo_collection = client.beacon.runs
1616
parameters_as_filters=False
17-
query_parameters, parameters_as_filters = apply_request_parameters(self, {}, qparams)
17+
query_parameters, parameters_as_filters = apply_request_parameters(self, {}, qparams, dataset)
1818
if parameters_as_filters == True:
19-
query, parameters_as_filters = apply_request_parameters(self, {}, qparams)# pragma: no cover
19+
query, parameters_as_filters = apply_request_parameters(self, {}, qparams, dataset)# pragma: no cover
2020
query_parameters={}# pragma: no cover
2121
else:
2222
query={}

0 commit comments

Comments
 (0)