A community detection tool
CoDACom (Community Detection Algorithm Comparator) is a software which purpose is to simplify the research in community detection.
It is designed to :
- Run multiple community detection algorithms on graphs
- Output a set of statistics on these graphs and on the runs, from degree distribution to the quality of the different communities
- Take into account ground-truth by comparing it with the results of community detection
- Include home-made implementations of (potentially new) community detection algorithms with no code re-writing
- Include user-written quality functions
- Include user-written extrinsic comparison functions
Efficient community detection
The community detection implementations featured in CoDACom are, for the most part, written in C/C++.
For the fastest (loglinear), it is entirely possible to analyse graphs with millions of edges on a standard desktop in less than an hour.
Using a server grants the advantage of running all the couples (methods, graph) in parallel, which may significantly speed up the process.
If your graph features ground-truth communities, CoDACom compares them with the results of the community detection algorithms.
This is useful to justify the superiority of a community detection algorithm in a context.
On top of that, Spearman's coefficient
is computed, comparing the ranking of the algorithms to the ranking of the quality functions.
This method is applied to justify the superiority of a quality function in a context.
Plug and play
You have made your own algorithm, or an efficient implementation of an existing one, and want to compare this implementation to standard algorithms?
You can just put the implementation in the correct folder, create a normalised shell script to run it with normalised input and output, et voilà.
If you are familiar with autotools, you may even include your build with the main build.
Your own quality function can easily be implemented in CoDACom and applied in the system.
The same holds for a comparison method.
CoDACom can output a graphml per original graph, which can be viewed by most graph visualisation tools.
For each applied community detection algorithm, a vertex and edge label is created representing the clustering.
If only a module of CoDACom interests you and the rest is just taking up computation time, anything else can be deactivated.