Managers and views
annnet exposes several manager accessors and view utilities to organize functionality.
SliceManager (G.slices)
- Create/delete:
G.add_slice(id, **attrs),G.drop_slice(id) - Activate:
G.slices.active = id - List:
G.list_slices(include_default=True) - Memberships:
G.add_vertex_to_slice(id, v),G.add_edge_to_slice(id, e) - Set algebra:
G.slice_union(ids),G.slice_intersection(ids),G.slice_difference(a, b) - Per‑slice edge overrides:
G.set_edge_slice_attrs(id, e, weight=...),G.get_effective_edge_weight(e, slice=id)
LayerManager (G.layers)
- Define aspects/layers:
G.set_aspects(aspects=[...], elem_layers={...}) - Presence:
G.add_presence(v, layer_tuple),G.has_presence(v, layer_tuple) - Edge types:
G.add_intra_edge_nl(u, v, layer),G.add_inter_edge_nl(u, layer_u, v, layer_v),G.add_coupling_edge_nl(v, layer_a, layer_b) - Matrices:
G.supra_adjacency(),G.supra_laplacian(kind="comb"|"norm"),G.adjacency_tensor_view()
IndexManager (G.idx)
- Vertex/entity maps:
entity_to_idx,idx_to_entity,entity_types - Edge maps:
edge_to_idx,idx_to_edge - Queries:
G.get_edge_ids(u, v),G.has_vertex(v),G.has_edge(edge_id=...)
CacheManager (G.cache)
- Materialize CSR/CSC:
G.cache.ensure_csr(),G.cache.ensure_csc() - Clear caches:
G.cache.clear()
Graph views and subgraphs
- Read‑only filter view:
G.view(vertices=[...], edges=[...], slices=[...]) - Materialized subgraphs:
- Vertex‑induced:
G.subgraph(vertices) - Edge‑induced:
G.edge_subgraph(edges) - Combined:
G.extract_subgraph(vertices=[...], edges=[...])
Direction and hyperedges
- Edge direction: graph default via
Graph(directed=...), per‑edge override viaadd_edge(..., edge_directed=...) - Hyperedges:
- Undirected:
G.add_hyperedge(members=[...], weight=..., tag=...) - Directed head→tail:
G.add_hyperedge(head=[...], tail=[...], weight=...) - Stoichiometry:
G.set_hyperedge_coeffs(eid, {vertex: coeff, ...})
Backend interoperability (proxies)
- NetworkX:
G.nx.<algo>(G); concrete graph viaG.nx.backend(directed=..., hyperedge_mode="skip|expand", slice=..., simple=True) - igraph:
G.ig.<algo>(G)(if python‑igraph installed) - graph‑tool:
G.gt.<module>.<algo>(...)(if graph‑tool installed)
See Architecture Overview for deeper context and data structures.
Cheatsheet
| Area | Method | One‑liner |
|---|---|---|
| Slices | G.add_slice(id, **attrs) |
Create a slice with optional metadata |
| Slices | G.slices.active = id |
Set current active slice |
| Slices | G.slice_union(ids) |
Union of multiple slices (membership) |
| Slices | G.set_edge_slice_attrs(id, e, weight=...) |
Override edge attrs in a slice |
| Layers | G.set_aspects(aspects, elem_layers) |
Define Kivelä aspects/layers |
| Layers | G.add_presence(v, layer_tuple) |
Declare vertex presence in a layer |
| Layers | G.supra_adjacency() |
Build supra‑adjacency matrix |
| Index | G.get_edge_ids(u, v) |
List edge IDs between two vertices |
| Index | G.has_vertex(v) / G.has_edge(...) |
Membership checks |
| Cache | G.cache.ensure_csr() |
Materialize CSR; ensure_csc() for CSC |
| Views | G.view(vertices=..., edges=..., slices=...) |
Read‑only filtered view |
| Subgraphs | G.subgraph(vertices) |
Vertex‑induced subgraph |
| Subgraphs | G.edge_subgraph(edges) |
Edge‑induced subgraph |
| Direction | Graph(directed=...) |
Default directionality at graph level |
| Direction | add_edge(..., edge_directed=...) |
Per‑edge direction override |
| Hyperedges | add_hyperedge(members=[...]) |
Undirected hyperedge |
| Hyperedges | add_hyperedge(head=[...], tail=[...]) |
Directed hyperedge |
| Proxies | G.nx.backend(..., simple=True) |
Get NX graph; collapse multiedges |