PHAT Python API reference¶
Bindings for the Persistent Homology Algorithm Toolbox
PHAT is a tool for algebraic topology. It can be used via phat.py to compute persistent (co)homology from boundary matrices, using various reduction algorithms and column data representations.
Here is a simple example of usage.
We will build an ordered boundary matrix of this simplicial complex consisting of a single triangle:
3
|\
| \
| \
| \ 4
5| \
| \
| 6 \
| \
|________\
0 2 1
Now the code:
import phat
# define a boundary matrix with the chosen internal representation
boundary_matrix = phat.boundary_matrix(representation = phat.representations.vector_vector)
# set the respective columns -- (dimension, boundary) pairs
boundary_matrix.columns = [ (0, []),
(0, []),
(1, [0,1]),
(0, []),
(1, [1,3]),
(1, [0,3]),
(2, [2,4,5])]
# or equivalently,
# boundary_matrix = phat.boundary_matrix(representation = ...,
# columns = ...)
# would combine the creation of the matrix and
# the assignment of the columns
# print some information of the boundary matrix:
print()
print("The boundary matrix has %d columns:" % len(boundary_matrix.columns))
for col in boundary_matrix.columns:
s = "Column %d represents a cell of dimension %d." % (col.index, col.dimension)
if (col.boundary):
s = s + " Its boundary consists of the cells " + " ".join([str(c) for c in col.boundary])
print(s)
print("Overall, the boundary matrix has %d entries." % len(boundary_matrix))
pairs = boundary_matrix.compute_persistence_pairs()
pairs.sort()
print()
print("There are %d persistence pairs: " % len(pairs))
for pair in pairs:
print("Birth: %d, Death: %d" % pair)
Please see https://bitbucket.org/phat-code/phat/python for more information.
-
class
phat.
boundary_matrix
(representation=<representations.bit_tree_pivot_column: 1>, source=None, columns=None)¶ Boundary matrices that store the shape information of a cell complex.
-
columns
¶ A collection of column objects
-
compute_persistence_pairs
(reduction=<reductions.twist_reduction: 1>)¶ Computes persistence pairs (birth, death) for the given boundary matrix.
-
compute_persistence_pairs_dualized
(reduction=<reductions.twist_reduction: 1>)¶ Computes persistence pairs (birth, death) from the dualized form of the given boundary matrix.
-
convert
(representation)¶ Copy this matrix to another with a different representation
-
dimensions
¶ A collection of dimensions, equivalent to [c.dimension for c in self.columns]
-
load
(file_name, mode='b')¶ Load this boundary matrix from a file
Parameters: - file_name (string) – The file name to load
- mode (string, optional (defaults to 'b')) – The mode (‘b’ for binary, ‘t’ for text) to use for working with the file
Returns: success
Return type: bool
-
save
(file_name, mode='b')¶ Save this boundary matrix to a file
Parameters: - file_name (string) – The file name to load
- mode (string, optional (defaults to 'b')) – The mode (‘b’ for binary, ‘t’ for text) to use for working with the file
Returns: success
Return type: bool
-
-
class
phat.
representations
¶ Available representations for internal storage of columns in a boundary_matrix
-
class
phat.
reductions
¶ Available reduction algorithms
-
class
_phat.
persistence_pairs
¶ -
append_pair
(self : _phat.persistence_pairs, birth : int, death : int) → NoneType¶ Appends a single (birth, death) pair
-
clear
(_phat.persistence_pairs) → NoneType¶ Empties the collection
-
load_ascii
(_phat.persistence_pairs, str) → bool¶ Load the contents of a text file into this instance
-
load_binary
(_phat.persistence_pairs, str) → bool¶ Load the contents of a binary file into this instance
-
save_ascii
(_phat.persistence_pairs, str) → bool¶ Save this instance to a text file
-
save_binary
(_phat.persistence_pairs, str) → bool¶ Save the contents of this instance to a binary file
-
set_pair
(self : _phat.persistence_pairs, index : int, birth : int, death : int) → NoneType¶ Sets the (birth, death) pair at a given index
-
sort
(_phat.persistence_pairs) → NoneType¶ Sort in place
-
Modules: