Skip to content

A curated list of topological data analysis (TDA) resources and links.

License

Notifications You must be signed in to change notification settings

rahul-38-26-0111-0003/awesome-TDA

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 

Repository files navigation

awesome-TDA

A curated list of TDA resources and links. In applied mathematics, topological data analysis (TDA) is an approach to the analysis of datasets using techniques from topology. under development!

Contents


Theory

Algorithms

  • Morse-Smale complex
  • Persistent homology computation
  • Persistent cohomology computation
  • Reeb graph
  • Vineyards
  • Zigzag persistent homology
  • Topological Domains in Mammalian Genomes Identified by Analysis of Chromatin Interactions

Books

  • A Short Course in Computational Geometry and Topology - Edelsbrunner, Herbert springer link

  • Computational Homology (Applied Mathematical Sciences) - T. Kaczynski, K. Mischaikow, M. Mrozek amazon

  • Computational Topology: An Introduction - Herbert Edelsbrunner, John L. Harer Online

  • Elementary Applied Topology - Robert Ghrist Site

  • Persistence Theory: From Quiver Representations to Data Analysis - Steve Y. Oudot Online PDF

  • Topological and Statistical Methods for Complex Data: Tackling Large-Scale, High-Dimensional, and Multivariate Data Spaces - Bennett, Janine, Vivodtzev, Fabien, Pascucci, Valerio (Eds.) springer link

  • Topological Data Analysis for Scientific Visualization - Tierny, Julien springer link

  • Topology for Computing - Topology for Computing PDF

  • Topological Methods in Data Analysis and Visualization: Theory, Algorithms, and Applications - Pascucci, V., Tricoche, X., Hagen, H., Tierny, J. (Eds.) springer link

  • Topological Methods in Data Analysis and Visualization-II: Theory, Algorithms, and Applications - Peikert, R., Hauser, H., Carr, H., Fuchs, R. (Eds.) springer link

  • Topological Methods in Data Analysis and Visualization-III: Theory, Algorithms, and Applications - Bremer, P.-T., Hotz, I., Pascucci, V., Peikert, R. (Eds.) springer link

  • Topological Methods in Data Analysis and Visualization-IV: Theory, Algorithms, and Applications - Carr, Hamish, Garth, Christoph, Weinkauf, Tino (Eds.) springer link

  • Topology-based Methods in Visualization- Hauser, Helwig, Hagen, Hans, Theisel, Holger (Eds.) springer link

Articles

  • A Fuzzy Clustering Algorithm for the Mode Seeking Framework - Bonis, Oudot arxiv

  • A User’s Guide to Topological Data Analysis - Elizabeth Munch read online

  • An introduction to Topological Data Analysis: fundamental and practical aspects for data scientists - Chazal, Michel arxiv

  • Barcodes: The Persistent Topology of Data - Robert Ghrist PDF

  • Computing Persistent Homology (Discrete and Computational Geometry) - Zomorodian, Carlsson PDF

  • Deep Learning with Topological Signatures - Hofer, Kwitt, Niethammer, UhlPDF

  • Introduction to the R package TDA - Fasy, Jisu Kim, Lecci, Clément Maria, Millman, Rouvreau PDF

  • Homological Algebra and Data - Robert Ghrist PDF

  • Large Scale computation of Means and Clusters for Persistence Diagrams using Optimal Transport - Lacombe, Cuturi, OUDOT arxiv

  • Text Mining using Topological Data Analysis. An introduction - G. A. Carrazana, C. O. C. Chong download

  • Topology and Data - Gunnar Carlsson PDF

  • Topological Data Analysis - Larry Wasserman arxiv

  • Topological Data Analysis and Its Application to Time-Series Data Analysis - Y. Umeda, J. Kaneko, H. Kikuchi PDF

  • Topological Data Analysis for Object Data - Patrangenaru, Bubenik, Paige, Osborne arxiv

  • Two-Tier Mapper: a user-independent clustering method for global gene expression analysis based on topology arxiv

  • Why Topology for Machine Learning and Knowledge Extraction? - Massimo Ferri PDF

Courses

Tools

TdaToolbox

