Installation¶
The toolkit includes a lot of third party algorithms and tools. The dependency is very complicated. So recommend to use docker to install the toolkit.
Install using Docker¶
docker pull lizhen0909/graph_clustering_toolkit
Run python or ipython¶
docker run -it lizhen0909/graph_clustering_toolkit python
Run Jupyter notebook¶
docker run lizhen0909/graph_clustering_toolkit jupyter_notebook
Run algrithm programs directly¶
Sometimes one may want to run an algrithm directly with a graph data file through command line
#see what executables avaiable, it is easy to judge the algorithm by the name
docker run lizhen0909/graph_clustering_toolkit ls /opt/gct/submodules/local/bin
#run an algrithm, for example mcl
docker run lizhen0909/graph_clustering_toolkit mcl --help
Manually Compiling¶
It works only on Linux. The docker uses ubuntu 16.4. Other linux should work, but you need to find the dependencies. Python 3 is required.
Prerequisites¶
(the versions are from docker image which is sufficient; but a different version may works too)
system libraries
gcc/g++ version 5.4
python version 3.6
bzip2 Version: 1.0.6
curl Version: 7.47.0
git Version: 1:2.7.4
google-perftools Version: 2.4
libarmadillo-dev Version: 1:6.500.5+dfsg-1
libboost-context-dev Version: 1.58.0
libboost-coroutine-dev Version: 1.58
libboost-graph-dev Version: 1.58
libboost-iostreams-dev Version: 1.58
libboost-program-options-dev Version: 1.58
libboost-python-dev Version: 1.58.0
libboost-regex-dev Version: 1.58.0
libboost-thread-dev Version: 1.58.0
libbz2-dev Version: 1.0.6
libcairomm-1.0-dev Version: 1.12.0
libcurl4-openssl-dev Version: 7.47.0
libexpat1-dev Version: 2.1.0
libgsl-dev Version: 2.1+dfsg-2
libjemalloc-dev Version: 3.6.0
libssl-dev Version: 1.0.2g
libtbb-dev Version: 4.4
libxml2-dev Version: 2.9.3+dfsg1
maven Version: 3.3.9-3
openjdk-8-jdk Version: 8u181-b13
openssl Version: 1.0.2g
unzip Version: 6.0
wget Version: 1.17.1
zip Version: 3.0-11
cmake version 3.12.3
gtk3 version 3.14.15
python libraries
networkx version 2.2
snap version 5.0.9
graph-tool version 2.27
networkit version 4.6
igraph version 0.7.1
ipykernel version 5.1.0
pandas version 0.23.4
seaborn version 0.9.0
scikit-learn version 0.19.1
cython version 0.29
matplotlib version 3.0.0
networkx version 2.2
tabulate version 0.8.2
fastparquet version 0.1.6
python-snappy version 0.5.3
dask version 0.20.0
pyamg version 4.0.0
pycairo version 1.18.0
gobject-introspection version 1.56.1
pygobject version 3.28.3
Compile¶
git clone https://LizhenShi@bitbucket.org/LizhenShi/graph_clustering_toolkit.git
export GCT_HOME=$(pwd)/graph_clustering_toolkit #where source is
export GCT_DATA=$HOME/.gct #optional, where data is put
export PYTHONPATH=${GCT_HOME}/python/src:$PYTHONPATH #let python3 find the code
cd graph_clustering_toolkit/submodules && make