This package provides a Python implementation of the ElPiGraph algorithm with multi-cpu and gpu support. A self-contained description of the algorithm is available here or on this arXiv paper
It replicates the R implementation, coded by Luca Albergante and should return exactly the same results. Please open an issue if you do notice different output. Differences between the two versions are detailed in differences.md. This package extends initial work by Louis Faure and Alexis Martin.
A native MATLAB implementation of the algorithm (coded by Andrei Zinovyev and Evgeny Mirkes) is also available
When using this package, please cite our preprint:
Albergante, L. et al . Robust And Scalable Learning Of Complex Dataset Topologies Via Elpigraph arXiv: 1804.07580 (2018)
This code was tested with Python 3.7.1, and requires the following packages:
- pandas
- scipy
- numba
- numpy
- python-igraph
- scikit-learn
- plotnine
In addition, to enable respectively multi-cpu, gpu support:
- multiprocessing
- cupy https://docs-cupy.chainer.org/en/stable/install.html#
The requirements.txt file provides the versions this package has been tested with
git clone https://github.com/j-bac/elpigraph-python.git
cd elpigraph-python
pip install .
or
pip install git+https://github.com/j-bac/elpigraph-python.git