This code implements the local community detection methods used in
-
Jeub, L. G. S., Balachandran, P., Porter, M. A., Mucha, P. J., & Mahoney, M. W. (2015). Think locally, act locally: Detection of small, medium-sized, and large communities in large networks. Physical Review E, 91(1), 012821. http://doi.org/10.1103/PhysRevE.91.012821
-
Jeub, L. G. S., Mahoney, M. W., Mucha, P. J., & Porter, M. A. (2017). A Local Perspective on Community Structure in Multilayer Networks. Network Science 5(2), 144-163 https://doi.org/10.1017/nws.2016.22
The main interface is the NCP
function which computes local and global NCPs using the ACLcut
, MOVcut
, or EGOcut
methods described in [1]. For multilayer networks MultilayerNCP
provides a convenience wrapper around NCP
that sets up NCP
with appropriate options for the ‘classical’ or ‘relaxed’ random walk and allows for sampling using either ‘physical’ or ‘state’ nodes.
To create a conductance ratio profile (CRP), first compute the network community profile using the NCP
function, storing both the conductance values and communities. Then compute the internal conductance for these communities using the InternalConductance
function. One then obtains the conductance ratio profile by dividing the NCP by the internal conductance, e.g.
[conductance,S]=NCP(A,'ACL');
[internal_conductance]=InternalConductance(A,S);
CRP=conductance./internal_conductance
More detailed documentation of the different functions is available using help LocalCommunities
or doc LocalCommunities
in Matlab.
To use the code, make sure that the ‘LocalCommunities’ folder and its subfolders are on your MATLAB path. Next, compile the APPR
mex function by running compile_APPR_mex
in the ‘ACLcut’ folder.
Some functions require the ‘matlab_bgl’ library which is available from http://www.mathworks.co.uk/matlabcentral/fileexchange/10922-matlabbgl
This code is licensed under a FreeBSD license (see License.txt), except for lobpcg.m by A.V. Knyazev, which is provided under the GNU LGPL ver 2.1.
When using the code, please cite the relevant papers and include a pointer to the ‘LocalCommunities’ Github page https://github.com/LJeub/LocalCommunities . If you want to cite the code directly, include a citation similar to:
- Jeub, L. G. S. (2014—2016). LocalCommunities. https://github.com/LJeub/LocalCommunities