Code

GenLouvain

I am the lead developer for the GenLouvain "generalized Louvain" Matlab code for community detection. This code heuristically optimises a general "modularity-like" quality function that can be specified using a modularity matrix. More details and the latest version of the code are available on GitHub.

Local community detection

LocalCommunities implements local community detection methods for single- and multi-layer networks.

The code is implemented in MATLAB and provided under a FreeBSD License. The latest version can be obtained here. For older versions, development history and more details see the LocalCommunities GitHub page.

This code requires the MatlabBGL library.

Spring-based visualisation for networks with communities

SpringVisCom produces network layouts emphasising pre-specified community structure (e.g. obtained using a community detection algorithm). The node layout is based on a spring system (see Tomihisa Kamada and Satoru Kawai: "An Algorithm For Drawing General Undirected Graphs"), where nodes are charged particles, such that nodes in different communities repel each other.

The code is implemented in MATLAB and provided under a FreeBSD License. The latest version is available here. For older versions, development history and more details see the SpringVisCom GitHub page.

This code requires the MatlabBGL library for all-shortest-paths computations.

Some example visualisations

GML parser for MATLAB

A set of functions to work with data encoded in the GML format (such as the networks on Mark Newman's website) in MATLAB. The parser supports reading arbitrary node and edge attributes and includes functionallity for converting the graph data to the adjacency matrix format used by GenLouvain and SpringVisCom.

For more information and the latest version see the GitHub page.