giotto-tda

A high-performance topological machine learning toolbox in Python

https://github.com/giotto-ai/giotto-tda

Science Score: 23.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
  • DOI references
  • Academic publication links
  • Committers with academic emails
    2 of 35 committers (5.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.1%) to scientific vocabulary

Keywords

computational-topology machine-learning mapper scikit-learn tda topological-data-analysis topological-machine-learning topology
Last synced: 6 months ago · JSON representation

Repository

A high-performance topological machine learning toolbox in Python

Basic Info
Statistics
  • Stars: 925
  • Watchers: 15
  • Forks: 187
  • Open Issues: 62
  • Releases: 17
Topics
computational-topology machine-learning mapper scikit-learn tda topological-data-analysis topological-machine-learning topology
Created over 6 years ago · Last pushed over 1 year ago
Metadata Files
Readme Contributing License Code of conduct Governance

README.rst

.. image:: https://raw.githubusercontent.com/giotto-ai/giotto-tda/master/doc/images/tda_logo.svg
   :width: 850

|Version|_ |Azure-build|_ |Azure-cov|_ |Azure-test|_ |Twitter-follow|_ |Slack-join|_

.. |Version| image:: https://img.shields.io/pypi/v/giotto-tda
.. _Version:

.. |Azure-build| image:: https://dev.azure.com/maintainers/Giotto/_apis/build/status/giotto-ai.giotto-tda?branchName=master
.. _Azure-build: https://dev.azure.com/maintainers/Giotto/_build?definitionId=6&_a=summary&repositoryFilter=6&branchFilter=141&requestedForFilter=ae4334d8-48e3-4663-af95-cb6c654474ea

.. |Azure-cov| image:: https://img.shields.io/azure-devops/coverage/maintainers/Giotto/6/master
.. _Azure-cov:

.. |Azure-test| image:: https://img.shields.io/azure-devops/tests/maintainers/Giotto/6/master
.. _Azure-test:

.. |Twitter-follow| image:: https://img.shields.io/twitter/follow/giotto_ai?label=Follow%20%40giotto_ai&style=social
.. _Twitter-follow: https://twitter.com/intent/follow?screen_name=giotto_ai

.. |Slack-join| image:: https://img.shields.io/badge/Slack-Join-yellow
.. _Slack-join: https://slack.giotto.ai/

==========
giotto-tda
==========

``giotto-tda`` is a high-performance topological machine learning toolbox in Python built on top of
``scikit-learn`` and is distributed under the GNU AGPLv3 license. It is part of the `Giotto `_
family of open-source projects.

Project genesis
===============

``giotto-tda`` is the result of a collaborative effort between `L2F SA `_,
the `Laboratory for Topology and Neuroscience `_ at EPFL,
and the `Institute of Reconfigurable & Embedded Digital Systems (REDS) `_ of HEIG-VD.

License
=======

.. _L2F team: business@l2f.ch

``giotto-tda`` is distributed under the AGPLv3 `license `_.
If you need a different distribution license, please contact the `L2F team`_.

Documentation
=============

Please visit `https://giotto-ai.github.io/gtda-docs `_ and navigate to the version you are interested in.

Installation
============

Dependencies
------------

The latest stable version of ``giotto-tda`` requires:

- Python (>= 3.7)
- NumPy (>= 1.19.1)
- SciPy (>= 1.5.0)
- joblib (>= 0.16.0)
- scikit-learn (>= 0.23.1)
- pyflagser (>= 0.4.3)
- python-igraph (>= 0.8.2)
- plotly (>= 4.8.2)
- ipywidgets (>= 7.5.1)

To run the examples, jupyter is required.

User installation
-----------------

The simplest way to install ``giotto-tda`` is using ``pip``   ::

    python -m pip install -U giotto-tda

If necessary, this will also automatically install all the above dependencies. Note: we recommend
upgrading ``pip`` to a recent version as the above may fail on very old versions.

Pre-release, experimental builds containing recently added features, and/or
bug fixes can be installed by running   ::

    python -m pip install -U giotto-tda-nightly

