Software
Here is a list of ready-to-use software that I have developed over the course of this last years, both as scientific programmer, as PhD student and now as postdoc. Feel free to use it if you need, with the license provided and to cite it accordingly.
Networkqit
Network Quantum Information Theory toolbox
Networkqit is a Python toolbox to perform model optimization and assessment within the spectral entropies of complex networks framework. You can install it with the pip
package manager as it is hosted on the pypi repositories: pip install networkqit
.
PACO
Partitioning Cost Optimization
PACO is the second iteration of the FAGSO algorithm, written from scratch with better data structures implementation as well as the full support of the igraph library. PACO implements agglomerative optimization methods as well as simulated annealing, and its written in a modular fashion so optimization of cost functions of various type can be carried on in a series of subsequent steps. We suggest to download and use PACO instead of FAGSO as it is faster and supports a wider variety of quality functions, not only Surprise but also Asymptotical Surprise. Additionally it contains a Matlab wrapper for Infomap community detection.
FAGSO
Fast Agglomerative Surprise Optimization
FAGSO is an agglomerative Surprise Optimization algorithm written in C++ with bindings as MEX MATLAB and Octave file as well as Python library. It comes as the first proof of concept implementation of the idea, and accompanies the paper Modular structure of brain functional connectivity: breaking the resolution limit by Surprise. All the documentation on how to compile and use FAGSO is indicated on the github webpage.
CommunityAlg
Collections of Matlab functions useful for community detection.
CommunityAlg is a set of Matlab functions for the analysis of complex networks and it extends largely the Brain connectivity Toolbox (BCT) by Sporns and Rubinov. CommunityAlg at the moment is a moving target and the implementations of the methods may change in the future as well as their signatures.
CNCSVision
A library for experiments in visual perception, psychophysics and visualization.
CNCSVision makes it possible to simulate interactive three-dimensional environments. It connects all the facilities necessary in a research lab of vision science, with head tracking and haptic/psychophysics perception. CNCSVision was developed in the laboraties of IIT in Rovereto, under the supervision of Prof. Fulvio Domini.
LFRWMX
A Matlab wrapper around the Lancichinetti-Fortunato-Radicchi benchmark network generator
LFR is an implementations of the planted partition model where the degrees and the community size is modeled after powerlaws with specific exponents. This implementation is a Matlab wrapper around the LFR Weighted with non overlapping communities that is available on the website of Santo Fortunato.
InfomapMex
A Matlab wrapper around the latest available implementation of Rosvall and Bergstroms Infomap code available on github.
Infomap optimizes the map equation, which exploits the information-theoretic duality between the problem of compressing data, and the problem of detecting and extracting significant patterns or structures within those data. Specifically, the map equation is a flow-based method and operates on dynamics on the network.
MultilouvainMX
A Matlab wrapper around the Traag louvain python package.
Multilouvain comes a C++ library and a Matlab mex wrapper that is able to optimize different quality functions for community detection on graphs. Multilouvain features Asymptotical Surprise, Significance, Reichardt and Bornholdt, CPM and Newman modularity in a single unified framework. All the credits for the C++ code are to Vincent Traag. This wrapper modified some functions to make faster calls to methods and the code is not completely equal, though.
Hyperquick
Hyperquick is a C++ implementation of the hyperquick method.
Hyperquick computes the hypergeometric distribution pdf efficiently and without under/overflows.
GraphInsight
GraphInsight is a software that let you visualize complex networks interactively.
GraphInsight is released in its final version in many flavours: OSX, Linux and Windows 7. Here is a complete list of the versions you can download depending on your operating system.
Linux Tested on Ubuntu 10.04 or newer, Debian.
- 15.3 MB GraphInsight-Pro-1.3.3-Linux-i686.deb
- 3.41 MB GraphInsight-Pro-1.3.3-Linux-i686.rpm
- 15.4 MB GraphInsight-Pro-1.3.3-Linux-i686.sh
- 15.3 MB GraphInsight-Pro-1.3.3-Linux-i686.tar.gz
- 19.9 MB GraphInsight-Pro-1.3.3-Linux-x86_64.deb
- 3.51 MB GraphInsight-Pro-1.3.3-Linux-x86_64.rpm
- 19.9 MB GraphInsight-Pro-1.3.3-Linux-x86_64.sh
- 19.9 MB GraphInsight-Pro-1.3.3-Linux-x86_64.tar.gz
OSX Tested on OSX 10.8 or newer
Windows Tested on Windows 7 or newer
- 6.36 MB GraphInsight-Pro-1.3.3-Windows-x86.exe
- 8.17 MB GraphInsight-Pro-1.3.3-Windows-x86.zip
- Source code (zip)
- Source code (tar.gz)
For the Python API of GraphInsight, please look here GraphInsight Python API