chromatic_tda

Tool to compute six-packs of persistence diagrams for chromatic point clouds [packaged on PyPI]

https://github.com/ondraganov/chromatic-tda

Science Score: 77.0%

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

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
    1 of 2 committers (50.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.3%) to scientific vocabulary

Keywords

alpha-complex persistent-homology spatial-analysis tda topological-data-analysis
Last synced: 6 months ago · JSON representation ·

Repository

Tool to compute six-packs of persistence diagrams for chromatic point clouds [packaged on PyPI]

Basic Info
Statistics
  • Stars: 14
  • Watchers: 1
  • Forks: 2
  • Open Issues: 0
  • Releases: 0
Topics
alpha-complex persistent-homology spatial-analysis tda topological-data-analysis
Created over 2 years ago · Last pushed 12 months ago
Metadata Files
Readme License Citation

README.md

chromatic_tda

chromatic_tda is a package for computing six-packs of persistent diagrams of colored point clouds, such as cells on a tissue slide with an information about their type; or 3D stucture of a material composed of different atoms. The six-pack is a topological summary of capturing many aspects of how the different types of points mingle. It consists of kernel, domain, image, codomain, cokernel and relative persistence diagrams.

The main purpose of the code is to provide implementation to experiment with chromatic topological data analysis. Although not completely naive, many aspects of the code can be optimised, especially if only part of the infomration from the six-packs turns out to be interesting in a given application.

The code gives no restriction on the dimension of points or number of colors, but the complexity quickly grows in both parameters. The expected use is points in 2D or 3D with 2 or 3 colors for hundreds to a few thousand points, but both can be increased for toy examples with small numbers of points.

New in 1.1.8: experimental feature extraction. It is now possible to go from a bar back to a loop in a point cloud (or higher-dimensional equivalents). For details, see the last section in the jupyter notebook manual. For now it is released as "experimental". I will be happy for any feedback on this: is it useful? Is it intuitive to use? Is there something confusing/inconvenient/missing?

Cite

If you use the code, please cite the following paper:

S. Cultrera di Montesano, O. Draganov, H. Edelsbrunner, M. Saghafian: Chromatic alpha complexes, Foundations of Data Science (2025). doi: 10.3934/fods.2025003

Installation

Install with pip

The package is uploaded to PyPI, so it can be installed with pip.

Run pip install chromatic_tda.

Install from a file from github project

From the dist folder of the project, you can download the file chromatic_tda-<version>.tar.gz, and install it using pip as pip install <path to the file>.

Install from github project

The project uses poetry for Python dependecy management, which allows you to easily install all you need to run the package:

  • Clone the repository
  • Install poetry
  • Go to the repository folder in terminal
  • Run poetry shell
  • Run poetry install
  • [optional] Run poetry run pytest to check that the code runs correctly

How to use

The basic use of the package is as follows: import chromatic_tda as chro points, labels = ... # load points, labels chro_alpha = chro.ChromaticAlphaComplex(points, labels) simplicial_complex = chro_alpha.get_simplicial_complex( sub_complex=‘bi-chromatic’ full_complex=‘all’ relative=‘mono-chromatic’ ) # these options make sense for three colors; for two use, e.g., just sub_complex='mono-chromatic' six_pack = simplicial_complex.bars_six_pack() chro.plot_six_pack(six_pack)

For more details check the docstrings of the methods and the jupyter notebook file manual (in github repo). For more background on the theory, check the resources listed below.

Resources

The code is based on research done at Institute of Science and Technology by Ranita Biswas, Sebastiano Cultrera di Montesano, Ondřej Draganov, Herbert Edelsbrunner and Morteza Saghafian. A preprint of the full paper can be found on arXiv: Chromatic Alpha Complexes preprint, published version here: Chromatic Alpha Complexes. A shorter introduction to the main ideas can be found in a preprint Chromatic Topological Data Analysis.

A presentation about the main concepts used in this package can be viewed on YouTube: AATRN Online Seminar: TDA for Chromatic Point Clouds. A recording of a complementary talk focusing more on the motivations of the work and the combinatorial structures underlying it is accessible through google drive.

Contact

If you have any questions to the code, do not hesitate to contat us. We are also eager to hear from you if you try the code out, and happy to chat about how you can use it on your data. Use, e.g., the mail in my github profile.

Timing

For a rough idea on the performance, see the two plots below showing times the code took on my laptop.

License

Copyright ©2023. Institute of Science and Technology Austria (IST Austria). All Rights Reserved.

This file is part of chromatic_tda, which is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Contact the Technology Transfer Office, ISTA, Am Campus 1, A-3400 Klosterneuburg, Austria, +43-(0)2243 9000, twist@ist.ac.at, for commercial licensing opportunities.

Owner

  • Name: Ondrej Draganov
  • Login: OnDraganov
  • Kind: user
  • Company: Institute of Science and Technology Austria (ISTA)

Citation (CITATION.cff)

cff-version: 1.2.0
title: chromatic-tda
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Ondrej
    family-names: Draganov
    email: ondra@draganov.cz
    orcid: 'https://orcid.org/0000-0003-0464-3823'
    affiliation: Institute of Science and Technology Austria (ISTA)
  - given-names: Mohammad
    family-names: Mahini
    email: m.mahini@gmail.com
repository-code: 'https://github.com/OnDraganov/chromatic-tda'
repository-artifact: 'https://pypi.org/project/chromatic-tda/'
abstract: >-
  Tool to compute six-packs of persistence diagrams for
  chromatic point clouds
keywords:
  - python
  - tda
  - topological data analysis
  - persistent homology
  - persistence
  - chromatic alpha
  - delaunay
license: AGPL-3.0-or-later

GitHub Events

Total
  • Watch event: 2
  • Push event: 3
  • Fork event: 2
Last Year
  • Watch event: 2
  • Push event: 3
  • Fork event: 2

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 45
  • Total Committers: 2
  • Avg Commits per committer: 22.5
  • Development Distribution Score (DDS): 0.044
Past Year
  • Commits: 45
  • Committers: 2
  • Avg Commits per committer: 22.5
  • Development Distribution Score (DDS): 0.044
Top Committers
Name Email Commits
Ondrej DRAGANOV o****v@i****t 43
Ondrej Draganov o****a@d****z 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 60 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 18
  • Total maintainers: 1
pypi.org: chromatic_tda

Tool to compute six-packs of persistence diagrams for chromatic point clouds

  • Versions: 18
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 60 Last month
Rankings
Dependent packages count: 10.0%
Downloads: 34.4%
Average: 36.8%
Dependent repos count: 65.9%
Maintainers (1)
Last synced: 6 months ago

Dependencies

poetry.lock pypi
  • colorama 0.4.6
  • contourpy 1.1.0
  • cycler 0.11.0
  • exceptiongroup 1.1.3
  • fonttools 4.42.0
  • importlib-resources 6.0.1
  • iniconfig 2.0.0
  • kiwisolver 1.4.4
  • matplotlib 3.7.2
  • mypy 1.5.0
  • mypy-extensions 1.0.0
  • numpy 1.25.2
  • packaging 23.1
  • pillow 10.0.0
  • pluggy 1.2.0
  • pyparsing 3.0.9
  • pytest 7.4.0
  • python-dateutil 2.8.2
  • scipy 1.11.1
  • six 1.16.0
  • tomli 2.0.1
  • typing-extensions 4.7.1
  • zipp 3.16.2
pyproject.toml pypi
  • matplotlib ^3.7.0
  • mypy ^1.3.0
  • numpy ^1.24.2
  • pytest ^7.3.1
  • python >=3.9,<3.13
  • scipy ^1.10.1