ect: A Python Package for the Euler Characteristic Transform
ect: A Python Package for the Euler Characteristic Transform - Published in JOSS (2026)
Science Score: 89.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
✓DOI references
Found 4 DOI reference(s) in README and JOSS metadata -
○Academic publication links
-
✓Committers with academic emails
2 of 3 committers (66.7%) from academic institutions -
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Repository
Python package for computing the Euler Characteristic Transform (ECT)
Basic Info
- Host: GitHub
- Owner: MunchLab
- License: gpl-3.0
- Language: Jupyter Notebook
- Default Branch: main
- Homepage: https://munchlab.github.io/ect/
- Size: 24.4 MB
Statistics
- Stars: 6
- Watchers: 2
- Forks: 2
- Open Issues: 1
- Releases: 0
Topics
Metadata Files
README.md
ect: A python package for computing the Euler Characteristic Transform
Python computation tools for computing the Euler Characteristic Transform of embedded complexes.
Description
The package provides fast tools for computing the Euler Characteristic Transform (ECT) on embedded cell complexes in any ambient dimension. You build a complex (vertices, edges, and optional higherdimensional cells), choose a set of directions and thresholds, and compute either the exact ECT or its smoothed/differentiable variants. Results come back as NumPy arrays with metadata, plotting helpers, and distance utilities, making it straightforward to visualize transforms and compare shapes. The core is implemented with NumPy and Numba, with optional validation of geometric and structural constraints when constructing complexes.
EmbeddedComplex: convert point clouds into complexes with vertices, edges, and higherdimensional cells with embedded coordinates.ECT,SECT,DECT: ECT calculations along with the smooth and differentiable variants over sampled directions and transforms.Directions: uniform, random, or custom directions (angles in 2D; vectors in any dimension)- Results as
ECTResult: behaves like a NumPy array, with plotting and distance helpers - Optional geometric/structural validation when building complexes
For more information on the ECT, see:
Munch, Elizabeth. An Invitation to the Euler Characteristic Transform. The American Mathematical Monthly, 132(1), 15-25. doi:10.1080/00029890.2024.2409616. 2024.
Getting Started
Documentation and tutorials
- The documentation is available at: munchlab.github.io/ect
- A tutorial jupyter notebook can be found here
Installing
Requires Python 3.10+.
Install from PyPI:
{bash}
pip install ect
Alternatively, you can clone the repo and install directly
{bash}
git clone git@github.com:MunchLab/ect.git
cd ect
pip install .
Quickstart
Compute an ECT for a simple embedded triangle and plot it.
```python from ect import ECT, EmbeddedComplex
G = EmbeddedComplex() G.addnode("a", [0.0, 0.0]) G.addnode("b", [1.0, 0.0]) G.addnode("c", [0.5, 0.8]) G.addedge("a", "b") G.addedge("b", "c") G.addedge("c", "a")
ect = ECT(numdirs=32, numthresh=128) result = ect.calculate(G) result.plot() ```
Authors
This code was written by Liz Munch along with her research group and collaborators. People who have contributed to ect include:
License
This project is licensed under the GPLv3 License - see the License file for details
Contact Information
Owner
- Name: MunchLab
- Login: MunchLab
- Kind: organization
- Repositories: 2
- Profile: https://github.com/MunchLab
JOSS Publication
ect: A Python Package for the Euler Characteristic Transform
Authors
Tags
Topological Data Analysis Euler CharacteristicGitHub Events
Total
- Delete event: 27
- Pull request event: 46
- Fork event: 1
- Issues event: 29
- Watch event: 2
- Issue comment event: 10
- Push event: 129
- Pull request review comment event: 2
- Pull request review event: 23
- Create event: 30
Last Year
- Delete event: 12
- Pull request event: 18
- Fork event: 1
- Issues event: 18
- Watch event: 2
- Issue comment event: 4
- Push event: 59
- Pull request review comment event: 1
- Pull request review event: 10
- Create event: 13
Committers
Last synced: 3 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| yemeen | y****4@c****u | 121 |
| Liz Munch | m****i@m****u | 75 |
| Sarah McGuire | 6****e | 1 |
Issues and Pull Requests
Last synced: about 1 month ago
All Time
- Total issues: 22
- Total pull requests: 43
- Average time to close issues: 4 months
- Average time to close pull requests: 5 days
- Total issue authors: 3
- Total pull request authors: 3
- Average comments per issue: 0.05
- Average comments per pull request: 0.14
- Merged pull requests: 33
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 2
- Pull requests: 12
- Average time to close issues: 2 months
- Average time to close pull requests: about 16 hours
- Issue authors: 1
- Pull request authors: 1
- Average comments per issue: 0.5
- Average comments per pull request: 0.0
- Merged pull requests: 8
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- lizliz (16)
- Yemeen (4)
- yemeen (2)
Pull Request Authors
- yemeen (17)
- lizliz (15)
- Yemeen (11)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 233 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 20
- Total maintainers: 1
pypi.org: ect
A python package for computing the Euler Characteristic Transform
- Homepage: https://munchlab.github.io/ect
- Documentation: https://ect.readthedocs.io/
- License: GNU General Public License v3 (GPLv3)
-
Latest release: 1.3.0
published about 2 months ago
Rankings
Maintainers (1)
Dependencies
- argparse *
- list *
- matplotlib *
- networkx *
- numba *
- numpy *
- pathlib *
