by Minh Duc Duong and Diego Garlaschelli
Language: Python 3
Last update: May 2026
Networks: monopartite, undirected, binary
Null models: Fitness Model, Fitness-Corrected Planted Partition Model
Github: https://github.com/DucDuong92/Network-reconstruction-Jeffrey
Paper: Minh Duc Duong and Diego Garlaschelli, “Network Reconstruction via Jeffreys Prior under Missing Sufficient Statistics" (https://arxiv.org/abs/2604.05745).
Notes: This is a Python package for reconstructing binary economic networks from limited aggregate information. It implements the standard Fitness Model, the Fitness-Corrected Planted Partition Model, and a Jeffreys-prior reconstruction method for cases in which block-specific sufficient statistics are missing. The package constructs the feasible parameter curve satisfying the observed total number of links, samples it uniformly in Jeffreys arclength, and identifies entropy-based representative solutions such as the median-entropy point. The package is designed as companion software for the paper and includes example notebooks for synthetic and real-data workflows.
by Riccardo Milocco
Language: Python 3
Last update: Dec 2025
Networks: monopartite, undirected, binary
Models: Multi-Scale Model (vector and scalar)
Github: https://github.com/RMilock/multi-scale-node-embeddings/tree/main
Papers: Riccardo Milocco, Fabian Jansen, Diego Garlaschelli, "Multi-Scale Node Embeddings for Graph Modeling and Generation" (https://arxiv.org/abs/2412.04354) and Riccardo Milocco, Fabian Jansen, Diego Garlaschelli, "Renormalizable graph embeddings for multi-scale network reconstruction" (https://arxiv.org/abs/2508.20706).
Notes: This package contains a set of methods to calculate: 1) Renormalizable Vector Embeddings, if the full adjacency matrix is known; 2) Global or local scalar embeddings, if only marginal quantities are available, such as the number of links or the node degrees. See the two papers above, respectively.
by Giulio Virginio Clemente
Language: Python 3
Last update: February 2024
Networks: monopartite, undirected, dynamical
Null models: UBCM with persistent degrees
Github: https://github.com/VirginioClemente/Temporal-networks-with-node-specific-memory
Paper: Giulio Virginio Clemente, Claudio J. Tessone, and Diego Garlaschelli. "Temporal networks with node-specific memory: unbiased inference of transition probabilities, relaxation times and structural breaks" (https://arxiv.org/abs/2311.16981).
Notes: This repository contains the code for the maximum entropy configuration model with additional temporal constraints (persistent links, persistent degrees, persistent edges).
by Marzio di Vece
Language: Python 3
Last update: May 2023
Networks: monopartite: directed, directed AND weighted
Null models: DBCM, RBCM, DBCM+CReMa, RBCM+CRWCM
Pypi: https://pypi.org/project/NuMeTriS/
Github: https://github.com/MarsMDK/NuMeTriS
Paper: Marzio di Vece, Frank Pijpers, Diego Garlaschelli, https://arxiv.org/abs/2305.12179
Notes: NuMeTriS is a package for Pattern Detection of the 13 triadic connected sub-graphs using maximum-entropy models with directed and reciprocated constraints on network data.
by Tancredi Caruso, Giulio Virginio Clemente,
Matthias C Rillig, Diego Garlaschelli
Language: Python, R
Last update: August 2022
Networks: bipartite binary, bipartite weighted
Null models: BiCM, WBiCM
FigShare: this URL
Paper: Tancredi Caruso, Giulio Virginio Clemente, Matthias C Rillig, Diego Garlaschelli, Methods Ecol Evol. 2022;13:2306–2317
Notes: Methods to fit (binary and weighted) bipartite configuration models, especially designed for ecological networks.
by Maria Mircea, Mazène Hochane, Xueying Fan,
Susana M. Chuva de Sousa Lopes, Diego Garlaschelli and Stefan Semrau
Language: R
Last update: February 2022
Networks: correlation matrices, multivariate time series
Null models: Wishart ensemble (Marcenko-Pastur)
Github: https://github.com/semraulab/phiclust
Zenodo (GNU General Public License V3.0): https://zenodo.org/record/5785793#.Ybs5wn3MK3I
Paper: Mircea et al. Genome Biology (2022) 23:18
Notes: a clusterability measure derived from random matrix theory that can be used to identify clusters with non-random substructure (testably leading to the discovery of previously overlooked phenotypes in single-cell transcriptomics data).
by Matteo Bruno, Emiliano Marchese and Nicolò Vallarano
Language: Python(>=3.5)
Last update: February 2021
Networks: monopartite: undirected, directed, weighted, directed AND weighted;
bipartite undirected
Null models: UBCM, DBCM, BiCM, UECM, DECM, CReM
Pypi: https://pypi.org/project/NEMtropy/
Github: https://github.com/nicoloval/NEMtropy
ReadTheDocs: https://nemtropy.readthedocs.io/en/master/index.html
Paper: Nicolò Vallarano et al. (2021), https://arxiv.org/pdf/2101.12625.pdf
Notes: the bipartite submodule contains also the validated projection described in Fabio Saracco et al. (2017) New J. Phys. 19 053022
by Matteo Bruno
Language: Python(>=3.5)
Last update: July 2020
Networks: bipartite undirected
Null models: BiCM
Github: https://github.com/mat701/BiCM
Pypi: https://pypi.org/project/bicm/
ReadTheDocs: https://bipartite-configuration-model.readthedocs.io/
Papers: Nicolò Vallarano et al. (2021), https://arxiv.org/pdf/2101.12625.pdf
Notes: the code can perform the projection from
Fabio Saracco et al. (2017) New J. Phys. 19 053022
by Mika J. Straka
Language: Python 2
Last update: 24 August 2017
Networks: bipartite, undirected
Null-model: BiCM
Paper: Fabio Saracco et al. (2015) Sci. Rep. 5 10595
Notes: the code can perform the projection from
Fabio Saracco et al. (2017) New J. Phys. 19 053022
by Jeroen van Lidth de Jeude
Language: Python 3.5
Last update: 11 January 2019
Networks: monopartite, directed/undirected, unweighted
Null-model: DBCM, RBCM
Github: https://github.com/jeroenvldj/maximum_entropy_block_models
Paper: Jeroen van Lidth de Jeude et al. (2019) Complexity 2019 5120581
by J. van Lidth de Jeude
Language: Python 3.5
Last update: 3 December 2018
Networks: binary, directed and undirected
Null-model: hypergeometric for bimodular structures
Paper: J. van Lidth de Jeude et al. (2019) EPL 125, 6
Notes: method to detect statistically significant bimodular structures, i.e. either bipartite or core-periphery ones. It is based on a modification of the so-called "surprise" metric proposed for detecting communities in networks. The present variant allows for bimodular node partitions to be revealed, by letting links to be placed either 1) within the core part and between the core and the periphery parts or 2) just between the (empty) layers of a bipartite network.
by Mel MacMahon and Diego Garlaschelli
Language: MatLab
Last update: December 2015
Networks: Correlation Matrices, Multivariate Time Series
Null-model: Wishart ensemble (Marcenko-Pastur)
MathWorks: http://www.mathworks.com/matlabcentral/fileexchange/49011
Full package: this URL.
Paper: Mel MacMahon and Diego Garlaschelli, PHYSICAL REVIEW X 5, 021006 (2015)
Notes: This function eigendecomposes a correlation matrix of financial time series and filters out the Market Mode Component and Noise Component, leaving only the components of the correlation matrix that correspond to mesoscopic structure in the set of original time series. The function is intended to be used in conjunction with a community detection algorithm (such as the Louvain method) to allow for community detecion on time series based networks
by Eli van Es
Language: C++
Last update: July 2014
Networks: monopartite, directed/undirected, weighted/unweighted
Null models: UBCM, UWCM, DBCM, DWCM, RBCM, RWCM, UECM
Paper: Tiziano Squartini et al. (2015) New J. Phys. 17 023052
by Rossana Mastrandrea
Language: MatLab
Last update: July 2014
Networks: monopartite, directed/undirected, weighted/unweighted
Null models: UBCM, UWCM, DBCM, DWCM, RBCM, RWCM, UECM
Paper: Tiziano Squartini et al. (2015) New J. Phys. 17 023052