# Persistence barcode

In topological data analysis, a persistence barcode, sometimes shortened to barcode, is an algebraic invariant associated with a filtered chain complex or a persistence module that characterizes the stability of topological features throughout a growing family of spaces. Formally, a persistence barcode consists of a multiset of intervals in the extended real line, where the length of each interval corresponds to the lifetime of a topological feature in a filtration, usually built on a point cloud, a graph, a function, or, more generally, a simplicial complex or a chain complex. Generally, longer intervals in a barcode correspond to more robust features, whereas shorter intervals are more likely to be noise in the data. A persistence barcode is a complete invariant that captures all the topological information in a filtration. In algebraic topology, the persistence barcodes were first introduced by Sergey Barannikov in 1994 as the "canonical forms" invariants consisting of a multiset of line segments with ends on two parallel lines, and later, in geometry processing, by Gunnar Carlsson et al. in 2004.

## Definition

Let $\mathbb {F}$ be a fixed field. Consider a real-valued function on a chain complex $f:K\rightarrow \mathbb {R}$ compatible with the differential, so that $f(\sigma _{i})\leq f(\tau )$ whenever $\partial \tau =\sum _{i}\sigma _{i}$ in $K$. Then for every $a\in \mathbb {R}$ the sublevel set $K_{a}=f^{-1}((-\infty ,a])$ is a subcomplex of K, and the values of $f$ on the generators in $K$ define a filtration (which is in practice always finite):
    $\emptyset =K_{0}\subseteq K_{1}\subseteq \cdots \subseteq K_{n}=K$.
Then, the filtered complexes classification theorem states that for any filtered chain complex over $\mathbb {F}$, there exists a linear transformation that preserves the filtration and brings the filtered complex into so called canonical form, a canonically defined direct sum of filtered complexes of two types: two-dimensional complexes with trivial homology $d(e_{a_{j}})=e_{a_{i}}$ and one-dimensional complexes with trivial differential $d(e_{a'_{i}})=0$. The multiset ${\mathcal {B}}_{f}$ of the intervals $[a_{i},a_{j})$ or $[a_{i}',\infty )$ describing the canonical form, is called the barcode, and it is the complete invariant of the filtered chain complex.
The concept of a persistence module is intimately linked to the notion of a filtered chain complex. A persistence module $M$ indexed over $\mathbb {R}$ consists of a family of $\mathbb {F}$-vector spaces $\{M_{t}\}_{t\in \mathbb {R} }$ and linear maps $\varphi _{s,t}:M_{s}\to M_{t}$ for each $s\leq t$ such that $\varphi _{s,t}\circ \varphi _{r,s}=\varphi _{r,t}$ for all $r\leq s\leq t$. This construction is not specific to $\mathbb {R}$; indeed, it works identically with any totally-ordered set.
A persistence module $M$ is said to be of finite type if it contains a finite number of unique finite-dimensional vector spaces. The latter condition is sometimes referred to as pointwise finite-dimensional.
Let $I$ be an interval in $\mathbb {R}$. Define a persistence module $Q(I)$ via $Q(I_{s})={\begin{cases}0,&{\text{if }}s\notin I;\\\mathbb {F} ,&{\text{otherwise}}\end{cases}}$, where the linear maps are the identity map inside the interval. The module $Q(I)$ is sometimes referred to as an interval module.
Then for any $\mathbb {R}$-indexed persistence module $M$ of finite type, there exists a multiset ${\mathcal {B}}_{M}$ of intervals such that $M\cong \bigoplus _{I\in {\mathcal {B}}_{M}}Q(I)$, where the direct sum of persistence modules is carried out index-wise. The multiset ${\mathcal {B}}_{M}$ is called the barcode of $M$, and it is unique up to a reordering of the intervals.
This result was extended to the case of pointwise finite-dimensional persistence modules indexed over an arbitrary totally-ordered set by William Crawley-Boevey and Magnus Botnan in 2020, building upon known results from the structure theorem for finitely generated modules over a PID, as well as the work of Cary Webb for the case of the integers.