Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mrzv/dionysus

Library for computing persistent homology
https://github.com/mrzv/dionysus

Last synced: 1 day ago
JSON representation

Library for computing persistent homology

Awesome Lists containing this project

README

        

Dionysus 2
==========

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) `Matplotlib `_ 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 `_:

.. parsed-literal::

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):

.. parsed-literal::

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 `_:

.. parsed-literal::

git clone ``_

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 `_.