Installation#
Quick install#
Install from PyPI:
pip install nx-backbone
Upgrading from networkx-backbone#
Versions 0.2 and earlier were published as networkx-backbone and
imported as networkx_backbone. From 0.3.0 the package is
nx-backbone, imported as nx_backbone, with no alias for the old
name. Replace the distribution, then change the imports in your code:
pip uninstall networkx-backbone
pip install nx-backbone
Function names and arguments are unchanged. See the Changelog for the other changes in 0.3.0.
Full installation#
For full functionality, install with optional dependencies. NumPy and SciPy
are needed for statistical methods (marginal_likelihood_filter(),
ecm_filter()), bipartite methods
(sdsm(), fdsm()),
doubly_stochastic_filter(),
local_path_index(), and KS measures
(ks_degree(), ks_weight()),
and statistically validated hypergraphs
(statistically_validated_hypergraph()):
pip install "nx-backbone[full]"
The plotting helpers in nx_backbone.visualization need
Matplotlib:
pip install "nx-backbone[viz]"
Calling a function whose optional dependency is missing raises
ImportError; everything else keeps working with NetworkX alone.
pandas is optional and imported only when used: for data-frame input to
to_graph() and the bipartite functions, for the event
tables of from_event_table() and
to_event_table(), and for frequency strings such as
freq="1D" in the temporal module. Install it separately:
pip install pandas
transform_weights() accepts scikit-learn transformers
by duck typing, so scikit-learn is never required.
Hypergraph interoperability#
The from_*/to_* adapters in nx_backbone.hypergraph_io
import their target library lazily, so none of them is a dependency. Install
the ones you use through an extra, or all four with [interop]:
pip install "nx-backbone[xgi]" # or [hypernetx], [hypergraphx], [hat]
pip install "nx-backbone[interop]" # all four
Reading and writing the HIF interchange format
(read_hif(), write_hif()) needs
only the standard library.
The version floors below are the oldest releases that pass the round-trip
tests in tests/test_hypergraph_interop.py: hyperedges, weights, and node
labels survive from_X(to_X(h)) and to_X(from_X(H)), and each library’s
own HIF reader and writer exchange files with ours. The “Interop” CI workflow
runs these tests against the latest releases on every pull request and weekly;
it is not a required check, so an upstream release cannot block unrelated
work.
Extra |
PyPI distribution (import name) |
Version |
Notes |
|---|---|---|---|
|
|
>= 0.9.1 |
Multi-edges kept. xgi’s HIF reader ignores the |
|
|
>= 2.3.10 |
HIF support ( |
|
|
>= 1.7.7 |
No multi-edges: |
|
|
>= 1.1.18 |
Building from an incidence matrix fails in 1.1.14 and 1.1.16.
|
These ranges were tested on Python 3.13 with xgi 0.10.2, HyperNetX 2.4.3, HypergraphX 1.8.0, and HAT 1.1.18 (the latest releases in November 2026) and with the floors above.
Conda installation#
Install from anaconda.org:
conda install -c brianckeegan nx-backbone
Development installation#
Clone the repository and install in editable mode:
git clone https://github.com/brianckeegan/nx-backbone.git
cd nx-backbone
pip install -e ".[dev]"
Run the test suite (including docstring examples) to verify the installation:
pytest --doctest-modules nx_backbone tests
Requirements#
Supported versions follow NetworkX’s: Python 3.12 or newer, and the same minimum versions of NumPy, SciPy, and Matplotlib. CI tests these minimums exactly, along with the latest releases.
Package |
Version |
Status |
|---|---|---|
Python |
>= 3.12 |
Required |
NetworkX |
>= 3.4 |
Required |
NumPy |
>= 2.2 |
Optional (for |
SciPy |
>= 1.15 |
Optional (for |
Matplotlib |
>= 3.10 |
Optional (for |
pandas |
>= 2.3 |
Optional (data-frame input, event tables, frequency strings) |