The main difference between ``giotto-tda-nightly`` and the developer installation (see the section
on contributing, below) is that the former is shipped with pre-compiled wheels (similarly to the stable
release) and hence does not require any C++ dependencies. As the main library module is called ``gtda`` in
both the stable and nightly versions, ``giotto-tda`` and ``giotto-tda-nightly`` should not be installed in
the same environment.

Developer installation
----------------------

Please consult the `dedicated page `_
for detailed instructions on how to build ``giotto-tda`` from sources across different platforms.

.. _contributing-section:

Contributing
============

We welcome new contributors of all experience levels. The Giotto
community goals are to be helpful, welcoming, and effective. To learn more about
making a contribution to ``giotto-tda``, please consult `the relevant page
`_.

Testing
-------

After developer installation, you can launch the test suite from outside the
source directory   ::

    pytest gtda

Important links
===============

- Official source code repo: https://github.com/giotto-ai/giotto-tda
- Download releases: https://pypi.org/project/giotto-tda/
- Issue tracker: https://github.com/giotto-ai/giotto-tda/issues


Citing giotto-tda
=================

If you use ``giotto-tda`` in a scientific publication, we would appreciate citations to the following paper:

   `giotto-tda: A Topological Data Analysis Toolkit for Machine Learning and Data Exploration `_, Tauzin *et al*, J. Mach. Learn. Res. 22.39 (2021): 1-6.

You can use the following BibTeX entry:

