easygraph.convert module#
- easygraph.convert.dict_to_hypergraph(data, max_order=None, is_dynamic=False)[source]#
A function to read a file in a standardized JSON format.
- Parameters:
data (dict) – A dictionary in the hypergraph JSON format
max_order (int, optional) – Maximum order of edges to add to the hypergraph
- Returns:
The loaded hypergraph
- Return type:
A Hypergraph object
- Raises:
EasyGraphError – If the JSON is not in a format that can be loaded.
See also
read_json
- easygraph.convert.from_edgelist(edgelist, create_using=None)[source]#
Returns a graph from a list of edges.
- Parameters:
edgelist (list or iterator) – Edge tuples
create_using (EasyGraph graph constructor, optional (default=eg.Graph)) – Graph type to create. If graph instance, then cleared before populated.
Examples
>>> edgelist = [(0, 1)] # single edge (0,1) >>> G = eg.from_edgelist(edgelist)
or
>>> G = eg.Graph(edgelist) # use Graph constructor
- easygraph.convert.from_networkx(g: nx.Graph | nx.DiGraph) Graph | DiGraph [source]#
Convert a NetworkX graph to an EasyGraph graph.
- easygraph.convert.from_pyg(data: torch_geometric.data.Data, node_attrs: Iterable[str] | None = None, edge_attrs: Iterable[str] | None = None, graph_attrs: Iterable[str] | None = None, to_undirected: bool | str | None = False, remove_self_loops: bool = False) Any [source]#
Converts a
torch_geometric.data.Data
instance to aeasygraph.Graph
ifto_undirected
is set toTrue
, or a directedeasygraph.DiGraph
otherwise.- Parameters:
data (torch_geometric.data.Data) – The data object.
node_attrs (iterable of str, optional) – The node attributes to be copied. (default:
None
)edge_attrs (iterable of str, optional) – The edge attributes to be copied. (default:
None
)graph_attrs (iterable of str, optional) – The graph attributes to be copied. (default:
None
)to_undirected (bool or str, optional) – If set to
True
or “upper”, will return aeasygraph.Graph
instead of aeasygraph.DiGraph
. The undirected graph will correspond to the upper triangle of the corresponding adjacency matrix. Similarly, if set to “lower”, the undirected graph will correspond to the lower triangle of the adjacency matrix. (default:False
)remove_self_loops (bool, optional) – If set to
True
, will not include self loops in the resulting graph. (default:False
)
Examples
>>> import torch_geometric as pyg
>>> Data = pyg.data.Data # type: ignore >>> edge_index = torch.tensor([ ... [0, 1, 1, 2, 2, 3], ... [1, 0, 2, 1, 3, 2], ... ]) >>> data = Data(edge_index=edge_index, num_nodes=4) >>> from_pyg(data) <easygraph.classes.digraph.DiGraph at 0x2713fdb40d0>
- easygraph.convert.to_easygraph_graph(data, create_using=None, multigraph_input=False)[source]#
Make a EasyGraph graph from a known data structure.
The preferred way to call this is automatically from the class constructor
>>> d = {0: {1: {"weight": 1}}} # dict-of-dicts single edge (0,1) >>> G = eg.Graph(d)
instead of the equivalent
>>> G = eg.from_dict_of_dicts(d)
- Parameters:
data (object to be converted) –
- Current known types are:
any EasyGraph graph dict-of-dicts dict-of-lists container (e.g. set, list, tuple) of edges iterator (e.g. itertools.chain) that produces edges generator of edges Pandas DataFrame (row per edge) numpy matrix numpy ndarray scipy sparse matrix pygraphviz agraph
create_using (EasyGraph graph constructor, optional (default=eg.Graph)) – Graph type to create. If graph instance, then cleared before populated.
multigraph_input (bool (default False)) – If True and data is a dict_of_dicts, try to create a multigraph assuming dict_of_dict_of_lists. If data and create_using are both multigraphs then create a multigraph from a multigraph.
- easygraph.convert.to_networkx(g: Graph | DiGraph) nx.Graph | nx.DiGraph [source]#
Convert an EasyGraph to a NetworkX graph.
- easygraph.convert.to_pyg(G: Any, group_node_attrs: List[str] | all | None = None, group_edge_attrs: List[str] | all | None = None) torch_geometric.data.Data [source]#
Converts a
easygraph.Graph
oreasygraph.DiGraph
to atorch_geometric.data.Data
instance.- Parameters:
G (easygraph.Graph or easygraph.DiGraph) – A easygraph graph.
group_node_attrs (List[str] or all, optional) – The node attributes to be concatenated and added to
data.x
. (default:None
)group_edge_attrs (List[str] or all, optional) – The edge attributes to be concatenated and added to
data.edge_attr
. (default:None
)
Note
All
group_node_attrs
andgroup_edge_attrs
values must be numeric.Examples
>>> import torch_geometric as pyg
>>> pyg_to_networkx = pyg.utils.convert.to_networkx # type: ignore >>> networkx_to_pyg = pyg.utils.convert.from_networkx # type: ignore >>> Data = pyg.data.Data # type: ignore >>> edge_index = torch.tensor([ ... [0, 1, 1, 2, 2, 3], ... [1, 0, 2, 1, 3, 2], ... ]) >>> data = Data(edge_index=edge_index, num_nodes=4) >>> g = pyg_to_networkx(data) >>> # A `Data` object is returned >>> to_pyg(g) Data(edge_index=[2, 6], num_nodes=4)