Grounded in the literature
Wasserstein and Sinkhorn embeddings build on optimal transport; the β* node metric implements published community-aware structure.
An open-source Python framework for network science and graph machine learning.
job graph_embeddings · started
computing wasserstein embeddings · 3 communities detected
Built on the scientific Python stack you already trust
One coherent pipeline from graph data to research evidence. Use it from a script or notebook today; reach for the Workbench when a project needs lineage and structure.
Read CSV, DataFrames, URLs, or NetworkX graphs into a unified GraphCollection — NetworkX or iGraph backend.
Compute built-in or custom structural node features with k-hop neighborhood aggregation.
Turn node-feature distributions into graph-level vectors with Wasserstein or Sinkhorn embeddings.
Fit classifiers or regressors, score variants, and read feature importance for evidence.
Compute graph-theoretic node features across an entire collection in parallel, with neighborhood aggregation that captures structure at multiple k-hop scales.
The β* feature implements the community-aware node metric from arXiv 2311.04730. Register your own metrics with a single Python function.
NEExT lifts node-feature distributions into graph-level embeddings using optimal-transport methods that preserve structural geometry — ready for any downstream model.
approx_wasserstein Fast approximate Wasserstein exact_wasserstein Exact optimal-transport distance sinkhorn Entropic Sinkhorn vectorizer Prefer a UI? The NEExT Workbench wraps the same library in a desktop-style web app that runs entirely on your machine — no cloud, no upload, no account.
Datasets, Features, Embeddings, and Models — each a Space with its own commands.
Projects, datasets, feature sets, embeddings, and models stay connected as a DAG.
Every run is a tracked job with readable logs in the command window.
Register any structural metric as a plain Python function and run it inside the same pipeline as the built-ins — from a script, a module, or a notebook cell. In the Workbench, the same contract powers custom Feature Create.
Return a DataFrame ordered node_id, graph_id, feature_0… — that's the whole contract.
def compute_feature(graph):
nodes = list(graph.nodes)
degrees = [graph.G.degree(n) for n in nodes]
return pd.DataFrame({"node_id": nodes,
"graph_id": graph.graph_id,
"degree_sq_0": [d ** 2 for d in degrees],
})[["node_id", "graph_id", "degree_sq_0"]] from NEExT import NEExT
nxt = NEExT()
# Load graphs into one collection (NetworkX or iGraph)
graphs = nxt.read_from_csv(
edges_path="edges.csv",
node_graph_mapping_path="node_graph_mapping.csv",
graph_label_path="graph_labels.csv",
graph_type="igraph",
)
# Structural node features, multi-scale
features = nxt.compute_node_features(graphs, feature_list=["all"])
# Graph-level embeddings via optimal transport
embeddings = nxt.compute_graph_embeddings(
graphs, features, embedding_algorithm="approx_wasserstein",
)
# Train, score, and compare variants
results = nxt.train_ml_model(graphs, embeddings, model_type="classifier") NEExT is a research instrument first — transparent methods, versioned artifacts, and evidence you can defend, whether you drive it from Python or the Workbench.
Wasserstein and Sinkhorn embeddings build on optimal transport; the β* node metric implements published community-aware structure.
The Workbench runs on 127.0.0.1 against your own files. No upload, no account, no data leaving your machine.
NEExT is permissively licensed and built on NetworkX, iGraph, and the scientific Python stack you already know.
Reference: Network Embedding Exploration Tool (NEExT) · β* community-aware feature: arXiv 2311.04730.
Pure Python, runs anywhere. Python 3.9–3.12. The Workbench is one extra install away.
$ pip install NEExT $ pip install "NEExT[workbench]" && neext-workbench