Teaspoon
Teaspoon: A Python Package for Topological Signal Processing - Published in JOSS (2025)
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
Scientific Fields
Repository
Topological Signal Processing in Python
Basic Info
- Host: GitHub
- Owner: TeaspoonTDA
- License: gpl-3.0
- Language: Jupyter Notebook
- Default Branch: master
- Homepage: https://teaspoontda.github.io/teaspoon/
- Size: 168 MB
Statistics
- Stars: 33
- Watchers: 4
- Forks: 11
- Open Issues: 15
- Releases: 1
Topics
Metadata Files
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

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
- Liz Munch: muncheli@msu.edu
- Firas Khasawneh: khasawn3@egr.msu.edu
Owner
- Name: TeaspoonTDA
- Login: TeaspoonTDA
- Kind: organization
- Repositories: 2
- Profile: https://github.com/TeaspoonTDA
JOSS Publication
Teaspoon: A Python Package for Topological Signal Processing
Authors
Michigan State University, East Lansing, MI, USA
Tags
Topological Data Analysis Persistent Homology Time series analysis Topological Signal ProcessingGitHub 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
Top Committers
| Name | 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
- Documentation: https://teaspoon.readthedocs.io/
- License: gpl-3.0
-
Latest release: 1.5.27
published 5 months ago
Rankings
Dependencies
- actions/checkout master composite
- actions/setup-python v3 composite
- pypa/gh-action-pypi-publish release/v1 composite
- actions/checkout master composite
- actions/setup-python v3 composite
- pypa/gh-action-pypi-publish release/v1 composite
- actions/checkout master composite
- actions/setup-python v5 composite
- 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
- 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 *
