{"id":17492689,"url":"https://github.com/davidlapous/multipers","last_synced_at":"2026-04-01T18:29:52.525Z","repository":{"id":65502910,"uuid":"438254685","full_name":"DavidLapous/multipers","owner":"DavidLapous","description":"Python library for multipersistence","archived":false,"fork":false,"pushed_at":"2025-04-08T09:46:34.000Z","size":52065,"stargazers_count":25,"open_issues_count":12,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-11T11:26:49.537Z","etag":null,"topics":["cpp","cython","icml-2024","multiparameter-persistence","neurips-2023","persistent-homology","python","tda","topological-data-analysis"],"latest_commit_sha":null,"homepage":"https://davidlapous.github.io/multipers/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DavidLapous.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-14T13:01:53.000Z","updated_at":"2025-04-08T09:46:37.000Z","dependencies_parsed_at":"2024-01-14T17:42:30.287Z","dependency_job_id":"95591e00-76c0-4f20-af6b-99a27ac9d322","html_url":"https://github.com/DavidLapous/multipers","commit_stats":{"total_commits":468,"total_committers":4,"mean_commits":117.0,"dds":0.4273504273504274,"last_synced_commit":"d876a97f357adedecfc7eab0d9fbf7a32b723ea8"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidLapous%2Fmultipers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidLapous%2Fmultipers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidLapous%2Fmultipers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidLapous%2Fmultipers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DavidLapous","download_url":"https://codeload.github.com/DavidLapous/multipers/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248670515,"owners_count":21142899,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","cython","icml-2024","multiparameter-persistence","neurips-2023","persistent-homology","python","tda","topological-data-analysis"],"created_at":"2024-10-19T10:06:06.974Z","updated_at":"2026-04-01T18:29:52.519Z","avatar_url":"https://github.com/DavidLapous.png","language":"C++","readme":"# multipers : Multiparameter Persistence for Machine Learning\n[![DOI](https://joss.theoj.org/papers/10.21105/joss.06773/status.svg)](https://doi.org/10.21105/joss.06773) [![Documentation](https://img.shields.io/badge/Documentation-website-blue)](https://davidlapous.github.io/multipers) [![Build, test](https://github.com/DavidLapous/multipers/actions/workflows/python_PR.yml/badge.svg)](https://github.com/DavidLapous/multipers/actions/workflows/python_PR.yml)\n\u003cbr\u003e\nScikit-style PyTorch-autodiff multiparameter persistent homology python library. \nThis library aims to provide easy to use and performant strategies for applied multiparameter topology.\n\u003cbr\u003e Meant to be integrated in the [Gudhi](https://gudhi.inria.fr/) library.\n\n## Compiled packages\n| Source | Version | Downloads | Platforms | \n| --- | --- | --- | --- | \n| [![Conda Recipe](https://img.shields.io/badge/conda-recipe-green.svg)](https://github.com/conda-forge/multipers-feedstock)| [![Conda Version](https://img.shields.io/conda/vn/conda-forge/multipers.svg)](https://anaconda.org/conda-forge/multipers) |  [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/multipers.svg)](https://anaconda.org/conda-forge/multipers) |[![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/multipers.svg)](https://anaconda.org/conda-forge/multipers) | \n| [![pip Recipe](https://img.shields.io/badge/pip-package-green.svg)](https:///pypi.org/project/multipers) | [![PyPI](https://img.shields.io/pypi/v/multipers?color=green)](https://pypi.org/project/multipers) | [![ pip downloads](https://static.pepy.tech/badge/multipers)](https://pepy.tech/project/multipers) | | \n\n\n\n## Quick start\nThis library allows computing several representations from \"geometrical datasets\", e.g., point clouds, images, graphs, that have multiple scales.\nWe provide some *nice* pictures in the [documentation](https://davidlapous.github.io/multipers/index.html). \nA non-exhaustive list of features can be found in the **Features** section.\n\nThis library is available on pip and conda-forge for (reasonably up to date) Linux, macOS and Windows, via\n```sh\npip install multipers\n```\nor \n```sh\nconda install multipers -c conda-forge\n```\nPre-releases are available via\n```sh\npip install --pre multipers\n```\nThese releases typically include minor bug fixes or unstable new features.\n\nWindows support is experimental, and some core dependencies are not available on Windows.\nWe hence recommend Windows user to use [WSL](https://learn.microsoft.com/en-us/windows/wsl/).\n\u003cbr\u003e\nDocumentation and build instructions are available\n[here](https://davidlapous.github.io/multipers/compilation.html).\n\n\n\n## Features, and linked projects\nThis library features a bunch of different functions and helpers. See below for a non-exhaustive list.\n\u003cbr\u003eFilled box refers to implemented or interfaced code.\n - [x] [[Multiparameter Module Approximation, JACT]](https://doi.org/10.1007/s41468-025-00222-y) provides the multiparameter simplicial structure, as well as technics for approximating modules, via interval-decomposable modules. It is also very useful for visualization.\n - [x] [[Stable Vectorization of Multiparameter Persistent Homology using Signed Barcodes as Measures, NeurIPS2023]](https://proceedings.neurips.cc/paper_files/paper/2023/hash/d75c474bc01735929a1fab5d0de3b189-Abstract-Conference.html) provides fast representations of multiparameter persistence modules, by using their signed barcodes decompositions encoded into signed measures. Implemented decompositions : Euler surfaces, Hilbert function, rank invariant (i.e. rectangles). It also provides representation technics for Machine Learning, i.e., Sliced Wasserstein kernels, and Vectorizations.\n - [x] [[A Framework for Fast and Stable Representations of Multiparameter Persistent Homology Decompositions, NeurIPS2023]](https://proceedings.neurips.cc/paper_files/paper/2023/hash/702b67152ec4435795f681865b67999c-Abstract-Conference.html) Provides a vectorization framework for interval decomposable modules, for Machine Learning. Currently implemented as an extension of MMA.\n - [x] [[Differentiability and Optimization of Multiparameter Persistent Homology, ICML2024]](https://proceedings.mlr.press/v235/scoccola24a.html) An approach to compute a (clarke) gradient for any reasonable multiparameter persistent invariant. Currently, any `multipers` computation is auto-differentiable using this strategy, provided that the input are pytorch gradient capable tensor.\n - [x] [[Multiparameter Persistence Landscapes, JMLR]](https://jmlr.org/papers/v21/19-054.html) A vectorization technic for multiparameter persistence modules.\n - [x] [[Filtration-Domination in Bifiltered Graphs, ALENEX2023]](https://doi.org/10.1137/1.9781611977561.ch3) Allows for 2-parameter edge collapses for 1-critical clique complexes. Very useful to speed up, e.g., Rips-Codensity bifiltrations.\n - [x] [[Fast free resolutions of bifiltered chain complexes]](https://arxiv.org/abs/2512.08652) One-critical representation of multicritical filtrations, using [multi_critical](https://bitbucket.org/mkerber/multi_critical).\n - [x] [[Chunk Reduction for Multi-Parameter Persistent Homology, SoCG2019]](https://doi.org/10.4230/LIPIcs.SoCG.2019.37) Multi-filtration preprocessing algorithm for homology computations.\n - [x] [[Computing Minimal Presentations and Bigraded Betti Numbers of 2-Parameter Persistent Homology, JAAG]](https://doi.org/10.1137/20M1388425) Minimal presentation of multiparameter persistence modules, using [mpfree](https://bitbucket.org/mkerber/mpfree/src/master/). Hilbert, Rank Decomposition Signed Measures, and MMA decompositions can be computed using the mpfree backend.\n - [x] [[Hera]](https://github.com/anigmetov/hera) Matching distance between 2-parameter presentations.\n - [x] [WIP] [[Decomposing Multiparameter Persistence Modules, SoCG2025]](https://doi.org/10.4230/LIPIcs.SoCG.2025.41) Using the [AIDA](https://github.com/JanJend/AIDA) and [Persistence-Algebra](https://github.com/JanJend/Persistence-Algebra/) libraries.\n - [x] [[Delaunay Bifiltrations of Functions on Point Clouds, SODA2024]](https://epubs.siam.org/doi/10.1137/1.9781611977912.173) Provides an alternative to function rips bifiltrations, using Delaunay complexes. Very good alternative to Rips-Density like bifiltrations.\n - [x] [[Delaunay Core Bifiltration]](https://arxiv.org/abs/2405.01214) Bifiltration for point clouds, taking into account the density. Similar to Rips-Density. \n - [x] [[Computing the Multicover Bifiltration, SOCG2021]](https://doi.org/10.4230/LIPIcs.SoCG.2021.27) Rhomboid Tiling bifiltration. Equivalent to the multicover bifiltration, using [rhomboidtiling](https://github.com/geoo89/rhomboidtiling).\n - [x] [[Rivet]](https://github.com/rivetTDA/rivet) Interactive two parameter persistence\n - [x] [[Kernel Operations on the GPU, with Autodiff, without Memory Overflows, JMLR]](http://jmlr.org/papers/v22/20-275.html) Although not linked, at first glance, to persistence in any way, this library allows computing blazingly fast signed measures convolutions (and more!) with custom kernels. \n - [ ] [Backend only] [[Projected distances for multi-parameter persistence modules]](https://arxiv.org/abs/2206.08818) Provides a strategy to estimate the convolution distance between multiparameter persistence module using projected barcodes. Implementation is a WIP.\n - [ ] [Partial, and experimental] [[Efficient Two-Parameter Persistence Computation via Cohomology, SoCG2023]](https://doi.org/10.4230/LIPIcs.SoCG.2023.15) Minimal presentations for 2-parameter persistence algorithm.\n\nIf I missed something, or you want to add something, feel free to open an issue.\n\n## Authors\n[David Loiseaux](https://davidlapous.github.io/),\u003cbr\u003e\n[Hannah Schreiber](https://github.com/hschreiber) (Persistence backend code),\u003cbr\u003e\n[Luis Scoccola](https://luisscoccola.com/) \n(Möbius inversion in python, degree-rips using [persistable](https://github.com/LuisScoccola/persistable) and [RIVET](https://github.com/rivetTDA/rivet/)),\u003cbr\u003e\n[Mathieu Carrière](https://www-sop.inria.fr/members/Mathieu.Carriere/) (Sliced Wasserstein),\u003cbr\u003e\n[Odin Hoff Gardå](https://odinhg.github.io/) (Delaunay Core bifiltration),\u003cbr\u003e\n[Michael Kerber](https://www.geometrie.tugraz.at/kerber/) ([mpfree](https://bitbucket.org/mkerber/mpfree/src/master/), [function_delaunay](https://bitbucket.org/mkerber/function_delaunay), [multi_critical](https://bitbucket.org/mkerber/multi_critical) [multi_chunck](https://bitbucket.org/mkerber/multi_chunk) backends),\u003cbr\u003e\n[Jan Jendrysiak](https://github.com/JanJend) ([Module Decomposition (AIDA)](https://github.com/JanJend/AIDA), [Persistence Algebra](https://github.com/JanJend/Persistence-Algebra)).\u003cbr\u003e\n\n## Licensing\n\n`multipers` distributions that include the compiled external interfaces are provided under\n**GPL-3.0-or-later**.\n\nThis is due to linked GPL/LGPL third-party components used by the build, notably\n`AIDA`, `Persistence-Algebra`, `function_delaunay`, `mpfree`, `multi_critical`, and\n`multi_chunk`.\n\nSee `THIRD_PARTY_NOTICES.md` for dependency details and pinned revisions used in this workspace.\n\n## Citation\nPlease cite this library when using it in scientific publications;\nyou can use the following journal bibtex entry\n```bib\n@article{multipers,\n  title = {Multipers: {{Multiparameter Persistence}} for {{Machine Learning}}},\n  shorttitle = {Multipers},\n  author = {Loiseaux, David and Schreiber, Hannah},\n  year = {2024},\n  month = nov,\n  journal = {Journal of Open Source Software},\n  volume = {9},\n  number = {103},\n  pages = {6773},\n  issn = {2475-9066},\n  doi = {10.21105/joss.06773},\n  langid = {english},\n}\n```\n## Contributions\nFeel free to contribute, report a bug on a pipeline, or ask for documentation by opening an issue.\u003cbr\u003e\nIn particular, if you have a nice example or application that is not taken care in the documentation (see the `./docs/notebooks/` folder), please contact me to add it there.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidlapous%2Fmultipers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidlapous%2Fmultipers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidlapous%2Fmultipers/lists"}