TdaToolbox

  • [3DShape] - This notebook gives a simple example of how to handle three-dimensional shapes. The whole example is based on the height as filtration function, so not invariant in space. However, it gives a pretty good idea of what the output of a topological analysis may give.
  • [ToMaTo Clustering] - This notebook rather focus on a specific strength of TDA: its robustness to detect centroids in dataset, along with its ability to record the relationships between each point, enabling us to retrace the whole structure of the centroids. Examples are provided in the notebook.

TTK

TTk - The Topology ToolKit is an open-source library and software collection for topological data analysis in scientific visualization. TTK can handle scalar data defined either on regular grids or triangulations, either in 2D or in 3D. It provides a substantial collection of generic, efficient and robust implementations of key algorithms in topological data analysis.

For more information you can read "Topological Data Analysis Made Easy with the Topology ToolKit" article.

Frameworks and Libs

C

clique-top

clique-top - The clique-top is a collection of matlab scripts for doing topological analysis of symmetric matrices.

C++

ctl

Ctl - This C++11 library provides a set of generic tools for:

  • Building Neighborhood Graphs
  • Building Cellular Complexes
  • Computing [persistent] homology over finite fields
  • Parallel algorithm(s) for homology

Dionysus

Dionysus - Dionysus is a C++ library for computing persistent homology. It provides implementations of the following algorithms:

  • Persistent homology computation
  • Vineyards (C++ only)
  • Persistent cohomology computation
  • Zigzag persistent homology

GUDHI

GUDHI - The GUDHI library is a generic open source C++ library, with a Python interface, for Topological Data Analysis (TDA) and Higher Dimensional Geometry Understanding. The library offers state-of-the-art data structures and algorithms to construct simplicial complexes and compute persistent homology.

PHAT

phat - This software library contains methods for computing the persistence pairs of a filtered cell complex represented by an ordered boundary matrix with Z2 coefficients. For an introduction to persistent homology, see the textbook. This software package contains code for several algorithmic variants:

  • The "standard" algorithm
  • The "row" algorithm
  • The "twist" algorithm
  • The "chunk" algorithm
  • The "spectral sequence" algorithm

RIVET

RIVET - for the visualization and analysis of two-parameter persistent homology. RIVET is made available under the under the terms of the GNU General Public License. The RIVET documentation lives here.

GO

tda

tda - This package provides support for a few methods from topological data analysis.

Currently, methods for gridded data (images) are provided, including:

  • Connected component labeling for binary images
  • Object persistence analysis
  • Landscape profiles
  • Convex hull peels

Haskell

Persistence

Persistence - A topological data analysis library motivated by flexibility when it comes to the type of data being analyzed. If your data comes with a meaningful binary function into an ordered set, you can use Persistence to analyze your data. The library also provides functions for analyzing directed/undirected, weighted/unweighted graphs. See the README for resources on learning about topological data anlysis.

Java

JavaPlex

JavaPlex - Persistent Homology and Topological Data Analysis Library - The JavaPlex library implements persistent homology and related techniques from computational and applied topology, in a library designed for ease of use, ease of access from Matlab and java-based systems, and ease of extensions for further research projects and approaches. JavaPlex is mainly developed by the Computational Topology workgroup at Stanford University, and is based on previous similar packages from the same group.

Julia

TDA.jl

TDA.jl - This package provides various tools for topological data analysis.

Python

GDA-Public

gda-public - This package contains several fundamental tools by Geometric Data Analytics Inc. geomdata

KeplerMapper

KeplerMapper - This is a Python implementation of the TDA Mapper algorithm for visualization of high-dimensional data. For complete documentation, see https://kepler-mapper.scikit-tda.org. KeplerMapper employs approaches based on the Mapper algorithm (Singh et al.) as first described in the paper "Topological Methods for the Analysis of High Dimensional Data Sets and 3D Object Recognition". KeplerMapper can make use of Scikit-Learn API compatible cluster and scaling algorithms.

kohonen

kohonen - This module contains some basic implementations of Kohonen-style vector quantizers: Self-Organizing Map (SOM), Neural Gas, and Growing Neural Gas. Kohonen-style vector quantizers use some sort of explicitly specified topology to encourage good separation among prototype "neurons".

