From c2fde65994213b93947b543114500a62fae1644c Mon Sep 17 00:00:00 2001
From: George Marchment <georgemarchment@yahoo.fr>
Date: Fri, 11 Oct 2024 15:50:16 +0200
Subject: [PATCH] check if the relevant processes exist in workflow

---
 src/bioflowinsighterror.py | 1 +
 src/workflow.py            | 7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/src/bioflowinsighterror.py b/src/bioflowinsighterror.py
index 82c3a65..a948908 100644
--- a/src/bioflowinsighterror.py
+++ b/src/bioflowinsighterror.py
@@ -42,6 +42,7 @@ class BioFlowInsightError(Exception):
 #* [18] -> something is expected to be defined in a file but is not 
 #* [20] -> The sibworkflow either emits nothing or to many values for a use in an operation 
 #* [22] -> a subworkflow or process defined was defined badly
+#* [24] -> The user gives a relevant process which isn't in the workflow
 
 
 ########################
diff --git a/src/workflow.py b/src/workflow.py
index 03e0146..310bcd4 100644
--- a/src/workflow.py
+++ b/src/workflow.py
@@ -543,6 +543,13 @@ George Marchment, Bryan Brancotte, Marie Schmit, Frédéric Lemoine, Sarah Cohen
         self.nextflow_file.generate_process_dependency_graph(render_graphs = render_graphs, processes_2_remove = self.tab_processes_2_remove)
 
     def generate_user_view(self, relevant_processes = [], render_graphs = True):
+        #Check all relevat processes are in wf
+        workflow_processes = []
+        for p in self.get_processes_called():
+            workflow_processes.append(p.get_name())
+        for p in relevant_processes:
+            if(p not in workflow_processes):
+                raise BioFlowInsightError(f"Process {p} given in relevant processes is not present in the workflow's processes", 24)
         self.iniatilise_tab_processes_2_remove()
         self.nextflow_file.generate_user_view(relevant_processes = relevant_processes, render_graphs = render_graphs, processes_2_remove = self.tab_processes_2_remove)
 
-- 
GitLab