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