NEExT: Network Embedding
Experimentation Toolkit
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
- NetworkX
- iGraph
- NumPy
- pandas
- scikit-learn
- XGBoost
A Python library with research
infrastructure built around it.
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.
- graphs
Load graphs
Read CSV files, pandas DataFrames, or NetworkX graphs into a unified GraphCollection — on a NetworkX or iGraph backend.
- features
Create features
Compute built-in structural node features — or define your own in plain Python — across the collection, with k-hop neighborhood aggregation.
- embedding
Build embeddings
Lift node-feature distributions into graph-level vectors with Wasserstein or Sinkhorn optimal transport — or train GNN embeddings (GCN, GraphSAGE, GIN).
- evidenceAUC 0.94F1 0.89ACC 0.91
Train & compare
Fit classifiers or regressors, score variants, and read feature importance for evidence.
Run real experiments on
real scientific structure.
Scientists represent molecules and other structures as graphs, compute transparent structural features, and turn them into machine-learnable vectors — all in a local, reproducible Workbench. No cloud, no upload, no account.
job compute_node_features · started
computing structural node features · 17 atoms · degree, pagerank, clustering, lsme
-
Structure as graphs
Atoms become nodes, bonds become edges — molecules, contact maps, and networks all enter the same pipeline.
-
Features you can defend
Transparent structural node features and feature importance — evidence you can put in a paper.
-
Local & reproducible
Runs on your machine against your own files. Versioned artifacts, no cloud, no upload.
Drive the Workbench from any
MCP-native agent.
The Workbench speaks the Model Context Protocol, so Claude — or any MCP client — can run your whole local pipeline: configure datasets, features, embeddings and models, launch jobs, and read results back. Scoped permissions, human approval for anything destructive, and nothing ever leaves your machine.
Cluster the karate dataset and rank its top features.
- configure embedding write
- run jobs run
- cluster embedding read
- delete artifact needs approval
- configure embedding
- run jobs
- cluster embedding
- ARI
- 0.82
- purity
- 0.89
-
MCP-native
A standards-based Model Context Protocol server — Claude, or any MCP client, drives it out of the box.
-
Scoped & human-approved
Capability scopes gate every call, and anything destructive waits for your explicit approval in the Workbench.
-
Local & private
Runs on 127.0.0.1 against your own files. No cloud, no upload — nothing ever leaves your machine.
Bring your own
graph signals.
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.
import pandas as pd
def compute_feature(graph):
degrees = [graph.G.degree(n) for n in graph.nodes]
return pd.DataFrame({
"node_id": graph.nodes,
"graph_id": graph.graph_id,
"degree_sq_0": [d ** 2 for d in degrees],
})[["node_id", "graph_id", "degree_sq_0"]] From graph data to evidence
in one readable script.
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, computed across the collection
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",
embedding_dimension=16,
)
# Train, score, and compare variants
results = nxt.train_ml_model(graphs, embeddings, model_type="classifier") Install the library.
Launch the Workbench when you need it.
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