Difference between revisions of "List of Software"

From STRUCTURES Wiki
Jump to navigation Jump to search
m
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
*JavaPlex (https://github.com/appliedtopology/javaplex), [[JavaPlex Tutorial| Tutorial]]
+
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.
* GUDHI (http://gudhi.gforge.inria.fr/)
+
 
 +
Packages described here include the following:
 +
* CGAL (https://www.cgal.org/)
 +
* JavaPlex (https://github.com/appliedtopology/javaplex), [[JavaPlex Tutorial| Tutorial]]
 +
* GUDHI (http://gudhi.gforge.inria.fr/), [[GUDHI Tutorial|Tutorial]]
 
* Ripser (https://github.com/Ripser)
 
* Ripser (https://github.com/Ripser)
 
* PHAT (https://github.com/blazs/phat)
 
* PHAT (https://github.com/blazs/phat)
 
* Dionysus (http://www.mrzv.org/software/dionysus)
 
* Dionysus (http://www.mrzv.org/software/dionysus)
* R-TDA (https://cran.r-project.org/web/packages/TDA/index.html)
+
* R-Package TDA (https://cran.r-project.org/web/packages/TDA/index.html)
* Persus (http://www.sas.upenn.edu/~vnanda/perseus/index.html)
+
* Perseus (http://www.sas.upenn.edu/~vnanda/perseus/index.html)
 
* Rivet (http://rivet.online/)
 
* 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 <ref name=":0">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]] </ref> and Wikipedia<ref>Wikipedia. Persistent homology. Information drawn on May 20th, 2019 https://en.wikipedia.org/wiki/Persistent_homology</ref>. Nomenclature within the following table follows Otter et al <ref name=":0" />.
 +
{| class="wikitable sortable mw-collapsible"
 +
|+
 +
!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
 +
|<nowiki>-</nowiki>
 +
|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,
  
== Overview ==
+
cellular
 +
|simplicial
 +
|simplicial
 +
|simplicial,
 +
cubical
 +
|simplicial
 +
|simplicial
 +
|simplicial,
 +
cubical
 +
|simplicial
 +
|-
 +
|Coefficient field
 +
| -
 +
|[math]\mathbb{Q}[/math], [math]\mathbb{F}_p[/math]
 +
|[math]\mathbb{F}_p[/math]
 +
|[math]\mathbb{F}_p[/math]
 +
|[math]\mathbb{F}_2[/math]
 +
|[math]\mathbb{F}_2[/math] (standard, zigzag),
  
Comparison of some of these packages e.g. by Otter et al. <ref> 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]] </ref>.
+
[math]\mathbb{F}_p[/math] (dual)
Eventually we will put put the results of this comparison in a table somewhere on this page.
+
|[math]\mathbb{F}_2[/math]?
 +
|[math]\mathbb{F}_2[/math]
 +
|[math]\mathbb{F}_2[/math]?
 +
|-
 +
|Remarks
 +
|Provides a lot of
 +
versatile geometry algorithms
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|Routines for two-dimensional
 +
persistence computations
 +
|}
  
 
== Details ==
 
== Details ==
 +
 +
=== CGAL ===
 +
The basic design of CGAL is described in Fabri et al 2000<ref>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. [https://doi.org/10.1002/1097-024X(200009)30:11&#x3C;1167::AID-SPE337&#x3E;3.0.CO;2-B doi:10.1002/1097-024X(200009)30:11<1167::AID-SPE337>3.0.CO;2-B]</ref>.
 +
 +
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<ref>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. [https://doi.org/10.1007/978-3-662-44199-2_23 doi:10.1007/978-3-662-44199-2_23]</ref>.
 +
 +
We provide an introductory tutorial to Javaplex on a different [[JavaPlex Tutorial|page]].
 +
 +
The software's webpage can be found here: https://www.cgal.org/.
 +
 
=== GUDHI ===
 
=== GUDHI ===
 +
The basic design of GUDHI is described in Maria et al 2014<ref>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. [https://doi.org/10.1007/978-3-662-44199-2_28 doi:10.1007/978-3-662-44199-2_28]</ref>.
 +
 +
We provide an introductory tutorial to using GUDHI on a different [[GUDHI Tutorial|page]].
 +
 +
The software's webpage including tons of useful example codes can be found here: http://gudhi.gforge.inria.fr/.
 +
 
=== Ripser ===
 
=== Ripser ===
 +
The software's webpage can be found here: https://github.com/Ripser.
 +
 
=== PHAT ===
 
=== PHAT ===
 +
The basic design of the Persistent Homology Algorithms Toolbox (PHAT) is described in Bauer et al 2017<ref>BAUER, Ulrich, et al. Phat–persistent homology algorithms toolbox. ''Journal of symbolic computation'', 2017, 78. Jg., S. 76-90. [https://doi.org/10.1016/j.jsc.2016.03.008 doi:10.1016/j.jsc.2016.03.008]</ref>.
 +
 +
The software's webpage can be found here: https://github.com/blazs/phat.
 +
 
=== Dionysus ===
 
=== Dionysus ===
=== R-TDA ===
+
The software's webpage can be found here: http://www.mrzv.org/software/dionysus.
=== Persus ===
+
 
 +
=== 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<ref>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. [https://doi.org/10.1007/s00454-013-9529-6 doi:10.1007/s00454-013-9529-6]</ref>.
 +
 
 +
For details on the software we refer to http://www.sas.upenn.edu/~vnanda/perseus/index.html.
 +
 
 
=== Rivet ===
 
=== Rivet ===
 +
The software Rivet is described in <ref>LESNICK, M.; WRIGHT, M. RIVET: The rank invariant visualization and exploration tool, 2016. ''Software available at'' http://rivet.online/.</ref>. The software's webpage can be found here: http://rivet.online/.
  
 
== References ==
 
== References ==
 
<references />
 
<references />

Latest revision as of 15:06, 21 May 2019

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:

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].

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 - [math]\mathbb{Q}[/math], [math]\mathbb{F}_p[/math] [math]\mathbb{F}_p[/math] [math]\mathbb{F}_p[/math] [math]\mathbb{F}_2[/math] [math]\mathbb{F}_2[/math] (standard, zigzag),

[math]\mathbb{F}_p[/math] (dual)

[math]\mathbb{F}_2[/math]? [math]\mathbb{F}_2[/math] [math]\mathbb{F}_2[/math]?
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. 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
  2. Wikipedia. Persistent homology. Information drawn on May 20th, 2019 https://en.wikipedia.org/wiki/Persistent_homology
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. LESNICK, M.; WRIGHT, M. RIVET: The rank invariant visualization and exploration tool, 2016. Software available at http://rivet.online/.