ripsDiag | R Documentation |
The function ripsDiag
computes the persistence diagram of the Rips filtration built on top of a point cloud.
ripsDiag(
X, maxdimension, maxscale, dist = "euclidean",
library = "GUDHI", location = FALSE, printProgress = FALSE)
X |
If |
maxdimension |
integer: max dimension of the homological features to be computed. (e.g. 0 for connected components, 1 for connected components and loops, 2 for connected components, loops, voids, etc.)
Currently there is a bug for computing homological features of dimension higher than 1 when the distance is arbitrary ( |
maxscale |
number: maximum value of the rips filtration. |
dist |
|
library |
either a string or a vector of length two. When a vector is given, the first element specifies which library to compute the Rips filtration, and the second element specifies which library to compute the persistence diagram. If a string is used, then the same library is used. For computing the Rips filtration, if |
location |
if |
printProgress |
logical: if |
For Rips filtration based on Euclidean distance of the input point cloud, the user can decide to use either the C++ library GUDHI or Dionysus.
For Rips filtration based on arbitrary distance, the user can decide to the C++ library Dionysus.
Then for computing the persistence diagram from the Rips filtration, the user can use either the C++ library GUDHI, Dionysus, or PHAT.
Currently there is a bug for computing homological features of dimension higher than 1 when the distance is arbitrary (dist = "arbitrary"
) and library 'GUDHI' is used (library = "GUDHI"
).
See refereneces.
The function ripsDiag
returns a list with the following elements:
diagram |
an object of class |
birthLocation |
only if |
deathLocation |
only if |
cycleLocation |
only if |
Brittany T. Fasy, Jisu Kim, Fabrizio Lecci, and Clement Maria
Maria C (2014). "GUDHI, Simplicial Complexes and Persistent Homology Packages." https://project.inria.fr/gudhi/software/.
Morozov D (2007). "Dionysus, a C++ library for computing persistent homology". https://www.mrzv.org/software/dionysus/
Edelsbrunner H, Harer J (2010). "Computational topology: an introduction." American Mathematical Society.
Fasy B, Lecci F, Rinaldo A, Wasserman L, Balakrishnan S, Singh A (2013). "Statistical Inference For Persistent Homology." (arXiv:1303.7117). Annals of Statistics.
summary.diagram
, plot.diagram
, gridDiag
## EXAMPLE 1: rips diagram for circles (euclidean distance)
X <- circleUnif(30)
maxscale <- 5
maxdimension <- 1
## note that the input X is a point cloud
DiagRips <- ripsDiag(
X = X, maxdimension = maxdimension, maxscale = maxscale,
library = "Dionysus", location = TRUE, printProgress = TRUE)
# plot
layout(matrix(c(1, 3, 2, 2), 2, 2))
plot(X, cex = 0.5, pch = 19)
title(main = "Data")
plot(DiagRips[["diagram"]])
title(main = "rips Diagram")
one <- which(
DiagRips[["diagram"]][, 1] == 1 &
DiagRips[["diagram"]][, 3] - DiagRips[["diagram"]][, 2] > 0.5)
plot(X, col = 2, main = "Representative loop of data points")
for (i in seq(along = one)) {
for (j in seq_len(dim(DiagRips[["cycleLocation"]][[one[i]]])[1])) {
lines(
DiagRips[["cycleLocation"]][[one[i]]][j, , ], pch = 19, cex = 1,
col = i)
}
}
## EXAMPLE 2: rips diagram with arbitrary distance
## distance matrix for triangle with edges of length: 1,2,4
distX <- matrix(c(0, 1, 2, 1, 0, 4, 2, 4, 0), ncol = 3)
maxscale <- 5
maxdimension <- 1
## note that the input distXX is a distance matrix
DiagTri <- ripsDiag(distX, maxdimension, maxscale, dist = "arbitrary",
printProgress = TRUE)
#points with lifetime = 0 are not shown. e.g. the loop of the triangle.
print(DiagTri[["diagram"]])
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.