From bd372d56f7eac22498f213e31e6c7cefa71a6c17 Mon Sep 17 00:00:00 2001 From: AndiMajore <andi.majore@googlemail.com> Date: Fri, 1 Jul 2022 17:37:00 +0200 Subject: [PATCH] nedrex integration mainly done --- data/.gitignore | 1 + docker-compose.yml | 12 +++---- drugstone/management/commands/test.py | 51 --------------------------- drugstone/models.py | 6 ++++ drugstone/views.py | 4 +-- scripts/docker-entrypoint.sh | 3 +- 6 files changed, 16 insertions(+), 61 deletions(-) create mode 100644 data/.gitignore delete mode 100644 drugstone/management/commands/test.py diff --git a/data/.gitignore b/data/.gitignore new file mode 100644 index 0000000..6f8cd63 --- /dev/null +++ b/data/.gitignore @@ -0,0 +1 @@ +data.zip diff --git a/docker-compose.yml b/docker-compose.yml index aed9f48..05c85e6 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,7 +15,7 @@ services: - drugstone_db_schema_volume:/usr/src/drugstone/drugstone/migrations - drugstone_data_volume:/usr/src/drugstone/data ports: - - 8002:8000 + - 8001:8000 networks: - drugstone_net depends_on: @@ -26,8 +26,8 @@ services: container_name: drugstone_postgres restart: always hostname: drugstone_postgres -# ports: -# - 5432:5432 + ports: + - 5432:5432 networks: - drugstone_net volumes: @@ -95,8 +95,8 @@ networks: volumes: drugstone_db_volume: - external: true +# external: true drugstone_db_schema_volume: - external: true +# external: true drugstone_data_volume: - external: true \ No newline at end of file +# external: true \ No newline at end of file diff --git a/drugstone/management/commands/test.py b/drugstone/management/commands/test.py deleted file mode 100644 index 4d01dd4..0000000 --- a/drugstone/management/commands/test.py +++ /dev/null @@ -1,51 +0,0 @@ -import python_nedrex as nedrex -from python_nedrex.core import get_nodes, get_edges, get_api_key -from python_nedrex.static import get_metadata - -def iter_node_collection(coll_name, eval): - offset = 0 - limit = 10000 - while True: - result = get_nodes(coll_name, offset=offset, limit=limit) - if not result: - return - for node in result: - eval(node) - offset += limit - - -def iter_edge_collection(coll_name, eval): - offset = 0 - limit = 10000 - while True: - result = get_edges(coll_name, offset=offset, limit=limit) - if not result: - return - for edge in result: - eval(edge) - offset += limit - - -def iter_ppi(eval): - from python_nedrex import ppi - offset = 0 - limit = 1000 - while True: - result = ppi.ppis({"exp"},skip = offset, limit=limit) - if not result: - return - for edge in result: - eval(edge) - offset += limit - -base_url = "http://82.148.225.92:8123/" -nedrex.config.set_url_base(base_url) -api_key = get_api_key(accept_eula=True) -nedrex.config.set_api_key(api_key) -print(f'Nodes: {nedrex.core.get_node_types()}') -print(f'Edges: {nedrex.core.get_edge_types()}') -print(f'{get_metadata()}') - - -iter_ppi(lambda node: print(node)) -# iter_edge_collection("gene_expressed_in_tissue", lambda node: {print(node)}) \ No newline at end of file diff --git a/drugstone/models.py b/drugstone/models.py index 4f160db..5391a43 100755 --- a/drugstone/models.py +++ b/drugstone/models.py @@ -129,6 +129,9 @@ class Disorder(models.Model): def __ne__(self, other): return not self.__eq__(other) + def __hash__(self): + return hash((self.mondo_id, self.label, self.icd10)) + def update(self, other): self.mondo_id = other.mondo_id self.label = other.label @@ -152,6 +155,9 @@ class Drug(models.Model): def __ne__(self, other): return not self.__eq__(other) + def __hash__(self): + return hash((self.drug_id, self.name, self.status)) + def update(self, other): self.drug_id = other.drug_id self.name = other.name diff --git a/drugstone/views.py b/drugstone/views.py index 6491d09..7822f3a 100755 --- a/drugstone/views.py +++ b/drugstone/views.py @@ -531,7 +531,7 @@ def adjacent_disorders(request) -> Response: data = request.data if 'proteins' in data: drugstone_ids = data.get('proteins', []) - pdi_dataset = 'DisGeNET' + pdi_dataset = data.get('dataset','DisGeNET') # find adjacent drugs by looking at drug-protein edges pdis_objects = ProteinDisorderAssociation.objects.filter(protein__id__in=drugstone_ids, pdis_dataset__name=pdi_dataset) @@ -541,7 +541,7 @@ def adjacent_disorders(request) -> Response: disorders = DisorderSerializer(many=True).to_representation(disorders) elif 'drugs' in data: drugstone_ids = data.get('drugs', []) - drdi_dataset = 'DrugBank' + drdi_dataset = data.get('dataset','DrugBank') # find adjacent drugs by looking at drug-protein edges drdi_objects = DrugDisorderIndication.objects.filter(drug__id__in=drugstone_ids, drdi_dataset__name=drdi_dataset) diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh index 6dc4cd8..c033d37 100755 --- a/scripts/docker-entrypoint.sh +++ b/scripts/docker-entrypoint.sh @@ -1,6 +1,6 @@ #!/bin/bash -file="docker-entrypoint.lock" +file="data/docker-entrypoint.lock" # exit if entrypoint.lock exists to prevent new import of data every time docker is restarted @@ -13,7 +13,6 @@ if ! test -f "$file"; then python3 manage.py cleanuptasks python3 manage.py populate_db -u --all python3 manage.py make_graphs - touch $file fi -- GitLab