Skip to main content

persty - Minibox and Delaunay Edges Algorithms

This package provides an implementation of algorithms for finding the Minibox and Delaunay edges on a finite set of points in d-dimensional space with Chebyshev distance.

Installation

The setuptools, numpy and scipy Python packages are prerequisites to using this package.

With these installed, the persty package can be installed running the following command.

>>> pip install persty

Note. To use the persty.util.make_gudhi_simplex_tree function, it is necessary to install the gudhi Python package.

>>> conda install -c conda-forge gudhi

Compilation. Pre-compiled wheels are not available for all platforms.

So running pip install persty might require compiling the C++ code in the persty.cpp.binding submodule. For this to complete successfully you need some additional components installed: a C++ compiler, cmake version 3.11 or greater, and the pybind11 Python package.

To obtain these we recommend installing conda first. Then install both cmake and pybind11 with conda.

>>> conda install -c anaconda cmake
>>> conda install -c conda-forge pybind11

Windows. After installing conda, run the above commands within an Anaconda prompt. For the C++ compiler install Visual Studio community.

Basic usage

import numpy as np
import persty.minibox
import persty.delaunay

np.random.seed(0)
points = np.random.rand(20, 2)

minibox_edges = persty.minibox.edges(points)
delaunay_edges = persty.delaunay.edges(points)

Computing Persistent Homology

Minibox and Delaunay edges can be used to compute persistent homology in homological dimensions zero and one.

The persty package provides a wrapper function to generate a gudhi.SimplexTree() object that can be used to compute persistence diagrams of Minibox and Alpha flag filtrations.

The following code computes the zero and one dimensional persistence diagrams of 100 three-dimensional randomly sampled points in the unit cube.

import numpy as np
import persty.minibox
import persty.util
from scipy.spatial.distance import chebyshev

np.random.seed(0)
points = np.random.rand(100, 3)
minibox_edges = persty.minibox.edges(points)
simplex_tree = persty.util.make_gudhi_simplex_tree(points,
                                                   minibox_edges,
                                                   max_simplex_dim=2,
                                                   metric=chebyshev)
persistence_diagrams = simplex_tree.persistence(homology_coeff_field=2,
                                                persistence_dim_max=False)

Tests

To check that this package has been installed correctly you can run the tests in the test/ directory of this repository.

  • Download this repository on you computer by running the following command in a terminal window.
>>> git clone https://github.com/gbeltramo/persty.git

Note. On Windows you can obtain git by installing the chocolatey package manager, and running

>>> choco install git
  • In a terminal window move to the persty directory you just downloaded.

  • If you do not have the pytest package installed run

>>> pip install pytest
  • Finally run
>>> pytest

or

>>> pytest -q

The second option decreases the verbosity of the output of this command.

Metadata

Release files for persty 2.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for persty 2.1.0
File Size Uploaded
persty-2.1.0.tar.gz 7.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for persty 2.1.0
File Interpreter ABI Platform
persty-2.1.0-py3.8-linux-x86_64.egg Legacy Egg format - - Details

Total release size: 78.6 kB

Release files / persty-2.1.0.tar.gz

Download URL persty-2.1.0.tar.gz
Size 7.8 kB
Tags Source
SHA-256 checksum
How to use checksums
70e986bd70ecda43da98b85ba4c2bf063f41e52f809591737150777f5c9e9bcf
BLAKE2b-256 checksum
How to use checksums
695aa837cd757dff9f6a7fef21f071e2f2d4d1eb1c51c021264e4c366db6a029
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

Release files / persty-2.1.0-py3.8-linux-x86_64.egg

Download URL persty-2.1.0-py3.8-linux-x86_64.egg
Size 70.8 kB
Tags Egg
SHA-256 checksum
How to use checksums
f92355367a71b7bec1b75c36485aaa094fd4a58ad3927d1045a284337155c56e
BLAKE2b-256 checksum
How to use checksums
337412798c25500e52291b2bc0419490bfb06f0fe099f485ec1751eed75755ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

Release history Release notifications | RSS feed

This release

2.1.0 This release

2 release files

2.0.1

5 release files

2.0.0

5 release files

1.0.0

3 release files

0.3.0

3 release files

0.2.3

3 release files

0.2.2

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page