Code

Local community detection

LocalCommunities implements the local community detection methods we used in Think Locally, Act Locally: The Detection of Small, Medium-Sized, and Large Communities in Large Networks (arXiv:1403.3795 [cs.SI]).

The code is implemented in MATLAB and provided under a FreeBSD License. The latest version (version 1.02) can be obtained here: LocalCommunities_v1.02.zip. 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 in MATLAB. The function gml2struct reads a GML file and returns the data as a struct, preserving the tree structure and all the information of the GML file. The function gmlstruct2mat takes the graph part of this struct and returns the adjacency matrix of the graph.

The latest version (version 1.0) can be obtained here: GMLparser_v1.0.zip

GenLouvain

I am also involved in the development of 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 NetWiki.