GUDHI Python modules documentation#

Gudhi banner

Data structures for cell complexes#

Cubical complexes#

Cubical complex representation

The cubical complex represents a grid as a cell complex with cells of all dimensions.

Author:

Pawel Dlotko

Since:

GUDHI 2.0.0

License:

MIT

_images/tensorflow.png
_images/sklearn.png

Simplicial complexes#

Simplex tree#

Simplex tree representation

The simplex tree is an efficient and flexible data structure for representing general (filtered) simplicial complexes.

The data structure is described in [5]

Author:

Clément Maria

Since:

GUDHI 2.0.0

License:

MIT

_images/tensorflow.png

Filtrations and reconstructions#

Alpha complex#

Alpha complex representation

Alpha complex is a simplicial complex constructed from the finite cells of a Delaunay Triangulation. It has the same persistent homology as the Čech complex and is significantly smaller.

Author:

Vincent Rouvreau

Since:

GUDHI 2.0.0

License:

MIT (GPL v3)

Requires:

Eigen and CGAL

Rips complex#

_images/rips_complex_representation.png

The Vietoris-Rips complex is a simplicial complex built as the clique-complex of a proximity graph.

We also provide sparse approximations, to speed-up the computation of persistent homology, and weighted versions, which are more robust to outliers.

Authors:

Clément Maria, Pawel Dlotko, Vincent Rouvreau, Marc Glisse, Yuichi Ike

Since:

GUDHI 2.0.0

License:

MIT

_images/tensorflow.png
_images/sklearn.png

Edge collapse#

_images/dominated_edge.png

Edge collapse is able to reduce any flag filtration to a smaller flag filtration with the same persistence, using only the 1-skeleton of a simplicial complex. The reduction is exact and the persistent homology of the reduced sequence is identical to the persistent homology of the input sequence. The resulting method is simple and extremely efficient.

Computation of edge collapse and persistent homology of a filtered flag complex via edge collapse as described in [22].

Author:

Siddharth Pritam, Marc Glisse

Since:

GUDHI 3.9.0

Witness complex#

Witness complex representation

Witness complex \(Wit(W,L)\) is a simplicial complex defined on two sets of points in \(\mathbb{R}^D\).

The data structure is described in [5].

Author:

Siargey Kachanovich

Since:

GUDHI 2.0.0

License:

MIT (GPL v3 for Euclidean versions only)

Requires:

Eigen and CGAL for Euclidean versions only

Cover complexes#

Graph Induced Complex of a point cloud.

Mapper, Nerve and Graph Induced Complexes are cover complexes, i.e. simplicial complexes that provably contain topological information about the input data. They can be computed with a cover of the data, that comes e.g. from the preimages of a family of hypercubes covering the image of a continuous function defined on the data.

Author:

Mathieu Carrière

Since:

GUDHI 2.3.0

License:

MIT (GPL v3)

Requires:

CGAL

Requires:

Scikit-learn

Tangential complex#

_images/tc_examples.png

A Tangential Delaunay complex is a simplicial complex designed to reconstruct a \(k\)-dimensional manifold embedded in \(d\)-dimensional Euclidean space. The input is a point sample coming from an unknown manifold. The running time depends only linearly on the extrinsic dimension \(d\) and exponentially on the intrinsic dimension \(k\).

Author:

Clément Jamin

Since:

GUDHI 2.0.0

License:

MIT (GPL v3)

Requires:

Eigen and CGAL

Topological descriptors computation#

Persistent cohomology#

_images/plain_homology.png

The theory of homology consists in attaching to a topological space a sequence of (homology) groups, capturing global topological features like connected components, holes, cavities, etc. Persistent homology studies the evolution – birth, life and death – of these features when the topological space is changing.

Computation of persistent cohomology using the algorithm of [16] and [19] and the Compressed Annotation Matrix implementation of [3].

Author:

Clément Maria

Since:

GUDHI 2.0.0

License:

MIT

Please refer to each data structure that contains persistence feature for reference:

Topological descriptors tools#

Bottleneck distance#

_images/perturb_pd.png

Bottleneck distance is the length of the longest edge#

Bottleneck distance measures the similarity between two persistence diagrams. It’s the shortest distance b for which there exists a perfect matching between the points of the two diagrams (+ all the diagonal points) such that any couple of matched points are at distance at most b, where the distance between points is the sup norm in \(\mathbb{R}^2\).

Author:

François Godi

Since:

GUDHI 2.0.0

License:

MIT (GPL v3)

Requires:

CGAL

Wasserstein distance#

_images/perturb_pd.png

The q-Wasserstein distance measures the similarity between two persistence diagrams using the sum of all edges lengths (instead of the maximum). It allows to define sophisticated objects such as barycenters of a family of persistence diagrams.

Authors:

Theo Lacombe, Marc Glisse

Since:

GUDHI 3.1.0

License:

MIT, BSD-3-Clause

Persistence representations#

_images/sklearn-tda.png

Vectorizations, distances and kernels that work on persistence diagrams, compatible with scikit-learn and tensorflow.

Authors:

Mathieu Carrière, Martin Royer, Gard Spreemann, Wojciech Reise

Since:

GUDHI 3.1.0

License:

MIT

_images/sklearn.png
_images/tensorflow.png

Persistence graphical tools#

_images/graphical_tools_representation.png

These graphical tools comes on top of persistence results and allows the user to display easily persistence barcode, diagram or density.

Note that these functions return the matplotlib axis, allowing for further modifications (title, aspect, etc.)

Authors:

Vincent Rouvreau, Theo Lacombe

Since:

GUDHI 2.0.0

License:

MIT

Requires:

Matplotlib

Point cloud utilities#

\((x_1, x_2, \ldots, x_d)\)
\((y_1, y_2, \ldots, y_d)\)

Utilities to process point clouds: read from file, subsample, find neighbors, embed time series in higher dimension, estimate a density, etc.

Authors:

Vincent Rouvreau, Marc Glisse, Masatoshi Takenouchi

Since:

GUDHI 2.0.0

License:

MIT (GPL v3, BSD-3-Clause, Apache-2.0)

Requires:

Eigen and CGAL for sparsify_point_set()

Clustering#

_images/spiral-color.png

Clustering tools.

Author:

Marc Glisse

Since:

GUDHI 3.3.0

License:

MIT

Datasets#

_images/sphere_3d.png

Datasets either generated or fetched.

Authors:

Hind Montassif

Since:

GUDHI 3.5.0

License:

MIT (LGPL v3)

Requires:

CGAL