Skip to content

Commit 4250fc0

Browse files
committed
[CLE] Removed the need for local uta
1 parent 9811dc0 commit 4250fc0

File tree

4 files changed

+27
-46
lines changed

4 files changed

+27
-46
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,5 @@ svip_api/api/static
2929

3030
/node_modules
3131
*.orig
32+
33+
Pipfile*

docker-compose.dev.yml

-3
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,6 @@ services:
1414
db:
1515
ports:
1616
- '30432:5432' # dev access port
17-
local_uta:
18-
ports:
19-
- '15032:5432'
2017
redis:
2118
ports:
2219
- '${REDIS_PORT}:${REDIS_PORT}'

docker-compose.yml

-11
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,7 @@ services:
3030
depends_on:
3131
- db
3232
- redis
33-
- local_uta
3433
environment:
35-
- UTA_DB_URL=postgresql://anonymous@local_uta/uta/uta_20171026
3634
- HGVS_SEQREPO_DIR=/usr/local/share/seqrepo/latest
3735
- PYTHONUNBUFFERED=1
3836
env_file:
@@ -49,15 +47,6 @@ services:
4947
- ./service_config/postgres:/docker-entrypoint-initdb.d
5048
env_file:
5149
- .env
52-
local_uta:
53-
# image: biocommons/uta:uta_20190928
54-
image: biocommons/uta:uta_20171026
55-
hostname: local_uta
56-
restart: unless-stopped
57-
volumes:
58-
- '/usr/local/share/seqrepo:/usr/local/share/seqrepo'
59-
environment:
60-
- POSTGRES_HOST_AUTH_METHOD=trust
6150
redis:
6251
image: 'redis:alpine'
6352
hostname: redis

svip_api/api/views/svip.py

+25-32
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
import django_filters
2-
import hgvs.assemblymapper
3-
import hgvs.dataproviders.uta
4-
import hgvs.normalizer
52
import hgvs.parser
63
from django.contrib.auth.models import User
74
from django.contrib.postgres.aggregates import ArrayAgg
85
from django.db.models import Prefetch, Q
96
from django.http import JsonResponse
10-
from hgvs.exceptions import HGVSParseError
117
from rest_framework import viewsets, permissions, filters, status
128
from rest_framework.decorators import action
139
from rest_framework.exceptions import PermissionDenied
@@ -63,19 +59,19 @@ def get_queryset(self):
6359
q = VariantInSVIP.objects.all()
6460

6561
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+
)
7975

8076
return q
8177

@@ -136,8 +132,8 @@ class CurationRequestViewSet(viewsets.ModelViewSet):
136132
serializer_class = CurationRequestSerializer
137133
queryset = (
138134
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')
141137
)
142138

143139

@@ -273,9 +269,9 @@ def all_references(self, request):
273269
'references': {
274270
x['references']: x['recs'] for x in (
275271
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(
279275
id='id', variant_id='variant__id', gene_id='variant__gene__id', etype='type_of_evidence'
280276
)))
281277
)
@@ -286,13 +282,13 @@ def get_queryset(self):
286282
# pre-select variant and gene data to prevent thousands of queries
287283
return (
288284
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(
291287
'extra_variants',
292288
'extra_variants__gene',
293289
'disease'
294290
)
295-
.order_by('created_on')
291+
.order_by('created_on')
296292
)
297293

298294

@@ -410,11 +406,7 @@ def bulk_submit(self, request):
410406
# hgvs stuff
411407

412408
# 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)
415409
hgvsparser = hgvs.parser.Parser()
416-
am = hgvs.assemblymapper.AssemblyMapper(
417-
hdp, assembly_name='GRCh37', normalize=True)
418410

419411
AC_MAP = {
420412
'1': 'NC_000001',
@@ -458,8 +450,8 @@ class SubmittedVariantViewSet(viewsets.ModelViewSet):
458450
'chromosome', 'pos', 'ref', 'alt', 'status'
459451
)
460452
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')
463455
search_fields = ('chromosome', 'pos', 'ref', 'alt',)
464456

465457
permission_classes = (IsSubmitter,)
@@ -469,6 +461,7 @@ class SubmittedVariantViewSet(viewsets.ModelViewSet):
469461
@action(methods=['GET'], detail=False)
470462
def map_hgvs(self, request):
471463
try:
464+
raise NotImplementedError('Please implement map_hgvs correctly')
472465
# removes all sorts of weird unicode characters that, e.g., SVIP, adds for formatting purposes
473466
sanitized_hgvs = request.GET['hgvs_str'].strip().encode(
474467
"ascii", errors='ignore').decode("utf8")
@@ -479,7 +472,7 @@ def map_hgvs(self, request):
479472
if result.type == 'c':
480473
lifted = True
481474
result = am.c_to_g(result)
482-
except HGVSParseError as ex:
475+
except Exception as ex:
483476
return JsonResponse({'error': str(ex)}, status=status.HTTP_400_BAD_REQUEST)
484477

485478
return JsonResponse({

0 commit comments

Comments
 (0)