diff --git a/src/graph.py b/src/graph.py
index ffff0593bf161cf927460e106a039610b6234f5f..b9cd44248ed3b3fd90fb3739aa73aa3842729bc9 100644
--- a/src/graph.py
+++ b/src/graph.py
@@ -35,6 +35,7 @@ class Graph():
         #Dico flattened (without any subworkflows)
         self.dico_flattened = {}
         self.initialised = False
+        self.processes_2_remove = []
 
 
     def get_process_dependency_graph(self):
@@ -42,7 +43,8 @@ class Graph():
     
 
     def initialise(self, processes_2_remove = []):
-        if(not self.is_initialised()):
+        if(not self.is_initialised() or (processes_2_remove != [] and self.processes_2_remove==[])):
+            self.processes_2_remove = processes_2_remove
             self.initialised = True
             self.full_dico = self.workflow.get_structure()
             with open(f"{self.get_output_dir()}/graphs/specification_graph.json", 'w') as output_file :
@@ -428,13 +430,15 @@ class Graph():
     #GENERATE USER VIEW
     #============================
 
-    def get_user_view_graph(self, relevant_processes = []):
+    def get_user_view_graph(self, relevant_processes = [], use_process_dependency_graph = False):
         #For now i'm only gonna work from the flattened dico
-        #self.initialise_flattened_dico(self.dico_process_dependency_graph)
-        self.initialise_flattened_dico(self.full_dico)
+        if(use_process_dependency_graph):
+            self.initialise_flattened_dico(self.dico_process_dependency_graph)
+        else:
+            self.initialise_flattened_dico(self.full_dico)
         dico = remove_artificial_nodes(self.dico_flattened)
 
-        self.user_view, self.new_nodes_user_view = relev_user_view_builder(dico, relevant_modules=relevant_processes, show_operations = False)
+        self.user_view, self.new_nodes_user_view = relev_user_view_builder(dico, relevant_modules=relevant_processes)
 
         with open(self.get_output_dir()/ "graphs/user_view.json", 'w') as output_file :
             json.dump(self.user_view, output_file, indent=4)
@@ -447,9 +451,9 @@ class Graph():
         #return self.user_view, user_view_with_subworkflows
         return self.user_view
     
-    def generate_user_view(self, relevant_processes = [], render_graphs = True):
+    def generate_user_view(self, relevant_processes = [], render_graphs = True, use_process_dependency_graph = False):
         #user_view, user_view_with_subworkflows = self.get_user_view_graph(relevant_processes = relevant_processes)
-        user_view = self.get_user_view_graph(relevant_processes = relevant_processes)
+        user_view = self.get_user_view_graph(relevant_processes = relevant_processes, use_process_dependency_graph = use_process_dependency_graph)
         #self.user_view_with_subworkflows = user_view_with_subworkflows
         generate_graph(self.get_output_dir()/'graphs'/"user_view", user_view, label_edge=True, label_node=True, render_graphs = render_graphs, root = False, relevant_nodes = copy.deepcopy(relevant_processes))
         #generate_graph(self.get_output_dir()/'graphs'/"user_view_with_subworkflows", user_view_with_subworkflows, label_edge=True, label_node=True, render_graphs = render_graphs, root = False, relevant_nodes = copy.deepcopy(relevant_processes))
diff --git a/src/outils_graph.py b/src/outils_graph.py
index 08b71a5dfb5578e6e38e131a550c054471706ca8..6b4646ec177cc36104c9fbabaad6254976c5b56a 100644
--- a/src/outils_graph.py
+++ b/src/outils_graph.py
@@ -835,7 +835,7 @@ def get_color_node(node, new_nodes):
     prop = 256- int(127*len(node)/max)
     return rgb_to_hex(prop, prop, prop)
 
-def relev_user_view_builder(dico_param, relevant_modules, show_operations = True):
+def relev_user_view_builder(dico_param, relevant_modules):
     import time
     dico = copy.deepcopy(dico_param)
     tag = str(time.time())
@@ -966,21 +966,14 @@ def relev_user_view_builder(dico_param, relevant_modules, show_operations = True
         new_name = get_name_new_node(get_names_tab(dico, new_nodes[i]), relevant_modules)
         name_printed = new_name.split(tag)[0]
         shape = "ellipse"
-        if(show_operations):
-            if(name_printed==""):
-                shape = "point"
-            node = {"id": '_$$_'.join(new_nodes[i]).replace('<', '').replace('>', ''),
-                    "name": name_printed,
-                    "shape": shape,
-                    "xlabel": f"{len(new_nodes[i])}",
-                    "fillcolor": get_color_node(new_nodes[i], new_nodes)}
-        else:
-            if(name_printed!=""):
-                node = {"id": '_$$_'.join(new_nodes[i]).replace('<', '').replace('>', ''),
-                    "name": name_printed,
-                    "shape": shape,
-                    "xlabel": f"{len(new_nodes[i])}",
-                    "fillcolor": get_color_node(new_nodes[i], new_nodes)}
+        if(name_printed==""):
+            shape = "point"
+        node = {"id": '_$$_'.join(new_nodes[i]).replace('<', '').replace('>', ''),
+                "name": name_printed,
+                "shape": shape,
+                "xlabel": f"{len(new_nodes[i])}",
+                "fillcolor": get_color_node(new_nodes[i], new_nodes)}
+
 
         #If relevant module -> color it differently
         if(new_name in relevant_modules):
@@ -997,13 +990,12 @@ def relev_user_view_builder(dico_param, relevant_modules, show_operations = True
                     if(edge["A"].replace('<', '').replace('>', '') in nA["id"] 
                        and edge["B"].replace('<', '').replace('>', '') in nB["id"]
                        and edge_string not in added_edges):#So we don't have dupliacte edges
-                        if(show_operations or ((not show_operations) and nA["id"]!=nB["id"])):
-                            new_dico["edges"].append({
-                                "A": nA["id"],
-                                "B": nB["id"],
-                                "label": ""
-                                })
-                            added_edges.append(edge_string)
+                        new_dico["edges"].append({
+                            "A": nA["id"],
+                            "B": nB["id"],
+                            "label": ""
+                            })
+                        added_edges.append(edge_string)
     
     #The output nodes are the nodes which their outputs aren't connected to anything else 
     #TODO -> remove these comments if you want to root the graph
diff --git a/src/workflow.py b/src/workflow.py
index 371af87930f3bd56ba0e0c32a6c7ecce988586c3..3ce11d064a076f47867bac8b0fe4d246130ba980 100644
--- a/src/workflow.py
+++ b/src/workflow.py
@@ -1019,9 +1019,9 @@ George Marchment, Bryan Brancotte, Marie Schmit, Frédéric Lemoine, Sarah Cohen
         return relevant_processes
 
 
-    def generate_user_view(self, relevant_processes = [], render_graphs = True, processes_2_remove = []):
+    def generate_user_view(self, relevant_processes = [], render_graphs = True, processes_2_remove = [], use_process_dependency_graph = False):
         self.graph.initialise(processes_2_remove = processes_2_remove)
-        self.graph.generate_user_view(relevant_processes = relevant_processes, render_graphs = render_graphs)
+        self.graph.generate_user_view(relevant_processes = relevant_processes, render_graphs = render_graphs, use_process_dependency_graph = use_process_dependency_graph)
 
 
     #I do not recommand that the dev uses the same name for the channels inside and outside the channels