Ripser.py: A Lean Persistent Homology Library for Python

  • Tralie C
  • Saul N
  • Bar-On R
N/ACitations
Citations of this article
60Readers
Mendeley users who have this article in their library.

Abstract

Topological data analysis (TDA) (Edelsbrunner & Harer, 2010), (Carlsson, 2009) is a field focused on understanding the shape and structure of data by computing topological descriptors that summarize features as connected components, loops, and voids. TDA has found wide applications across nonlinear time series analysis (Perea & Harer, 2015), computer vision (Perea & Carlsson, 2014), computational neuroscience (Giusti, Pastalkova, Curto, & Itskov, 2015), (Bendich, Marron, Miller, Pieloch, & Skwerer, 2016), computational biology (Iyer-Pascuzzi et al., 2010), (Wu et al., 2017), and materials science (Kramar, Goullet, Kondic, & Mischaikow, 2013), to name a few of the many areas of impact in recent years. Persistent homology (Edelsbrunner & Harer, 2010) is the main workhorse of TDA, and it computes a data structure known as the persistence diagram to summarize the space of stable topological features. The most commonly used scheme for generating persistence diagrams is the Vietoris Rips filtration (VR) since it is easily defined for any point cloud. In its naive implementation, VR is prohibitively slow, but recently a C++ library known as Ripser (Bauer, 2017) has been devised to aggregate all known computational speedups of the VR filtration into one concise implementation. Because of the unprecedented speed of Ripser, it has created a large user base for both research and applications. However, the library as it stands is only a command line tool and as a result, multiple efforts have been made to wrap the C++ library for use in other languages, often via clunky system calls to the command line. In this work, we develop an intuitive interface for VR filtrations with Ripser at its core via Cython. We have gone through extensive testing via continuous integration frameworks to ensure it works across all platforms and as a result, Ripser.py is currently as easy to setup as pip install ripser. We see this package as particularly useful for mathematicians with little programming experience who would like to use TDA as an entry point into data science, or conversely for researchers with little understanding of Algebraic Topology who would like to apply TDA to their problem domain. To aid this, we have created a large set of Jupyter notebooks to showcase some of the many applications that are possible with this library.

Cite

CITATION STYLE

APA

Tralie, C., Saul, N., & Bar-On, R. (2018). Ripser.py: A Lean Persistent Homology Library for Python. Journal of Open Source Software, 3(29), 925. https://doi.org/10.21105/joss.00925

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free