factcircuit
FactCircuit: an auditable claim-and-evidence verification loop with immutable provenance, staged checks, bounded retrieval, and reproducible evaluation.
Large-scale network visualization by k-core, k-dense and d-core decomposition
Translation pending
DataPythonGitHub @CoNexDatOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Visualize large networks by k-core, k-dense and d-core decomposition. Python rewrite of the LaNet-vi C++ tool, with CLI and API.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
LaNet-vi draws large networks so that their structure is readable at a glance: nodes are placed in concentric rings by their k-core (or k-dense, or d-core) index, the densest core at the center, with node size following the degree and colors following the index. It is the Python version of the C++ LaNet-vi that produced the well-known Internet AS-level maps (Alvarez-Hamelin, Dall'Asta, Barrat & Vespignani, NIPS 2005; Beiró, Alvarez-Hamelin & Busch, New J. Phys. 2008), and since 5.1.0 it follows the original algorithms.Read the full README ↗
Large-scale network visualization by k-core decomposition
LaNet-vi draws large networks so that their structure is readable at a glance: nodes are placed in concentric rings by their k-core (or k-dense, or d-core) index, the densest core at the center, with node size following the degree and colors following the index. It is the Python version of the C++ LaNet-vi that produced the well-known Internet AS-level maps (Alvarez-Hamelin, Dall'Asta, Barrat & Vespignani, NIPS 2005; Beiró, Alvarez-Hamelin & Busch, New J. Phys. 2008), and since 5.1.0 it follows the original algorithms.
pow/log circle packing of disconnected cores--window zoom, PNG/PDF/SVG output--kconn), the analysis of Beiró, Alvarez-Hamelin
& Busch (2008), as in the C++ toolpip install lanet-vi
(or uv pip install lanet-vi). Python 3.11 or newer.
lanet-vi visualize --input network.txt --output network.png
import networkx as nx
from lanet_vi import LaNetConfig, Network
net = Network(nx.karate_club_graph(), LaNetConfig())
net.decompose()
net.visualize("karate.png")
The input is an edge list, one source target [weight] per line (# comments,
.gz/.bz2 accepted):
0 1
1 2 2.5
2 0
from lanet_vi import LaNetConfig, Network
from lanet_vi.io.readers import read_caida_snapshot
graph, _ = read_caida_snapshot(
"https://publicdata.caida.org/datasets/as-relationships/serial-1/20251001.as-rel.txt.bz2"
)
net = Network(graph, LaNetConfig())
net.decompose()
net.visualize("internet.png")
examples/ has the full scripts behind the pictures above.
--decomp kcores|kdenses|dcores — the decomposition (dcores needs --directed)--weighted — the third column is a weight: strength-based cores--edges-percent 0.1 — fraction of edges drawn (default 0.5, never below --min-edges)--background white — or black (default); --color-scheme col|bw|bwi--width 3200 --height 2400 — any size and aspect ratio--window 0.25 0.75 0.25 0.75 — zoom: the central half of the picture at full size--coord-distribution pow — circle packing of disconnected cores (default: classic rings)--seed 42 — reproducible layout and edge sample--detect-communities — Louvain communities colored and outlined on the picture (a 5.x addition)--cores-file cores.csv — also write the decomposition (CSV, or JSON by extension)--config settings.yaml — settings from a file; explicit flags override itlanet-vi config settings.yaml writes a template with every setting and its default;
lanet-vi info network.txt prints the network statistics; lanet-vi generate makes
random graphs to try things on.
The full documentation is at https://conexdat.github.io/LaNet-vi/ (the same pages
as docs/, with search and an API reference generated from the docstrings):
git clone https://github.com/CoNexDat/LaNet-vi.git
cd LaNet-vi
uv sync --all-extras
uv run pre-commit install
uv run pytest
Contributions are welcome. main is protected: open a pull request and iterate until CI
and the automatic Copilot review are green. See CONTRIBUTING.md for the
full workflow, coding conventions and release process, and SECURITY.md for
reporting vulnerabilities.
If you use LaNet-vi in your research, please cite the software (GitHub's Cite this
repository button uses CITATION.cff) and the papers behind the method:
Alvarez-Hamelin, J.I., Dall'Asta, L., Barrat, A., Vespignani, A. (2006). "Large scale networks fingerprinting and visualization using the k-core decomposition". Advances in Neural Information Processing Systems 18.
Beiró, M.G., Alvarez-Hamelin, J.I., Busch, J.R. (2008). "A low complexity visualization tool that helps to perform complex systems analysis". New Journal of Physics.
LaNet-vi 5.x is a from-scratch Python rewrite of the original LaNet-vi (Large Network visualization tool), a C++ program developed since 2005 by Mariano G. Beiró and J. Ignacio Alvarez-Hamelin (Universidad de Buenos Aires / CONICET) together with Alain Barrat, Luca Dall'Asta and Alessandro Vespignani. The C++ tool introduced the concentric k-core layout this package is built on and produced, among others, the Internet AS-level maps that made the method known.
The Python implementation is released under the MIT License, with the original authors of the C++ version as co-holders of the copyright. The original C++ LaNet-vi remains available under the Academic Free License 3.0 on SourceForge.