.. code:: bibtex

    @article{giotto-tda,
      author  = {Guillaume Tauzin and Umberto Lupo and Lewis Tunstall and Julian Burella P\'{e}rez and Matteo Caorsi and Anibal M. Medina-Mardones and Alberto Dassatti and Kathryn Hess},
      title   = {giotto-tda: A Topological Data Analysis Toolkit for Machine Learning and Data Exploration},
      journal = {Journal of Machine Learning Research},
      year    = {2021},
      volume  = {22},
      number  = {39},
      pages   = {1-6},
      url     = {http://jmlr.org/papers/v22/20-325.html}
    }

Community
=========

giotto-ai Slack workspace: https://slack.giotto.ai/

Contacts
========

maintainers@giotto.ai

Owner

  • Name: giotto.ai
  • Login: giotto-ai
  • Kind: organization
  • Email: maintainers@giotto.ai

Adding a third dimension to AI

GitHub Events

Total
  • Issues event: 8
  • Watch event: 71
  • Issue comment event: 15
  • Pull request event: 3
  • Fork event: 14
Last Year
  • Issues event: 8
  • Watch event: 71
  • Issue comment event: 15
  • Pull request event: 3
  • Fork event: 14

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 1,731
  • Total Committers: 35
  • Avg Commits per committer: 49.457
  • Development Distribution Score (DDS): 0.779
Past Year
  • Commits: 25
  • Committers: 2
  • Avg Commits per committer: 12.5
  • Development Distribution Score (DDS): 0.24
Top Committers
Name Email Commits
Umberto u****o@l****h 382
Guillaume Tauzin g****n@l****h 364
Umberto Lupo 4****o 265
Lewis Tunstall l****l@g****m 188
philippenguyen p****n@l****h 127
matteocao 3****o 82
julian m****r@p****m 54
Wojciech Reise 3****e 50
Guillaume Tauzin g****n@e****h 42
julian j****z@h****h 29
Guillaume Tauzin g****t@g****m 24
giotto-learn 5****n 22
REDS institute r****g 18
Ale a****8@p****m 14
ammedmar a****l@m****m 14
Anibal M. Medina-Mardones a****r@g****m 10
Cristian Oneț o****n@g****m 8
raphaelreinauer r****r@g****m 6
WeilerP w****p@g****m 5
Roman Yurchak r****k@g****m 5
Paul VanKoughnett a****l@g****m 3
Ulysse Schaller u****r@m****n 3
Guillaume Tauzin g****n@l****n 2
alexbacce a****5@g****m 2
Aldopod92 5****2 2
Rubén Ballester Bautista r****a@g****m 1
Sean M. Law 7****w 1
Sebastian Pujalte 3****s 1
Nicholas Sale n****e@g****m 1
Lewis Tunstall l****l@l****h 1
and 5 more...
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 92
  • Total pull requests: 55
  • Average time to close issues: 8 months
  • Average time to close pull requests: 7 months
  • Total issue authors: 66
  • Total pull request authors: 19
  • Average comments per issue: 3.33
  • Average comments per pull request: 2.6
  • Merged pull requests: 37
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 9
  • Pull requests: 4
  • Average time to close issues: 11 days
  • Average time to close pull requests: N/A
  • Issue authors: 9
  • Pull request authors: 2
  • Average comments per issue: 0.44
  • Average comments per pull request: 1.25
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • ulupo (10)
  • lewtun (4)
  • torlarse (3)
  • OmarRafique (3)
  • rth (3)
  • jnukpezah (2)
  • bioshot-dotcom (2)
  • andro-demir (2)
  • silent-code (2)
  • anmolguppta (2)
  • songxinyuty (2)
  • ektas0330 (2)
  • beew (2)
  • sokol11 (1)
  • tanjia123456 (1)
Pull Request Authors
  • ulupo (24)
  • wreise (6)
  • gtauzin (5)
  • raphaelreinauer (4)
  • ammedmar (3)
  • agentmarketbot (3)
  • allispaul (3)
  • reds-heig (2)
  • rth (2)
  • dependabot[bot] (2)
  • MonkeyBreaker (2)
  • rballeba (2)
  • matteocao (2)
  • pujaltes (2)
  • lewtun (1)
Top Labels
Issue Labels
bug (31) enhancement (20) documentation (5) discussion (5) CI (5) mapper (1) duplicate (1) invalid (1) good first issue (1)
Pull Request Labels
enhancement (4) CI (4) help wanted (2) bug (2) dependencies (2) mapper (1) duplicate (1) documentation (1)

Packages

  • Total packages: 3
  • Total downloads:
    • pypi 8,940 last-month
  • Total docker downloads: 9
  • Total dependent packages: 7
    (may contain duplicates)
  • Total dependent repositories: 20
    (may contain duplicates)
  • Total versions: 65
  • Total maintainers: 1
pypi.org: giotto-tda

Toolbox for Machine Learning using Topological Data Analysis.

  • Versions: 12
  • Dependent Packages: 7
  • Dependent Repositories: 19
  • Downloads: 8,467 Last month
  • Docker Downloads: 9
Rankings
Dependent packages count: 1.6%
Stargazers count: 2.3%
Dependent repos count: 3.4%
Average: 3.4%
Docker downloads count: 3.8%
Forks count: 3.9%
Downloads: 5.5%
Maintainers (1)
Last synced: 6 months ago
proxy.golang.org: github.com/giotto-ai/giotto-tda
  • Versions: 16
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.5%
Average: 6.7%
Dependent repos count: 7.0%
Last synced: 6 months ago
pypi.org: giotto-tda-nightly

Toolbox for Machine Learning using Topological Data Analysis.

  • Versions: 37
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 473 Last month
Rankings
Stargazers count: 2.3%
Forks count: 3.9%
Dependent packages count: 7.3%
Average: 8.9%
Downloads: 9.0%
Dependent repos count: 22.1%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/wheels.yml actions
  • MarkusJx/install-boost v2.3.1 composite
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/upload-artifact v2 composite
  • pypa/cibuildwheel v2.9.0 composite
requirements.txt pypi
  • giotto-ph >=0.2.1
  • igraph >=0.9.8
  • ipywidgets >=7.5.1
  • joblib >=0.16.0
  • numpy >=1.19.1
  • plotly >=4.8.2
  • pyflagser >=0.4.3
  • scikit-learn >=0.23.1
  • scipy >=1.5.0
.github/workflows/ci.yml actions
  • MarkusJx/install-boost v2.1.0 composite
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • actions/upload-artifact v2 composite
  • py-actions/flake8 v2 composite
setup.py pypi