Difference between revisions of "List of Software"
m |
m |
||
(10 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | 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 | + | 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: | + | Packages described here include the following: |
− | *CGAL (https://www.cgal.org/) | + | * CGAL (https://www.cgal.org/) |
− | *JavaPlex (https://github.com/appliedtopology/javaplex), [[JavaPlex Tutorial| Tutorial]] | + | * JavaPlex (https://github.com/appliedtopology/javaplex), [[JavaPlex Tutorial| Tutorial]] |
− | * GUDHI (http://gudhi.gforge.inria.fr/) | + | * 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) |
− | * | + | * 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, | ||
− | + | 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 == | == Details == | ||
=== CGAL === | === 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<1167::AID-SPE337>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 === | === JavaPlex === | ||
− | We provide an introductory tutorial to Javaplex on a different [[JavaPlex Tutorial|page]]. | + | 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 === | ||
− | We provide an introductory tutorial to using GUDHI on a different [[GUDHI Tutorial|page]]. | + | 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. |
− | === | + | |
+ | === 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:
- 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].
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.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/.