  Algorithms for persistent homology and zigzag persistent homology are
well-studied for persistence modules where homomorphisms are induced by
inclusion maps. In this paper, we propose a practical algorithm for computing
persistence under $\mathbb{Z}_2$ coefficients for a sequence of general
simplicial maps and show how these maps arise naturally in some applications of
topological data analysis.
  First, we observe that it is not hard to simulate simplicial maps by
inclusion maps but not necessarily in a monotone direction. This, combined with
the known algorithms for zigzag persistence, provides an algorithm for
computing the persistence induced by simplicial maps.
  Our main result is that the above simple minded approach can be improved for
a sequence of simplicial maps given in a monotone direction. A simplicial map
can be decomposed into a set of elementary inclusions and vertex collapses--two
atomic operations that can be supported efficiently with the notion of simplex
annotations for computing persistent homology. A consistent annotation through
these atomic operations implies the maintenance of a consistent cohomology
basis, hence a homology basis by duality. While the idea of maintaining a
cohomology basis through an inclusion is not new, maintaining them through a
vertex collapse is new, which constitutes an important atomic operation for
simulating simplicial maps. Annotations support the vertex collapse in addition
to the usual inclusion quite naturally.
  Finally, we exhibit an application of this new tool in which we approximate
the persistence diagram of a filtration of Rips complexes where vertex
collapses are used to tame the blow-up in size.
