diff --git a/src/call.py b/src/call.py
index b79c9b7cb7d542331f30a7f1cb75067168c92f15..7740b65c623e9ad56ee8c62b521f160e504092c8 100644
--- a/src/call.py
+++ b/src/call.py
@@ -52,7 +52,7 @@ class Call(Executor):
         tab += [self.first_element_called]
         for para in self.parameters:
             if(para.get_type()=="Call"):
-                tab = para.get_elements_called(tab = tab.copy(), first_call = False)
+                tab = para.get_elements_called(tab_input = tab.copy(), first_call = False)
         temp = list(set(tab))
         #del tab
         return temp
diff --git a/src/function.py b/src/function.py
index 9c55e969ae75cf2c9765c3ad81c3a0bb9bddb2a5..8c9ec00898d44f5123474c8ea93681d4fc408c7f 100644
--- a/src/function.py
+++ b/src/function.py
@@ -23,5 +23,8 @@ class Function(Nextflow_Building_Blocks):
     def get_name(self):
         return self.name
     
+    def add_2_rocrate(self, dico, parent_key):
+        None
+    
     
 
diff --git a/src/graph.py b/src/graph.py
index 73cca9fb6e1f10617376faef9bfdf96175e855ca..99c98ccc4d3017ae88863a1820007f6f972845f2 100644
--- a/src/graph.py
+++ b/src/graph.py
@@ -23,7 +23,48 @@ class Graph():
         self.dico_flattened = {}
 
 
-    def initialise(self):
+    
+
+    def initialise(self, processes_2_remove = []):
+
+        def get_node_id(dico, process):
+            for node in dico["nodes"]:
+                if(node['name']==process):
+                    return node['id']
+            for sub in dico['subworkflows']:
+                res = get_node_id(dico['subworkflows'][sub], process)
+                if(res!=-1):
+                    return res
+            return -1
+
+        #This function removes the process -> by the simpliest way -> it doesn't create new links
+        def remove_node(dico, node_id):
+            #Remove nodes
+            nodes_to_remove = []
+            for node in dico["nodes"]:
+                if(node['id']==node_id):
+                    nodes_to_remove.append(node)
+            for node in nodes_to_remove:
+                dico["nodes"].remove(node)
+
+            #Remove edges
+            edges_to_remove = []
+            for edge in dico["edges"]:
+                if(edge['A']==node_id):
+                    edges_to_remove.append(edge)
+                if(edge['B']==node_id):
+                    edges_to_remove.append(edge)
+            for edge in edges_to_remove:
+                dico["edges"].remove(edge)
+
+            for sub in dico['subworkflows']:
+                remove_node(dico['subworkflows'][sub], node_id)
+
+        for process in processes_2_remove:
+            node_id = get_node_id(self.full_dico, process)
+            remove_node(self.full_dico, node_id)
+
+
         self.get_graph_wo_branch_operations()
         self.get_graph_wo_operations()
 
diff --git a/src/nextflow_file.py b/src/nextflow_file.py
index e733855085e1e2f12ec0a1e19267b7080c71c8f6..b254a1d131689a86b1fe203fd3bc4b93bcc9c74c 100644
--- a/src/nextflow_file.py
+++ b/src/nextflow_file.py
@@ -637,9 +637,9 @@ class Nextflow_File(Nextflow_Building_Blocks):
         if(self.graph==None):
             self.graph = Graph(self)
 
-    def generate_all_graphs(self, render_graphs = True):
+    def generate_all_graphs(self, render_graphs = True, processes_2_remove = []):
         #Initialisation (obligatory)
-        self.graph.initialise()
+        self.graph.initialise(processes_2_remove = processes_2_remove)
 
         #Generate the different graphs
         self.graph.get_full_graph(render_graphs = render_graphs)
diff --git a/src/workflow.py b/src/workflow.py
index 6e0fcd3dea1509bee0a6958fd8fe9934bf801326..5342a54dbb774f56c1606f6f5936bfed3da3de56 100644
--- a/src/workflow.py
+++ b/src/workflow.py
@@ -123,5 +123,5 @@ class Workflow:
         self.nextflow_file.initialise()
         self.initialise_rocrate()
 
-    def generate_all_graphs(self, render_graphs = True):
-        self.nextflow_file.generate_all_graphs(render_graphs = render_graphs)
+    def generate_all_graphs(self, render_graphs = True, processes_2_remove = []):
+        self.nextflow_file.generate_all_graphs(render_graphs = render_graphs, processes_2_remove = processes_2_remove)