High performance tool for Persistent Homology computations.
Project description
giotto-ph
giotto-ph is a high-performance implementation of Vietoris–Rips (VR) persistence on the CPU, and is distributed under the GNU AGPLv3 license. It consists of an improved reimplementation of Morozov and Nigmetov’s “lock-free Ripser” and in addition makes use of a parallel implementation of the apparent pairs optimization used in Ripser v1.2. It also contains an improved reimplementation of GUDHI’s Edge Collapse (EC) algorithm and offers support for weighted VR filtrations. See also Morozov’s Ripser fork, Nigmetov’s Oineus library, and GUDHI’s EC implementation.
giotto-ph is part of the Giotto family of open-source projects and designed for tight integration with the giotto-tda and pyflagser libraries.
Project genesis
giotto-ph 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
giotto-ph 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/giotto-ph and navigate to the version you are interested in.
Installation
Dependencies
The latest stable version of giotto-ph requires:
Python (>= 3.6)
NumPy (>= 1.19.1)
SciPy (>= 1.5.0)
scikit-learn (>= 0.23.1)
User installation
The simplest way to install giotto-ph is using pip
python -m pip install -U giotto-ph
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.
Developer installation
Please consult the dedicated page for detailed instructions on how to build giotto-ph from sources across different platforms.
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-ph, please consult the relevant page.
Testing
After installation, you can launch the test suite from inside the source directory
pytest
Important links
Issue tracker: https://github.com/giotto-ai/giotto-ph/issues
Citing giotto-ph
If you use giotto-ph in a scientific publication, we would appreciate citations to the following paper:
giotto-ph: A Python Library for High-Performance Computation of Persistent Homology of Vietoris–Rips Filtrations, Burella Pérez et al, arXiv:2107.05412, 2021.
You can use the following BibTeX entry:
@misc{tauzin2020giottotda,
title={giotto-ph: A Python Library for High-Performance Computation of Persistent Homology of Vietoris--Rips Filtrations},
author={Julián Burella Pérez and Sydney Hauke and Umberto Lupo and Matteo Caorsi and Alberto Dassatti},
year={2021},
eprint={2107.05412},
archivePrefix={arXiv},
primaryClass={cs.CG}
}
Community
giotto-ai Slack workspace: https://slack.giotto.ai/
Contacts
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for giotto_ph-0.1.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | feebcddb03308094913daa8e690f610a408f547b08cbb858b399713adfc6db7c |
|
MD5 | f3276d5fe64ad26659d811e5e773b3a3 |
|
BLAKE2b-256 | 3c42226b363c7e6173549fbc8951b2bf8fa678f20588fbc15b3d7f6495e2fedb |
Hashes for giotto_ph-0.1.0-cp39-cp39-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79f1aeb02c9e5ba714ec2d5497bfc1053999e2659f9a8d78ac8a29582d06fb72 |
|
MD5 | 6faea46acbb4ea3d8df95224c79c9155 |
|
BLAKE2b-256 | 50743bc0d76440eb82160fd239681b92908bb9edb5a2990d09f4ea70f07572a3 |
Hashes for giotto_ph-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a14b8e030d5126a4ed4264824b149ed21718b48c78fc90a585e75d62705dc21 |
|
MD5 | 3f8735cc1328bdfcb6ed679116e4f2fb |
|
BLAKE2b-256 | 21102ed5059181c5e635bbaed13ca6ed2834b8065661fd982da12782a212de36 |
Hashes for giotto_ph-0.1.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 675e56b4d2d1c2067644ece07f270fb941e9b4dc8167d5d097d150eff01821cb |
|
MD5 | d1bae3b141d450e210ca74ca6dc453fa |
|
BLAKE2b-256 | 4183aa3ee984ab2c21f51f7f2ca4a34133a63a39fef2bffa34508e473bc51edd |
Hashes for giotto_ph-0.1.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 001e562e6abe06d0278b08905ea5ac05d8791d69303b9574c459707326e311ea |
|
MD5 | 95fecac7502c7b00c28f0b242d4e7afa |
|
BLAKE2b-256 | 6c57e63c3cf0b53589a55a1b7f1814fb411734264c60e5ffed285e21ba2f0f66 |
Hashes for giotto_ph-0.1.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46672d3ac2e7e8442dd1fd01dec871e1fdfc6a7d801c5d7185af1e8ab8ddc0eb |
|
MD5 | 922750c3b5919d2f729a9dd7c9d53be9 |
|
BLAKE2b-256 | 7bfff6f7eec81925106980fef8083711bab566f069912285d00dd2cc06a7f03d |
Hashes for giotto_ph-0.1.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc1b12b3c7ff364ad44270afa12f94b8d7d5c71ffc93e6aae815dd9f5b40735c |
|
MD5 | 640ca96ebeb95c0446111aaab8cd3462 |
|
BLAKE2b-256 | 13ffe564ff66efaca3ffec6430948c3be358c1d3e07c7c3dafd6ffd32a775244 |
Hashes for giotto_ph-0.1.0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 877aef1c3b6f556d9373ccea6ae153c1242eace13dcf13c702571a8978d01376 |
|
MD5 | c78dfa8976f78fdbe22a624ebf0f0ab9 |
|
BLAKE2b-256 | 1a7e4ba42d7ed076f1ee16f8f759006d4e73aa77f93c4d358a10a8087d177b0a |
Hashes for giotto_ph-0.1.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a263dac35587f696315c470676ea4ce96bab5082b38fc60c3c00c348e6b70912 |
|
MD5 | ade6380d43486fa133dc8c1592243207 |
|
BLAKE2b-256 | b17debdea34075fb9dc1cc448255b18d935d106d312346bf41077c0773dd0ea1 |
Hashes for giotto_ph-0.1.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ee8f5b2c68261c94406732653ebddaa6c5655337ba8904236971ed7a5adf0f4 |
|
MD5 | 92c8ce284f4311c02a083303a248de37 |
|
BLAKE2b-256 | 34c2098bfdd7cea9a4cc8d8b0570298ff20c3a19a6dd648f9c16266f9923371f |
Hashes for giotto_ph-0.1.0-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8f5cbe2f1fcf236a1fb8d6f6eed2f85862216c2d85efe7af09b12b61301e85a |
|
MD5 | 7a03d73fb89f65f07e63b40cd2c960b2 |
|
BLAKE2b-256 | 9a416eb5b508a8427ea4adc410770048b33cf53e08a0e40d2c4e827d2b78ba30 |
Hashes for giotto_ph-0.1.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98db5167f5541033f7ee537b619e5461df6417a9560150379d70e130e9456ab9 |
|
MD5 | 3500d5aabaf3967dbe439f83c3cd1d5c |
|
BLAKE2b-256 | 348b0aa0c52a88c19798e75e957dcb1632d8d8b9574cbfaf27ef405b4cf35069 |