1
1
import django_filters
2
- import hgvs .assemblymapper
3
- import hgvs .dataproviders .uta
4
- import hgvs .normalizer
5
2
import hgvs .parser
6
3
from django .contrib .auth .models import User
7
4
from django .contrib .postgres .aggregates import ArrayAgg
8
5
from django .db .models import Prefetch , Q
9
6
from django .http import JsonResponse
10
- from hgvs .exceptions import HGVSParseError
11
7
from rest_framework import viewsets , permissions , filters , status
12
8
from rest_framework .decorators import action
13
9
from rest_framework .exceptions import PermissionDenied
@@ -63,19 +59,19 @@ def get_queryset(self):
63
59
q = VariantInSVIP .objects .all ()
64
60
65
61
q = (q
66
- .select_related ('variant' )
67
- .prefetch_related (
68
- Prefetch ('diseaseinsvip_set' , queryset = (
69
- DiseaseInSVIP .objects
70
- .select_related ('disease' , 'svip_variant' , 'svip_variant__variant' )
71
- .prefetch_related (
72
- 'sample_set'
73
- )
74
- )),
75
- # Prefetch('diseaseinsvip_set', queryset=DiseaseInSVIP.objects.prefetch_related('sample_set')),
76
- # 'diseaseinsvip_set', 'diseaseinsvip_set__sample_set'
77
- )
78
- )
62
+ .select_related ('variant' )
63
+ .prefetch_related (
64
+ Prefetch ('diseaseinsvip_set' , queryset = (
65
+ DiseaseInSVIP .objects
66
+ .select_related ('disease' , 'svip_variant' , 'svip_variant__variant' )
67
+ .prefetch_related (
68
+ 'sample_set'
69
+ )
70
+ )),
71
+ # Prefetch('diseaseinsvip_set', queryset=DiseaseInSVIP.objects.prefetch_related('sample_set')),
72
+ # 'diseaseinsvip_set', 'diseaseinsvip_set__sample_set'
73
+ )
74
+ )
79
75
80
76
return q
81
77
@@ -136,8 +132,8 @@ class CurationRequestViewSet(viewsets.ModelViewSet):
136
132
serializer_class = CurationRequestSerializer
137
133
queryset = (
138
134
CurationRequest .objects
139
- .prefetch_related ('variant' , 'variant__gene' , 'submission' )
140
- .order_by ('-created_on' )
135
+ .prefetch_related ('variant' , 'variant__gene' , 'submission' )
136
+ .order_by ('-created_on' )
141
137
)
142
138
143
139
@@ -273,9 +269,9 @@ def all_references(self, request):
273
269
'references' : {
274
270
x ['references' ]: x ['recs' ] for x in (
275
271
CurationEntry .objects
276
- .select_related ('variant' , 'variant__gene' )
277
- .values ('references' )
278
- .annotate (recs = ArrayAgg (json_build_fields (
272
+ .select_related ('variant' , 'variant__gene' )
273
+ .values ('references' )
274
+ .annotate (recs = ArrayAgg (json_build_fields (
279
275
id = 'id' , variant_id = 'variant__id' , gene_id = 'variant__gene__id' , etype = 'type_of_evidence'
280
276
)))
281
277
)
@@ -286,13 +282,13 @@ def get_queryset(self):
286
282
# pre-select variant and gene data to prevent thousands of queries
287
283
return (
288
284
CurationEntry .objects .authed_curation_set (self .request .user )
289
- .select_related ('owner' , 'variant' , 'variant__gene' , 'disease' )
290
- .prefetch_related (
285
+ .select_related ('owner' , 'variant' , 'variant__gene' , 'disease' )
286
+ .prefetch_related (
291
287
'extra_variants' ,
292
288
'extra_variants__gene' ,
293
289
'disease'
294
290
)
295
- .order_by ('created_on' )
291
+ .order_by ('created_on' )
296
292
)
297
293
298
294
@@ -410,11 +406,7 @@ def bulk_submit(self, request):
410
406
# hgvs stuff
411
407
412
408
# these shared assembly mappers will allow us to convert HGVS g. variants to c. and p. later on
413
- hdp = hgvs .dataproviders .uta .connect ()
414
- hgnorm = hgvs .normalizer .Normalizer (hdp )
415
409
hgvsparser = hgvs .parser .Parser ()
416
- am = hgvs .assemblymapper .AssemblyMapper (
417
- hdp , assembly_name = 'GRCh37' , normalize = True )
418
410
419
411
AC_MAP = {
420
412
'1' : 'NC_000001' ,
@@ -458,8 +450,8 @@ class SubmittedVariantViewSet(viewsets.ModelViewSet):
458
450
'chromosome' , 'pos' , 'ref' , 'alt' , 'status'
459
451
)
460
452
ordering_fields = filter_fields + \
461
- ('created_on' , 'processed_on' , 'batch' , 'owner' ,
462
- 'canonical_only' , 'for_curation_request' )
453
+ ('created_on' , 'processed_on' , 'batch' , 'owner' ,
454
+ 'canonical_only' , 'for_curation_request' )
463
455
search_fields = ('chromosome' , 'pos' , 'ref' , 'alt' ,)
464
456
465
457
permission_classes = (IsSubmitter ,)
@@ -469,6 +461,7 @@ class SubmittedVariantViewSet(viewsets.ModelViewSet):
469
461
@action (methods = ['GET' ], detail = False )
470
462
def map_hgvs (self , request ):
471
463
try :
464
+ raise NotImplementedError ('Please implement map_hgvs correctly' )
472
465
# removes all sorts of weird unicode characters that, e.g., SVIP, adds for formatting purposes
473
466
sanitized_hgvs = request .GET ['hgvs_str' ].strip ().encode (
474
467
"ascii" , errors = 'ignore' ).decode ("utf8" )
@@ -479,7 +472,7 @@ def map_hgvs(self, request):
479
472
if result .type == 'c' :
480
473
lifted = True
481
474
result = am .c_to_g (result )
482
- except HGVSParseError as ex :
475
+ except Exception as ex :
483
476
return JsonResponse ({'error' : str (ex )}, status = status .HTTP_400_BAD_REQUEST )
484
477
485
478
return JsonResponse ({
0 commit comments