Mapper implementation TDA

Mapper implementation - Topological Data Analysis for high dimensional dataset exploration

mogutda

mogutda - mogutda contains Python codes that demonstrate the numerical calculation of algebraic topology in an application to topological data analysis (TDA). Its core code is the numerical methods concerning implicial complex, and the estimation of homology and Betti numbers. mogutda runs in Python 2.7, 3.5, and 3.6.

openTDA

openTDA - Open source Python library for topological data analysis (TDA)

Python Mapper

Python Mapper - Python Mapper is a realization of this toolchain, written by Daniel Müllner and Aravindakshan Babu. It is open source software and is released under the GNU GPLv3 license. There is also a company, Ayasdi, which was founded by Gurjeet Singh, Gunnar Carlsson and Harlan Sexton and whose main product, the Ayasdi Iris software, has the Mapper algorithm at its core. Ayasdi also issues academic trial licenses.

qsv

qsv - This application is data structure visualizer by topological data analysis method. This softwear is using kepler-mapper.

Scikit-TDA

Scikit-TDA - Scikit-TDA is a home for compatible TDA Python libraries intended for non-topologists. This project aims to provide a curated library of TDA Python tools that are widely usable and easily approachable. It is structured so that each package can stand alone or be used as part of the scikit-tda bundle. Current packages available:

  • [Ripser] - Data to diagrams in one line
  • [Persim] - Easy Persistence Images
  • [UMAP] - Mathematically justified dimensionality reduction
  • [Kepler Mapper] - Mapper framework integrated into sklearn
  • [TaDAsets] - Constructors for common data sets for demonstrating TDa.

scTDA

scTDA - scTDA is an object oriented python library for topological data analysis of high-throughput single-cell RNA-seq data. It includes tools for the preprocessing, analysis, and exploration of single-cell RNA-seq data based on topological representations.

tmap

tmap - tmap is a topological data analysis framework implementing the TDA Mapper algorithm for population-scale microbiome data analysis. it has been developed to enable easy adoption of TDA in microbiome data analysis pipeline, providing network-based statistical methods for enterotype analysis, driver species identification, and microbiome-wide association analysis of host meta-data.

R

TDA

TDA - tools for the statistical analysis of persistent homology and for density clustering. For that, this package provides an R interface for the efficient algorithms of the C++ libraries GUDHI, Dionysus, and PHAT. This package also implements the methods in Fasy et al. (2014) and Chazal et al. (2014) for analyzing the statistical significance of persistent homology features.

TDAmapper

TDAmapper - Topological Data Analysis using Mapper - An R package for using discrete Morse theory to analyze a data set using the Mapper algorithm described in G. Singh, F. Memoli, G. Carlsson (2007)

TDAstats

TDAstats - TDAstats is an R pipeline for computing persistent homology in topological data analysis.

Spark

Spark Mapper

Spark Mapper - Mapper is a topological data anlysis technique for estimating a lower dimensional simplicial complex from a dataset. It was initially described in the paper "Topological Methods for the Analysis of High Dimensional Data Sets and 3D Object Recognition."

spark-tda

spark-tda - The scalable topological data analysis package for Apache Spark. This project aims to implement the following features:

  • [ Scalable Mapper Implemented as Reeb Diagrams, i.e., Reeb Cosheaves]
  • [Scalable Mapper Implementation]
  • [Scalable Multiscale Mapper Implementation]
  • [Scalable Tower Computation for Multiscale Mapper]
  • [Scalable Persistent Homology Computation on Top of Apache Spark]

For more information you can read "Sparse-TDA: Sparse Realization of Topological Data Analysis for Multi-Way Classification" article.

Useful Links

A concrete application of Topological Data Analysis

BioTDA

Computing Homology

Persistent Homology

TDA and Data Professionals

Topological Methods in Brain Network Analysis

TDA and Deep Learning

TDA and Machine Learning

Event

License

`awesome-TDA by @FatemehTarashi is licensed under the GNU General Public License v3.0

About

A curated list of topological data analysis (TDA) resources and links.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages