From 01ede27d59122be97cc9c986d2f65367a40b9a03 Mon Sep 17 00:00:00 2001
From: AndiMajore <andi.majore@googlemail.com>
Date: Thu, 7 Jul 2022 20:44:42 +0200
Subject: [PATCH] trying to fix read_graph_tool_graph.py

Former-commit-id: f162be131dde4722c7f6d13c1b839ca753d779fd
---
 supervisord.conf                    |  2 ++
 tasks/trust_rank.py                 |  2 ++
 tasks/util/read_graph_tool_graph.py | 25 ++++++++++++++++---------
 3 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/supervisord.conf b/supervisord.conf
index 00d6fbf..dd85c22 100755
--- a/supervisord.conf
+++ b/supervisord.conf
@@ -20,3 +20,5 @@ autostart=true
 autorestart=true
 stdout_logfile=/dev/stdout
 stdout_logfile_maxbytes=0
+stderr_logfile=/dev/stderr
+stderr_logfile_maxbytes=0
diff --git a/tasks/trust_rank.py b/tasks/trust_rank.py
index 42950ec..890c6a5 100755
--- a/tasks/trust_rank.py
+++ b/tasks/trust_rank.py
@@ -200,6 +200,8 @@ def trust_rank(task_hook: TaskHook):
     task_hook.set_progress(0 / 4.0, "Parsing input.")
     file_path = os.path.join(task_hook.data_directory, f"internal_{ppi_dataset['name']}_{pdi_dataset['name']}.gt")
     g, seed_ids, drug_ids = read_graph_tool_graph(file_path, seeds, max_deg, include_indirect_drugs, include_non_approved_drugs, search_target)
+    print(seed_ids)
+    print(drug_ids)
     task_hook.set_progress(1 / 4.0, "Computing edge weights.")
     weights = edge_weights(g, hub_penalty, inverse=True)
     
diff --git a/tasks/util/read_graph_tool_graph.py b/tasks/util/read_graph_tool_graph.py
index 2749bc7..d86de27 100755
--- a/tasks/util/read_graph_tool_graph.py
+++ b/tasks/util/read_graph_tool_graph.py
@@ -68,7 +68,7 @@ def read_graph_tool_graph(file_path, seeds, max_deg, include_indirect_drugs=Fals
         if node_type == d_type:
             if include_non_approved_drugs:
                 drug_ids.append(node)
-            elif not include_non_approved_drugs:
+            else:
                 drug_groups = g.vertex_properties["status"][node].split(', ')
                 if "approved" in drug_groups:
                     drug_ids.append(node)
@@ -81,17 +81,24 @@ def read_graph_tool_graph(file_path, seeds, max_deg, include_indirect_drugs=Fals
     # Delete edges that should be ignored or are not contained in the selected dataset.
     deleted_edges = []
     if (drug_ids and not include_indirect_drugs):  # If only_direct_drugs should be included, remove any drug-protein edges that the drug is not a direct neighbor of any seeds
-        direct_drugs = []
+        direct_drugs = set()
         for edge in g.edges():
-            # if g.edge_properties["type"][edge] == drug_protein and (edge.target() in seed_ids or edge.source() in seed_ids):
-            if edge.target() in seed_ids or edge.source() in seed_ids:
-                if g.vertex_properties["type"][edge.target()] == d_type:
-                    direct_drugs.append(edge.target())
-                elif g.vertex_properties["type"][edge.source()] == d_type:
-                    direct_drugs.append(edge.source())
+            if g.vertex_properties["type"][edge.target()] == d_type and edge.source() in seed_ids:
+                direct_drugs.add(edge.target())
+            elif g.vertex_properties["type"][edge.source()] == d_type and edge.target() in seed_ids:
+                direct_drugs.add(edge.source())
+        for drug in direct_drugs:
+            print(int(drug))
         for edge in g.edges():
-            if g.edge_properties["type"][edge] == 'drug-protein' and (edge.target() not in direct_drugs and edge.source() not in direct_drugs):
+            if g.edge_properties["type"][edge] == 'drug-protein':
+                if g.vertex_properties["type"][edge.target()] == d_type and edge.target() not in direct_drugs:
                     deleted_edges.append(edge)
+                    if int(edge.target()) in drug_ids:
+                        drug_ids.remove(int(edge.target()))
+                elif g.vertex_properties["type"][edge.source()] == d_type and edge.source() not in direct_drugs:
+                    deleted_edges.append(edge)
+                    if int(edge.source()) in drug_ids:
+                        drug_ids.remove(int(edge.source()))
 
     g.set_fast_edge_removal(fast=True)
     for edge in deleted_edges:
-- 
GitLab