From a961801e7f87b27ed625c547e32f93469d15757e Mon Sep 17 00:00:00 2001 From: AndiMajore <andi.majore@googlemail.com> Date: Wed, 15 Feb 2023 20:09:40 +0100 Subject: [PATCH] added route for default params Former-commit-id: ed8da6ed11ab50b3328a8bca5a675700fd60033a [formerly 4aaf780e4b2eed07faa6131f7ba5c0692632fd43] Former-commit-id: e58fea766a10a7dbb95a74d21f245387b5e99887 --- drugstone/urls.py | 3 ++- drugstone/views.py | 22 ++++++++++++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/drugstone/urls.py b/drugstone/urls.py index 680f18b..f3afb67 100755 --- a/drugstone/urls.py +++ b/drugstone/urls.py @@ -19,7 +19,7 @@ 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, \ - get_max_tissue_expression, convert_compact_ids + get_max_tissue_expression, convert_compact_ids, get_default_params # cache time is 6 hours urlpatterns = [ @@ -40,5 +40,6 @@ urlpatterns = [ path('admin/', admin.site.urls), path('create_network', create_network), path('load_network', load_network), + path('get_default_params', get_default_params), path('get_license', get_license) ] diff --git a/drugstone/views.py b/drugstone/views.py index 45ff924..418ae06 100755 --- a/drugstone/views.py +++ b/drugstone/views.py @@ -59,7 +59,7 @@ class TaskView(APIView): token_str = ''.join(random.choice(chars) for _ in range(32)) parameters = request.data['parameters'] licenced = parameters.get('licenced', False) - + algorithm = request.data['algorithm'] # find databases based on parameter strings parameters['ppi_dataset'] = PPIDatasetSerializer().to_representation( @@ -68,9 +68,14 @@ class TaskView(APIView): parameters['pdi_dataset'] = PDIDatasetSerializer().to_representation( get_pdi_ds(parameters.get('pdi_dataset', DEFAULTS['pdi']), licenced)) + # if algorithm in ['connect', 'connectSelected', 'quick', 'super']: + # parameters["num_trees"] = 5 + # parameters["tolerance"] = 5 + # parameters["hub_penalty"] = 0.5 + task = Task.objects.create(token=token_str, target=request.data['target'], - algorithm=request.data['algorithm'], + algorithm=algorithm, parameters=json.dumps(parameters)) start_task(task) task.save() @@ -100,6 +105,19 @@ def get_license(request) -> Response: return Response({'license': import_license()}) +@api_view(['GET']) +def get_default_params(request) -> Response: + algorithm = request.GET.get('algorithm') + connect = {'algorithm': 'multisteiner', 'numTrees': 5, 'tolerance': 5, 'hubPenalty': 0.5} + quick = {'algorithm': 'closeness', 'result_size': 50, 'hub_penalty': 0, 'include_non_approved_drugs': False, 'include_indirect_drugs': False} + resp = {} + if algorithm in ['quick', 'super', 'connect', 'connectSelected']: + resp['protein'] = connect + if algorithm in ['quick', 'super']: + resp['drug'] = quick + return Response(resp) + + @api_view(['POST']) def fetch_edges(request) -> Response: """Retrieves interactions between nodes given as a list of drugstone IDs. -- GitLab