code: def clone(self, substitutions, **kwargs):
          
          dag = self.explain(**kwargs)
          dag.substitutions.update(substitutions)
          cloned_dag = dag.clone(ignore=self.ignore)
          return self.update_nodes(self.add_edges(cloned_dag))
docs: Clone a DAG.