Teaspoon

Teaspoon: A Python Package for Topological Signal Processing - Published in JOSS (2025)

https://github.com/teaspoontda/teaspoon

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
  • Committers with academic emails
    9 of 17 committers (52.9%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

persistent-homology persistent-homology-graphs python signal-processing tda tda-python topological-data-analysis topological-signal-processing

Scientific Fields

Artificial Intelligence and Machine Learning Computer Science - 90% confidence
Sociology Social Sciences - 64% confidence
Last synced: 4 months ago · JSON representation

Repository

Topological Signal Processing in Python

Basic Info
Statistics
  • Stars: 33
  • Watchers: 4
  • Forks: 11
  • Open Issues: 15
  • Releases: 1
Topics
persistent-homology persistent-homology-graphs python signal-processing tda tda-python topological-data-analysis topological-signal-processing
Created about 3 years ago · Last pushed 5 months ago
Metadata Files
Readme Contributing License

README.md

Description

The emerging field of topological signal processing brings methods from Topological Data Analysis (TDA) to create new tools for signal processing by incorporating aspects of shape. This python package, teaspoon for tsp or topological signal processing, brings together available software for computing persistent homology, the main workhorse of TDA, with modules that expand the functionality of teaspoon as a state-of-the-art topological signal processing tool. These modules include methods for incorporating tools from machine learning, complex networks, information, and parameter selection along with a dynamical systems library to streamline the creation and benchmarking of new methods. All code is open source with up to date documentation, making the code easy to use, in particular for signal processing experts with limited experience in topological methods.

Full documentation of this package is available here. The full documentation includes information about installation, module documentation with examples, contributing, the license, and citing teaspoon.

The code is a compilation of work done by Elizabeth Munch and Firas Khasawneh along with their students and collaborators. People who have contributed to teaspoon include:

We gratefully acknowledge the support of the National Science Foundation, which has helped make this work possible.

About TSP

The basic pipeline of a TSP project aligned with the modules of teaspoon.

Many topological signal processing projects can be fit into the pipeline shown above; and this pipeline aligns with the five submodules of teaspoon. We start with input time series data. In teaspoon, the MakeData module provides methods for creating synthetic data sets for testing purposes, including the DynSysLib submodule with an extensive array of dynamical systems. The ParameterSelection modules provides tools for determining best parameters for transforming the time series into a delay coordinate (sometimes called Takens') embedding. This includes standard tools such as false nearest neighbors and mutual information function as well as newly developed tools. The Signal Processing SP module does the conversion from a time series to a topological input. This includes the standard delay coordinate embedding, as well as network representations of time series. This topological input can be converted to a topological signature, in most cases a persistence diagram, using the Topological Data Analysis TDA module. Finally, these persistence diagrams can be used in a machine learning pipeline using the vectorization tools from the Machine Learning ML module.

Installation

To install this package, both boost and CMake must be installed as system dependencies. For boost see for unix and windows. For mac, you can run brew install boost if using homebrew as a package manager. For CMake see here.

The teaspoon package is available through pip install with version details found here. The package can be installed using the following pip installation:

bash pip install teaspoon

To install the most up-to-date version of the code, you can clone the repo and then run

bash pip install .

from the main directory. Note that the master branch will correspond to the version available in pypi, and the test_release branch may have new features.

Please reference the requirements page in the documentation for more details on other required installations.

Contacts

Owner

  • Name: TeaspoonTDA
  • Login: TeaspoonTDA
  • Kind: organization

JOSS Publication

Teaspoon: A Python Package for Topological Signal Processing
Published
March 14, 2025
Volume 10, Issue 107, Page 7243
Authors
Firas A. Khasawneh ORCID
Michigan State University, East Lansing, MI, USA
Elizabeth Munch ORCID
Michigan State University, East Lansing, MI, USA
Danielle Barnes
Michigan State University, East Lansing, MI, USA
Max M. Chumley ORCID
Michigan State University, East Lansing, MI, USA
İsmail Güzel ORCID
Network Technologies Department, TÜBİTAK ULAKBİM, Ankara, TÜRKİYE, Institute of Applied Mathematics, Middle East Technical University, Ankara, TÜRKİYE
Audun D. Myers ORCID
Pacific Northwest National Lab (PNNL), USA
Sunia Tanweer ORCID
Michigan State University, East Lansing, MI, USA
Sarah Tymochko ORCID
University of California, Los Angeles, USA
Melih Yesilli ORCID
Michigan State University, East Lansing, MI, USA
Editor
Hugo Ledoux ORCID
Tags
Topological Data Analysis Persistent Homology Time series analysis Topological Signal Processing

GitHub Events

Total
  • Create event: 9
  • Release event: 1
  • Issues event: 15
  • Watch event: 7
  • Delete event: 5
  • Issue comment event: 12
  • Push event: 76
  • Pull request review event: 13
  • Pull request event: 58
  • Fork event: 2
Last Year
  • Create event: 9
  • Release event: 1
  • Issues event: 15
  • Watch event: 7
  • Delete event: 5
  • Issue comment event: 12
  • Push event: 76
  • Pull request review event: 13
  • Pull request event: 58
  • Fork event: 2

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 520
  • Total Committers: 17
  • Avg Commits per committer: 30.588
  • Development Distribution Score (DDS): 0.785
Past Year
  • Commits: 108
  • Committers: 5
  • Avg Commits per committer: 21.6
  • Development Distribution Score (DDS): 0.306
Top Committers
Name Email Commits
Liz Munch m****i@m****u 112
maxchumley c****m@m****u 101
danielle_barnes b****8@m****u 82
EGR\myersau3 m****3@m****u 61
Sunia Tanweer 1****1 43
Firas Khasawneh f****h@g****m 26
Sarah Tymochko t****o@e****u 25
Liz Munch e****h@a****u 23
Melih Can Yesilli y****m@m****u 21
Martin Uray m****y@f****t 9
Danielle Barnes d****s@D****l 6
Kayla Makela m****a@m****u 4
Jesse Berwald j****d@d****m 3
Ignaci09 4****9 1
Snopoff s****p@g****m 1
danielle d****e@R****l 1
ismailguzel i****l@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 29
  • Total pull requests: 88
  • Average time to close issues: 4 months
  • Average time to close pull requests: 3 days
  • Total issue authors: 10
  • Total pull request authors: 9
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.17
  • Merged pull requests: 65
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 8
  • Pull requests: 50
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 2 days
  • Issue authors: 6
  • Pull request authors: 7
  • Average comments per issue: 0.88
  • Average comments per pull request: 0.0
  • Merged pull requests: 39
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • lizliz (10)
  • barnesd8 (8)
  • maxchumley (4)
  • yossibokorbleile (2)
  • stanweer1 (2)
  • EduPH (1)
  • anfh27 (1)
  • sperciva (1)
  • colltoaction (1)
  • IanQS (1)
Pull Request Authors
  • maxchumley (57)
  • stanweer1 (23)
  • lizliz (22)
  • barnesd8 (20)
  • martinuray (2)
  • hugoledoux (2)
  • ismailguzel (2)
  • Ignaci09 (2)
  • danielskatz (2)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 917 last-month
  • Total dependent packages: 2
  • Total dependent repositories: 1
  • Total versions: 56
  • Total maintainers: 2
pypi.org: teaspoon

A Topological Signal Processing Package

  • Versions: 56
  • Dependent Packages: 2
  • Dependent Repositories: 1
  • Downloads: 917 Last month
Rankings
Dependent packages count: 4.8%
Downloads: 10.0%
Average: 12.1%
Dependent repos count: 21.5%
Maintainers (2)
Last synced: 4 months ago

Dependencies

.github/workflows/publish_to_pypi.yml actions
  • actions/checkout master composite
  • actions/setup-python v3 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/publish_to_test_pypi.yml actions
  • actions/checkout master composite
  • actions/setup-python v3 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/test_installs.yml actions
  • actions/checkout master composite
  • actions/setup-python v5 composite
pyproject.toml pypi
  • POT >=0.8.2
  • Pillow >=9.3.0
  • cycler >=0.11.0
  • ddeint *
  • fonttools >=4.34.4
  • gudhi *
  • importlib_resources *
  • joblib >=1.2.0
  • kiwisolver >=1.4.4
  • matplotlib >=3.5.2
  • networkx >=3.1
  • numba *
  • numpy >=1.23.1
  • packaging >=23.1
  • pandas >=1.4.1
  • persim *
  • pooch *
  • pyentrp >=0.7.1
  • pyparsing <3.1,>=2.3.1
  • python-dateutil >=2.8.2
  • ripser >=0.6.4
  • scikit-learn >=1.1.1
  • scipy >=1.8.1
  • six >=1.16.0
  • sortedcontainers >=2.4.0
  • sympy >=1.11.1
  • threadpoolctl >=3.1.0
requirements.txt pypi
  • Cython *
  • Deprecated *
  • Markdown *
  • MarkupSafe *
  • POT >=0.8.2
  • Pygments *
  • Werkzeug *
  • absl-py *
  • astunparse *
  • certifi *
  • charset-normalizer *
  • contourpy *
  • cycler >=0.11.0
  • ddeint *
  • eagerpy *
  • flatbuffers *
  • fonttools >=4.34.4
  • gast *
  • google-pasta *
  • grpcio *
  • gudhi >=3.10.1
  • h5py *
  • hopcroftkarp *
  • idna *
  • importlib_resources *
  • joblib *
  • keras *
  • kiwisolver *
  • libclang *
  • llvmlite *
  • markdown-it-py *
  • matplotlib >=3.5.2
  • mdurl *
  • ml-dtypes *
  • mpmath *
  • namex *
  • networkx >=3.1
  • numba *
  • numpy *
  • opt_einsum *
  • optree *
  • packaging *
  • pandas >=1.4.1
  • persim *
  • pillow *
  • pip *
  • platformdirs *
  • pooch *
  • protobuf *
  • pyentrp *
  • pyparsing *
  • python-dateutil *
  • pytz *
  • requests *
  • rich *
  • ripser >=0.6.4
  • scikit-learn >=1.1.1
  • scipy >=1.8.1
  • six >=1.16.0
  • sortedcontainers *
  • sympy *
  • teaspoon >=1.4
  • tensorboard *
  • tensorboard-data-server *
  • tensorflow *
  • tensorflow-io-gcs-filesystem *
  • termcolor *
  • threadpoolctl *
  • typing_extensions *
  • tzdata *
  • urllib3 *
  • wrapt *
setup.py pypi