Skip to content

ahgamut/cliquematch

Repository files navigation

cliquematch

Finding correspondence via maximum cliques in large graphs

pyvers ci license DOI

The cliquematch package aims to do two specific things:

  1. Find maximum cliques in large sparse undirected graphs, as quickly and efficiently as possible. (cliquematch uses C++ internally to implement a really fast maximum clique algorithm).

    • Now cliquematch can also find (node-)weighted maximum cliques using the NWGraph class.
  2. Construct large sparse undirected graphs in-memory for the various applications of the maximum clique/clique enumeration problem.

Licensed under MIT License. View the documentation at https://cliquematch.readthedocs.io/

Note: this is cliquematch v3. If you're looking for v1, you can go to the v1 branch or documentation.

Installation Instructions

Installing from a wheel

cliquematch uses cibuildwheel to build wheels via Github Actions.

PyPI wheels are available for Linux, Windows, and MacOS.

pip install cliquematch>=3.0.1

Installing from source

  1. cliquematch requires pybind11 (v2.2 or newer) for its setup:
pip3 install pybind11
  1. cliquematch requires Eigen (v3.3.7 or newer) as part of its setup.

    • You can clone the repo via git clone --recursive to get Eigen.
    • If you already have an existing version of Eigen, or have downloaded it separately, set the EIGEN_DIR environment variable to the folder containing Eigen before compilation.
  2. A C++11 compatible compiler must be available for the installation:

    • On Linux, gcc is called with --std=c++11 (builds with gcc 4.8.2 for manylinux1 wheels).
    • On Windows, Visual Studio 2015 Update 3 (MSVC 14.0 runtime) or later is needed.
    • Note: Installing under Windows+MinGW has not been tested.