From 33043f9ebe852a3d25704497e3335145e17f4979 Mon Sep 17 00:00:00 2001 From: AndiMajore <andi.majore@googlemail.com> Date: Fri, 4 Nov 2022 20:12:14 +0100 Subject: [PATCH] added max tissue expression route --- docker-compose-prod.yml | 2 +- drugstone/urls.py | 4 +++- drugstone/views.py | 9 ++++++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/docker-compose-prod.yml b/docker-compose-prod.yml index cb01d89..8de9154 100755 --- a/docker-compose-prod.yml +++ b/docker-compose-prod.yml @@ -33,7 +33,7 @@ services: labels: - "com.centurylinklabs.watchtower.enable=true" db: - image: postgres + image: postgres:14 container_name: drugstone_postgres restart: always hostname: drugstone_postgres diff --git a/drugstone/urls.py b/drugstone/urls.py index a2e5786..886dbdd 100755 --- a/drugstone/urls.py +++ b/drugstone/urls.py @@ -18,7 +18,8 @@ from django.urls import path from drugstone.views import map_nodes, tasks_view, result_view, \ graph_export, TissueView, TissueExpressionView, query_tissue_proteins, TaskView, \ - adjacent_drugs, adjacent_disorders, fetch_edges, create_network, load_network, get_license, get_datasets + adjacent_drugs, adjacent_disorders, fetch_edges, create_network, load_network, get_license, get_datasets, \ + get_max_tissue_expression # cache time is 6 hours urlpatterns = [ @@ -33,6 +34,7 @@ urlpatterns = [ path('adjacent_drugs/', adjacent_drugs), path('adjacent_disorders/', adjacent_disorders), path('tissue_expression/', TissueExpressionView.as_view()), + path('tissue_max_expression/', get_max_tissue_expression()), path('tissues/', TissueView.as_view()), path('admin/', admin.site.urls), path('create_network', create_network), diff --git a/drugstone/views.py b/drugstone/views.py index fdae123..4603f6e 100755 --- a/drugstone/views.py +++ b/drugstone/views.py @@ -10,7 +10,7 @@ import pandas as pd import networkx as nx from django.http import HttpResponse -from django.db.models import Q +from django.db.models import Q, Max from django.db import IntegrityError from rest_framework.decorators import api_view from rest_framework.response import Response @@ -626,6 +626,12 @@ def query_proteins(request) -> Response: }) +@api_view(['GET']) +def get_max_tissue_expression(request) -> Response: + tissue = Tissue.objects.get(id=request.query_params.get('tissue')) + return Response({max: ExpressionLevel.objects.filter(tissue=tissue).aggregate(Max('expression_level'))}) + + @api_view(['POST']) def query_tissue_proteins(request) -> Response: threshold = request.data['threshold'] @@ -646,6 +652,7 @@ class TissueView(APIView): return Response(TissueSerializer(many=True).to_representation(tissues)) + class TissueExpressionView(APIView): """ Expression of host proteins in tissues. -- GitLab