Skip to content
Snippets Groups Projects
Commit 3a1b589c authored by AndiMajore's avatar AndiMajore
Browse files

nedrex integration mainly done

Former-commit-id: bd372d56
parent b206d36a
No related branches found
No related tags found
No related merge requests found
data.zip
...@@ -15,7 +15,7 @@ services: ...@@ -15,7 +15,7 @@ services:
- drugstone_db_schema_volume:/usr/src/drugstone/drugstone/migrations - drugstone_db_schema_volume:/usr/src/drugstone/drugstone/migrations
- drugstone_data_volume:/usr/src/drugstone/data - drugstone_data_volume:/usr/src/drugstone/data
ports: ports:
- 8002:8000 - 8001:8000
networks: networks:
- drugstone_net - drugstone_net
depends_on: depends_on:
...@@ -26,8 +26,8 @@ services: ...@@ -26,8 +26,8 @@ services:
container_name: drugstone_postgres container_name: drugstone_postgres
restart: always restart: always
hostname: drugstone_postgres hostname: drugstone_postgres
# ports: ports:
# - 5432:5432 - 5432:5432
networks: networks:
- drugstone_net - drugstone_net
volumes: volumes:
...@@ -95,8 +95,8 @@ networks: ...@@ -95,8 +95,8 @@ networks:
volumes: volumes:
drugstone_db_volume: drugstone_db_volume:
external: true # external: true
drugstone_db_schema_volume: drugstone_db_schema_volume:
external: true # external: true
drugstone_data_volume: drugstone_data_volume:
external: true # external: true
\ No newline at end of file \ No newline at end of file
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
...@@ -129,6 +129,9 @@ class Disorder(models.Model): ...@@ -129,6 +129,9 @@ class Disorder(models.Model):
def __ne__(self, other): def __ne__(self, other):
return not self.__eq__(other) return not self.__eq__(other)
def __hash__(self):
return hash((self.mondo_id, self.label, self.icd10))
def update(self, other): def update(self, other):
self.mondo_id = other.mondo_id self.mondo_id = other.mondo_id
self.label = other.label self.label = other.label
...@@ -152,6 +155,9 @@ class Drug(models.Model): ...@@ -152,6 +155,9 @@ class Drug(models.Model):
def __ne__(self, other): def __ne__(self, other):
return not self.__eq__(other) return not self.__eq__(other)
def __hash__(self):
return hash((self.drug_id, self.name, self.status))
def update(self, other): def update(self, other):
self.drug_id = other.drug_id self.drug_id = other.drug_id
self.name = other.name self.name = other.name
......
...@@ -531,7 +531,7 @@ def adjacent_disorders(request) -> Response: ...@@ -531,7 +531,7 @@ def adjacent_disorders(request) -> Response:
data = request.data data = request.data
if 'proteins' in data: if 'proteins' in data:
drugstone_ids = data.get('proteins', []) drugstone_ids = data.get('proteins', [])
pdi_dataset = 'DisGeNET' pdi_dataset = data.get('dataset','DisGeNET')
# find adjacent drugs by looking at drug-protein edges # find adjacent drugs by looking at drug-protein edges
pdis_objects = ProteinDisorderAssociation.objects.filter(protein__id__in=drugstone_ids, pdis_objects = ProteinDisorderAssociation.objects.filter(protein__id__in=drugstone_ids,
pdis_dataset__name=pdi_dataset) pdis_dataset__name=pdi_dataset)
...@@ -541,7 +541,7 @@ def adjacent_disorders(request) -> Response: ...@@ -541,7 +541,7 @@ def adjacent_disorders(request) -> Response:
disorders = DisorderSerializer(many=True).to_representation(disorders) disorders = DisorderSerializer(many=True).to_representation(disorders)
elif 'drugs' in data: elif 'drugs' in data:
drugstone_ids = data.get('drugs', []) drugstone_ids = data.get('drugs', [])
drdi_dataset = 'DrugBank' drdi_dataset = data.get('dataset','DrugBank')
# find adjacent drugs by looking at drug-protein edges # find adjacent drugs by looking at drug-protein edges
drdi_objects = DrugDisorderIndication.objects.filter(drug__id__in=drugstone_ids, drdi_objects = DrugDisorderIndication.objects.filter(drug__id__in=drugstone_ids,
drdi_dataset__name=drdi_dataset) drdi_dataset__name=drdi_dataset)
......
#!/bin/bash #!/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 # 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 ...@@ -13,7 +13,6 @@ if ! test -f "$file"; then
python3 manage.py cleanuptasks python3 manage.py cleanuptasks
python3 manage.py populate_db -u --all python3 manage.py populate_db -u --all
python3 manage.py make_graphs python3 manage.py make_graphs
touch $file touch $file
fi fi
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment