List of Software
In recent years, a whole landscape of software emerged that deals with computational topology tasks in different fashions. On this page, we provide starting points for the selection of software suited for the problem of interest.
Packages described here include the following:
- CGAL (https://www.cgal.org/)
- JavaPlex (https://github.com/appliedtopology/javaplex), Tutorial
- GUDHI (http://gudhi.gforge.inria.fr/), Tutorial
- Ripser (https://github.com/Ripser)
- PHAT (https://github.com/blazs/phat)
- Dionysus (http://www.mrzv.org/software/dionysus)
- R-Package TDA (https://cran.r-project.org/web/packages/TDA/index.html)
- Perseus (http://www.sas.upenn.edu/~vnanda/perseus/index.html)
- Rivet (http://rivet.online/)
This collection has been created without any claim of comprehensiveness. Whoever is aware of interesting topological data analysis software packages not listed here may contact the authors by mail at structures-hiwi@mathi.uni-heidelberg.de.
Overview
The following table summarizes information from Otter et al [1] and Wikipedia[2]. Nomenclature within the following table follows Otter et al [1]. The coefficient field Q indicates <math>Q</math>, F_p is <math>F_p</math> and F_2 denotes <math>F_2</math>, respectively.
Software | CGAL | JavaPlex | GUDHI | Ripser | PHAT | Dionysus | R-Package TDA | Perseus | Rivet |
---|---|---|---|---|---|---|---|---|---|
Language | C++ | Java,
Matlab |
C++ | C++ | C++,
Python bindings |
C++,
Python bindings |
R | C++ | stand-alone |
Filtrations computed | alpha | VR, W, W_v | VR, alpha, W,
lower star of cubical complex |
VR | - | VR, alpha, Čech | VR, alpha,
sublevels of function on grid |
VR, lower star of
cubical complex |
VR |
Persistent homology
computation |
no | yes | yes | yes | yes | yes | yes | yes | yes |
Homology | - | simplicial,
cellular |
simplicial | simplicial | simplicial,
cubical |
simplicial | simplicial | simplicial,
cubical |
simplicial |
Coefficient field | - | Q, F_p | F_p | F_p | F_2 | F_2 (standard, zigzag),
F_p (dual) |
F_2? | F_2 | F_2? |
Remarks | Provides a lot of
versatile geometry algorithms |
Routines for two-dimensional
persistence computations |
Details
CGAL
The basic design of CGAL is described in Fabri et al 2000[3].
The software's webpage can be found here: https://www.cgal.org/.
JavaPlex
The basic design of JavaPlex is described in Adams et al 2014[4].
We provide an introductory tutorial to Javaplex on a different page.
The software's webpage can be found here: https://www.cgal.org/.
GUDHI
The basic design of GUDHI is described in Maria et al 2014[5].
We provide an introductory tutorial to using GUDHI on a different page.
The software's webpage including tons of useful example codes can be found here: http://gudhi.gforge.inria.fr/.
Ripser
The software's webpage can be found here: https://github.com/Ripser.
PHAT
The basic design of the Persistent Homology Algorithms Toolbox (PHAT) is described in Bauer et al 2017[6].
The software's webpage can be found here: https://github.com/blazs/phat.
Dionysus
The software's webpage can be found here: http://www.mrzv.org/software/dionysus.
R-Package TDA
The Package TDA provides an R interface for the algorithms of the C++ libraries GUDHI, Dionysus and PHAT.
For an extensive reference manual and further information the reader may consult https://cran.r-project.org/web/packages/TDA/index.html.
Perseus
The efficient Morse-theoretic algorithm to compute persistent homology implemented in Perseus has been descibed first in Mischaikow and Nanda 2013[7].
For details on the software we refer to http://www.sas.upenn.edu/~vnanda/perseus/index.html.
Rivet
The software Rivet is described in [8]. The software's webpage can be found here: http://rivet.online/.
References
- ↑ 1.0 1.1 Otter, Nina, et al. A roadmap for the computation of persistent homology. EPJ Data Science, 2017, 6. Jg., Nr. 1, S. 17. doi:10.1140/epjds/s13688-017-0109-5
- ↑ Wikipedia. Persistent homology. Information drawn on May 20th, 2019 https://en.wikipedia.org/wiki/Persistent_homology
- ↑ FABRI, Andreas, et al. On the design of CGAL a computational geometry algorithms library. Software: Practice and Experience, 2000, 30. Jg., Nr. 11, S. 1167-1202. doi:10.1002/1097-024X(200009)30:11<1167::AID-SPE337>3.0.CO;2-B
- ↑ ADAMS, Henry; TAUSZ, Andrew; VEJDEMO-JOHANSSON, Mikael. JavaPlex: A research software package for persistent (co) homology. In: International Congress on Mathematical Software. Springer, Berlin, Heidelberg, 2014. S. 129-136. doi:10.1007/978-3-662-44199-2_23
- ↑ MARIA, Clément, et al. The gudhi library: Simplicial complexes and persistent homology. In: International Congress on Mathematical Software. Springer, Berlin, Heidelberg, 2014. S. 167-174. doi:10.1007/978-3-662-44199-2_28
- ↑ BAUER, Ulrich, et al. Phat–persistent homology algorithms toolbox. Journal of symbolic computation, 2017, 78. Jg., S. 76-90. doi:10.1016/j.jsc.2016.03.008
- ↑ MISCHAIKOW, Konstantin; NANDA, Vidit. Morse theory for filtrations and efficient computation of persistent homology. Discrete & Computational Geometry, 2013, 50. Jg., Nr. 2, S. 330-353. doi:10.1007/s00454-013-9529-6
- ↑ LESNICK, M.; WRIGHT, M. RIVET: The rank invariant visualization and exploration tool, 2016. Software available at http://rivet.online/.