Skip to content
Snippets Groups Projects
Commit 50dd95bb authored by Hartung, Michael's avatar Hartung, Michael
Browse files

first implementation of add edges

parent b0afcbf2
No related branches found
No related tags found
No related merge requests found
Pipeline #12557 failed
......@@ -82,7 +82,7 @@ services:
- db
networks:
- drugstone_net
flower:
flower:
image: mher/flower
container_name: drugstone_flower
env_file:
......
......@@ -26,7 +26,6 @@ from drugstone.settings import DEFAULTS
def get_ppi_ds(source, licenced):
try:
ds = models.PPIDataset.objects.filter(name__iexact=source, licenced=licenced).last()
ds.id
return ds
except:
if licenced:
......@@ -37,7 +36,6 @@ def get_ppi_ds(source, licenced):
def get_pdi_ds(source, licenced):
try:
ds = models.PDIDataset.objects.filter(name__iexact=source, licenced=licenced).last()
ds.id
return ds
except:
if licenced:
......@@ -48,7 +46,6 @@ def get_pdi_ds(source, licenced):
def get_pdis_ds(source, licenced):
try:
ds = models.PDisDataset.objects.filter(name__iexact=source, licenced=licenced).last()
ds.id
return ds
except:
if licenced:
......@@ -59,7 +56,6 @@ def get_pdis_ds(source, licenced):
def get_drdis_ds(source, licenced):
try:
ds = models.DrDiDataset.objects.filter(name__iexact=source, licenced=licenced).last()
ds.id
return ds
except:
if licenced:
......@@ -75,6 +71,11 @@ class TaskView(APIView):
parameters = request.data['parameters']
licenced = parameters.get('licenced', False)
print(models.PDIDataset.objects.all())
print(get_ppi_ds(parameters.get('ppi_dataset', DEFAULTS['ppi']), licenced))
print(get_pdi_ds(parameters.get('pdi_dataset', DEFAULTS['pdi']), licenced))
# find databases based on parameter strings
parameters['ppi_dataset'] = PPIDatasetSerializer().to_representation(
get_ppi_ds(parameters.get('ppi_dataset', DEFAULTS['ppi']), licenced))
......
from tasks.util.custom_edges import add_edges
from tasks.util.read_graph_tool_graph import read_graph_tool_graph
from tasks.util.scores_to_results import scores_to_results
from tasks.util.edge_weights import edge_weights
......@@ -172,6 +173,8 @@ def betweenness_centrality(task_hook: TaskHook):
id_space = task_hook.parameters["config"].get("identifier","symbol")
custom_edges = task_hook.parameters.get("custom_edges", False)
# Parsing input file.
task_hook.set_progress(0 / 3.0, "Parsing input.")
filename = f"{id_space}_{ppi_dataset['name']}-{pdi_dataset['name']}"
......@@ -187,6 +190,11 @@ def betweenness_centrality(task_hook: TaskHook):
include_non_approved_drugs,
target=search_target
)
if custom_edges:
edges = task_hook.parameters.get("input_network")['edges']
g = add_edges(g, edges)
weights = edge_weights(g, hub_penalty)
# Set number of threads if OpenMP support is enabled.
......
import numpy as np
from tasks.util.custom_edges import add_edges
from tasks.util.read_graph_tool_graph import read_graph_tool_graph
from tasks.util.scores_to_results import scores_to_results
from tasks.util.edge_weights import edge_weights
......@@ -173,13 +174,18 @@ def closeness_centrality(task_hook: TaskHook):
id_space = task_hook.parameters["config"].get("identifier", "symbol")
node_name_attribute = "internal_id"
custom_edges = task_hook.parameters.get("custom_edges", False)
filename = f"{id_space}_{ppi_dataset['name']}-{pdi_dataset['name']}"
if ppi_dataset['licenced'] or pdi_dataset['licenced']:
filename += "_licenced"
filename = os.path.join(task_hook.data_directory, filename + ".gt")
g, seed_ids, drug_ids = read_graph_tool_graph(filename, seeds, id_space, max_deg, include_indirect_drugs, include_non_approved_drugs, search_target)
if custom_edges:
edges = task_hook.parameters.get("input_network")['edges']
g = add_edges(g, edges)
task_hook.set_progress(1 / 4.0, "Computing edge weights.")
weights = edge_weights(g, hub_penalty)
......
from tasks.util.read_graph_tool_graph import read_graph_tool_graph
from tasks.util.scores_to_results import scores_to_results
from tasks.util.custom_edges import add_edges
from tasks.task_hook import TaskHook
import graph_tool as gt
import os.path
......@@ -147,6 +148,8 @@ def degree_centrality(task_hook: TaskHook):
search_target = task_hook.parameters.get("target", "drug-target")
filterPaths = task_hook.parameters.get("filter_paths", True)
custom_edges = task_hook.parameters.get("custom_edges", False)
# Parsing input file.
task_hook.set_progress(0 / 3.0, "Parsing input.")
......@@ -160,6 +163,10 @@ def degree_centrality(task_hook: TaskHook):
# g, seed_ids, viral_protein_ids, drug_ids = read_graph_tool_graph(file_path, seeds, datasets, ignored_edge_types, max_deg, ignore_non_seed_baits, False, include_non_approved_drugs)
g, seed_ids, drug_ids = read_graph_tool_graph(filename, seeds, id_space, max_deg, False, include_non_approved_drugs, search_target)
if custom_edges:
edges = task_hook.parameters.get("input_network")['edges']
g = add_edges(g, edges)
# Set number of threads if OpenMP support is enabled.
if gt.openmp_enabled():
gt.openmp_set_num_threads(num_threads)
......
from tasks.task_hook import TaskHook
from tasks.util.custom_edges import add_edges
from tasks.util.steiner_tree import steiner_tree
from tasks.util.find_bridges import find_bridges
from tasks.util.read_graph_tool_graph import read_graph_tool_graph
......@@ -99,6 +100,8 @@ def multi_steiner(task_hook: TaskHook):
node_name_attribute = "internal_id" # nodes in the input network which is created from RepoTrialDB have primaryDomainId as name attribute
custom_edges = task_hook.parameters.get("custom_edges", False)
# Set number of threads if OpenMP support is enabled.
if gt.openmp_enabled():
gt.openmp_set_num_threads(num_threads)
......@@ -112,7 +115,13 @@ def multi_steiner(task_hook: TaskHook):
if ppi_dataset['licenced'] or pdi_dataset['licenced']:
filename += "_licenced"
filename = os.path.join(task_hook.data_directory, filename + ".gt")
print(filename)
g, seed_ids, _ = read_graph_tool_graph(filename, seeds, id_space, max_deg, target=search_target)
if custom_edges:
edges = task_hook.parameters.get("input_network")['edges']
g = add_edges(g, edges)
seed_map = {g.vertex_properties[node_name_attribute][node]: node for node in seed_ids}
task_hook.set_progress(1 / (float(num_trees + 3)), "Computing edge weights.")
weights = edge_weights(g, hub_penalty)
......
from tasks.task_hook import TaskHook
from tasks.util.custom_edges import add_edges
from tasks.util.read_graph_tool_graph import read_graph_tool_graph
from tasks.util.edge_weights import edge_weights
import os.path
......@@ -79,6 +80,8 @@ def network_proximity(task_hook: TaskHook):
filter_paths = task_hook.parameters.get("filter_paths", True)
custom_edges = task_hook.parameters.get("custom_edges", False)
node_name_attribute = "internal_id" # nodes in the input network which is created from RepoTrialDB have primaryDomainId as name attribute
# Set number of threads if OpenMP support is enabled.
if gt.openmp_enabled():
......@@ -95,6 +98,11 @@ def network_proximity(task_hook: TaskHook):
filename = os.path.join(task_hook.data_directory, filename + ".gt")
# g, seed_ids, _, drug_ids = read_graph_tool_graph(file_path, seeds, "", "", max_deg, False, True, include_non_approved_drugs)
g, seed_ids, drug_ids = read_graph_tool_graph(filename, seeds, id_space, max_deg, True, include_non_approved_drugs, target=search_target)
if custom_edges:
edges = task_hook.parameters.get("input_network")['edges']
g = add_edges(g, edges)
# Computing edge weights.
task_hook.set_progress(1.0 / 8, "Computing edge weights.")
weights = edge_weights(g, hub_penalty)
......
from tasks.util.custom_edges import add_edges
from tasks.util.read_graph_tool_graph import read_graph_tool_graph
from tasks.util.scores_to_results import scores_to_results
from tasks.util.edge_weights import edge_weights
......@@ -195,6 +196,8 @@ def trust_rank(task_hook: TaskHook):
search_target = task_hook.parameters.get("target", "drug-target")
filter_paths = task_hook.parameters.get("filter_paths", True)
custom_edges = task_hook.parameters.get("custom_edges", False)
# Parsing input file.
task_hook.set_progress(0 / 4.0, "Parsing input.")
......@@ -205,7 +208,13 @@ def trust_rank(task_hook: TaskHook):
if ppi_dataset['licenced'] or pdi_dataset['licenced']:
filename += "_licenced"
filename = os.path.join(task_hook.data_directory, filename+".gt")
print(filename)
g, seed_ids, drug_ids = read_graph_tool_graph(filename, seeds, id_space, max_deg, include_indirect_drugs, include_non_approved_drugs, search_target)
if custom_edges:
edges = task_hook.parameters.get("input_network")['edges']
g = add_edges(g, edges)
task_hook.set_progress(1 / 4.0, "Computing edge weights.")
weights = edge_weights(g, hub_penalty, inverse=True)
......
def make_node_id_map(g):
mapping = {}
for node in range(g.num_vertices()):
mapping[g.vertex_properties['internal_id'][node]] = node
return mapping
def add_edges(g, edge_list):
"""
edge list is [{"fom":..., "to":...}, ...]
"""
mapping = make_node_id_map(g)
edge_id_list = []
for edge in edge_list:
a = mapping[edge['from']]
b = mapping[edge['to']]
edge_id_list.append((a, b))
g.add_edge_list(edge_list)
return g
\ No newline at end of file
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