Skip to main content

Library for computing persistent homology

Project description

Dionysus is a computational topology package focused on persistent homology. It is written in C++, with Python bindings. The second version (previous version) is re-written from scratch, which helps it accomplish a few goals:

  • Modified BSD license (because GPL causes too many problems in academic software).
  • No dependency on Boost.Python; Dionysus 2 uses (and includes) PyBind11 instead, which greatly simplifies installation.
  • Cleaner, more consistent internal design (for example, all algorithms support arbitrary fields).
  • Some new algorithms, e.g., omni-field persistence and Wasserstein and bottleneck distance computation from Hera.
  • A few plotting routines, based on Matplotlib.
  • Better integration with NumPy.

Features that haven’t (yet) made it over from Dionysus 1 include vineyards. Alpha shape filtrations are available via DioDe.

Dependencies:
  • Boost, although Dionysus 2 doesn’t link any of its libraries, so it’s considerably easier to build the project.
  • (Optional) SciPy for the LSQR routine used in circular coordinates.
  • (Optional) Maplotlib for plotting.
Requirements:
  • Boost needs to be at least version 1.55.
  • If you are using GCC, the oldest supported version is 5.4.
Contact:
  • please use the dionysus mailing list for all questions and discussion related to the library;
  • GitHub’s issue tracker is a central location for bug reports and feature requests.

Get, Build, Install

The simplest way to install Dionysus, as a Python package, is from PyPI:

pip install --verbose dionysus

Pass --upgrade to pip, if you have already installed some version of Dionysus.

Alternatively, you can install it directly from the development repository (this gives you the latest version):

pip install --verbose git+https://github.com/mrzv/dionysus.git

Alternatively, you can clone and build everything by hand. To get Dionysus 2, either clone its repository:

git clone https://github.com/mrzv/dionysus.git

or download it as a Zip archive.

To build the project:

mkdir build
cd build
cmake ..
make

To use the Python bindings, either launch Python from .../build/bindings/python or add this directory to your PYTHONPATH variable, by adding:

export PYTHONPATH=.../build/bindings/python:$PYTHONPATH

to your ~/.bashrc or ~/.zshrc.

Documentation

Documentation for Dionysus can be found here.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
dionysus-2.0.6-cp27-cp27m-macosx_10_13_x86_64.whl (394.6 kB) Copy SHA256 hash SHA256 Wheel cp27
dionysus-2.0.6-cp37-cp37m-macosx_10_13_x86_64.whl (394.3 kB) Copy SHA256 hash SHA256 Wheel cp37
dionysus-2.0.6.tar.gz (1.0 MB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page