Skip to main content

networkx_backbone

Backbone extraction algorithms for complex networks, built on NetworkX.

This library provides 47 functions across 8 modules for extracting backbone structures from weighted and unweighted networks.

Full documentation: https://www.brianckeegan.com/networkx_backbone/

Installation

pip install networkx-backbone

For full functionality (required for statistical tests, bipartite methods, and some structural methods):

pip install networkx-backbone[full]

Or install from source:

git clone https://github.com/brianckeegan/networkx_backbone.git
cd networkx_backbone
pip install -e ".[full]"

Modules

Module Description Key Functions
statistical Hypothesis-testing methods disparity_filter, noise_corrected_filter, marginal_likelihood_filter, ecm_filter, lans_filter
structural Topology-based methods global_threshold_filter, strongest_n_ties, high_salience_skeleton, metric_backbone, ultrametric_backbone, doubly_stochastic_filter, h_backbone, modularity_backbone, planar_maximally_filtered_graph, maximum_spanning_tree_backbone
proximity Neighborhood-similarity scoring jaccard_backbone, dice_backbone, cosine_backbone, hub_promoted_index, hub_depressed_index, adamic_adar_index, resource_allocation_index, local_path_index, and more
hybrid Combined approaches glab_filter
bipartite Bipartite projection backbones sdsm, fdsm
unweighted Sparsification for unweighted graphs sparsify, lspar, local_degree
filters Post-hoc filtering utilities threshold_filter, fraction_filter, boolean_filter, consensus_backbone
measures Evaluation and comparison node_fraction, edge_fraction, weight_fraction, reachability, ks_degree, ks_weight, compare_backbones

Quick Start

import networkx as nx
import networkx_backbone as nb

# Create a weighted graph
G = nx.karate_club_graph()
for u, v in G.edges():
    G[u][v]["weight"] = 1.0

# Extract backbone using the disparity filter
H = nb.disparity_filter(G)

# Filter to keep only significant edges (p < 0.05)
backbone = nb.threshold_filter(H, "disparity_pvalue", 0.05)

# Compare backbone to original
print(f"Edges kept: {nb.edge_fraction(G, backbone):.1%}")
print(f"Nodes kept: {nb.node_fraction(G, backbone):.1%}")

Proximity-based scoring

# Score edges by Jaccard similarity of endpoint neighborhoods
H = nb.jaccard_backbone(G)

# Keep only the top 20% most structurally embedded edges
backbone = nb.fraction_filter(H, "jaccard", 0.2, ascending=False)

Bipartite backbone

B = nx.Graph()
B.add_edges_from([(1, "a"), (1, "b"), (2, "a"), (2, "c"), (3, "b"), (3, "c")])

backbone = nb.sdsm(B, agent_nodes=[1, 2, 3], alpha=0.05)

Comparing multiple methods

backbones = {
    "disparity": nb.threshold_filter(nb.disparity_filter(G), "disparity_pvalue", 0.05),
    "mst": nb.maximum_spanning_tree_backbone(G),
}
results = nb.compare_backbones(G, backbones)

Dependencies

  • Required: networkx >= 3.0
  • Optional: numpy >= 1.23, scipy >= 1.9 (needed for statistical methods, bipartite methods, doubly stochastic filter, local path index, and KS measures)

Testing

pip install -e ".[test]"
pytest

References

Key papers behind the implemented methods:

Other libraries and datasets:

License

BSD 3-Clause License. See LICENSE for details.

Release files for networkx-backbone 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for networkx-backbone 0.1.0
File Size Uploaded
networkx_backbone-0.1.0.tar.gz 51.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for networkx-backbone 0.1.0
File Interpreter ABI Platform
networkx_backbone-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 81.5 kB

Release files / networkx_backbone-0.1.0.tar.gz

Download URL networkx_backbone-0.1.0.tar.gz
Size 51.4 kB
Tags Source
SHA-256 checksum
How to use checksums
450f2728bea42088d3655767fdacfc0ad225d05720659bd1f00261a603fceb43
BLAKE2b-256 checksum
How to use checksums
ed5fa10a16490a0663f3479ae26fb4b79ef13736bd1184af5c2dc9806d2c446d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 12, 2026.

Transparency log

Release files / networkx_backbone-0.1.0-py3-none-any.whl

Download URL networkx_backbone-0.1.0-py3-none-any.whl
Size 30.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dee577b50e25c7be0600216e8b388fd351fcebea087f121114a4dd517e07bad6
BLAKE2b-256 checksum
How to use checksums
fd7e26119c65e0f3786d7fc8991e392d2eee32f443fd471f358cc0a5d146914f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page