C++ library for analysis and simulation of networks
The library emerged from my studies in various aspects of network theory. The internal representation of the graphs allows working with large sparse networks in a memory efficient way. Can be useful as a tool for working with random graphs and various spin models on networks, especially if the networks are sparse.
GraphOS can be used to generate random graphs from various user defined ensembles by means of Metropolis dynamics.
Some local and global features of graphs (such as degrees, clustering coefficients, modularity, etc.) can be computed using GraphOS.
Various spin models (such as Spin Glasses, Boltzmann Machines, Multicomponent Curie-Weiss model, etc.) can be simulated in GraphOS.
GraphOS can be used to play with unsupervised/semisupervised classification of nodes. Currently only the brute-force precise classifiers are implemented (one based on modularity and another on likelihood maximisation), so classification is only feasible for very small (~10 nodes) graphs.
It is possible to save the graphs in .sif-.attrs format recognised by cytoscape (https://cytoscape.org).
Use cases can be found in separate repositories dedicated to particular research projects on network theory and random matrices.
A lot of things can be added and improved in GraphOS. The code should at least be refactored and having a Python interface would also be useful.