27.5.2 Simplifying and Copying Graphs
You can create a simplified version of the graph by calling the simplify() method.
               
PgxGraph simplify(Collection<VertexProperty<?, ?>> vertexProps, 
         Collection<EdgeProperty<?>> edgeProps, MultiEdges multiEdges, 
         SelfEdges selfEdges, TrivialVertices trivialVertices, 
         Mode mode, String newGraphName)simplify(self, vertex_properties=True, edge_properties=True, keep_multi_edges=False,
                 keep_self_edges=False, keep_trivial_vertices=False, in_place=False, name=None)The first two arguments (vertexProps and
                                        edgeProps) list which properties will be
                                copied into the newly created simplified graph instance. PGX
                                provides convenience constants VertexProperty.ALL,
                                        EdgeProperty.ALL and
                                        VertexProperty.NONE,
                                        EdgeProperty.NONE to specify all properties
                                or none properties to be stored, respectively.
                  
The next three arguments determine which operations will be performed to simplify the graph.
multiEdges: ifMultiEdges.REMOVE_MULTI_EDGES, eliminate multiple edges between a source vertex and a destination vertex, that is, leave at most one edge between two vertices.MultiEdges.KEEP_MULTI_EDGESindicates to keep them. By default, PGX picks one edge out of the multi-edges and takes its properties. See Advanced Multi-Edge Handling for more fine-grained control over the edge properties during simplification.selfEdges: ifSelfEdges.REMOVE_SELF_EDGES, eliminate every edge whose source and destination are the same vertex.SelfEdges.KEEP_MULTI_EDGESindicates to keep them.trivialVertices: ifTrivialVertices.REMOVE_TRIVIAL_VERTICES, eliminate all the vertices that have neither incoming edges nor outgoing edges.TrivialVertices.KEEP_TRIVIAL_VERTICESindicates to keep them.
The mode argument, if set to
                                        Mode.MUTATE_IN_PLACE , requests that the
                                mutation occurs directly on the specified graph instance without
                                creating a new one. If set to Mode.CREATE_COPY, the
                                method will create a new graph instance with the new name in
                                        newGraphName. If
                                        newGraphName is omitted (or
                                        null), PGX will generate a unique graph
                                name.
                  
The return value of this method is the simplified
                                        PgxGraph instance.
                  
The Mode.MUTATE_IN_PLACE option is only
                                applicable if the graph is marked as mutable. Every graph is
                                immutable by default when loaded into PGX. To make a
                                        PgxGraph mutable, the client should create
                                a private copy of the graph first, using one of the following
                                methods:
                  
PgxGraph clone()
PgxGraph clone(String newGraphName)
PgxGraph clone(Collection<VertexProperty<?, ?>> vertexProps, Collection<EdgeProperty<?>> edgeProps, String newGraphName)clone(self, vertex_properties=True, edge_properties=True, name=None)As with simplify(), the user can specify
                                optional properties of the graph to copy with
                                        vertexProps and edgeProps.
                                If no properties are specified, all of the original graph's
                                properties will be copied into the new graph instance. The user can
                                specify the name of the newly created graph instance with
                                        newGraphName.
                  
Parent topic: Graph Mutation and Subgraphs