Hierarchical Graph Analysis
Project description
Higra: Hierarchical Graph Analysis
Higra is a C++/Python library for efficient sparse graph analysis with a special focus on hierarchical methods. Some of the main features are:
- efficient methods and data structures to handle the dual representations of hierarchical clustering: trees (dendrograms) and saliency maps (ultrametric distances);
- hierarchical clusterings: quasi-flat zone hierarchy, hierarchical watersheds, agglomerative clustering (single-linkage, average-linkage, complete-linkage, exponential-linkage, Ward, or user provided linkage rule), constrained connectivity hierarchy;
- component trees: min and max trees;
- manipulate and explore hierarchies: simplification, accumulators, cluster extraction, various attributes (size, volume, dynamics, perimeter, compactness, moments, etc.), horizontal and non-horizontal cuts, hierarchies alignment;
- optimization on hierarchies: optimal cuts, energy hierarchies;
- algorithms on graphs: accumulators, vertices and clusters dissimilarities, region adjacency graphs, minimum spanning trees and forests, watershed cuts;
- assessment: supervised assessment of graph clusterings and hierarchical clusterings;
- image toolbox: special methods for grid graphs, tree of shapes, hierarchical clustering methods dedicated to image analysis, optimization of Mumford-Shah energy.
Higra is thought for modularity, performance and seamless integration with classical data analysis pipelines. The data structures (graphs and trees) are decoupled from data (vertex and edge weights ) which are simply arrays (xtensor arrays in C++ and numpy arrays in Python).
Installation
The Python package can be installed with Pypi:
pip install higra
Supported systems:
- Python 3.8, 3.9, 3.10, 3.11, 3.12 (amd64)
- Linux 64 bits, macOS, Windows 64 bits (requires Visual C++ Redistributable for Visual Studio 2015)
macOS ARM64 is currently only supported through conda conda install higra -c conda-forge
Documentation
Demonstration and tutorials
A collection of demonstration notebooks is available in the documentation. Notebooks are stored in a dedicated repository Higra-Notebooks.
Code samples
This example demonstrates the construction of a single-linkage hierarchical clustering and its simplification by a cluster size criterion.
This example demonstrates the use of hierarchical clustering for image filtering.
Developing C++ extensions
While Higra provides many vectorized operators to implement algorithms efficiently in Python, it is possible that some operations cannot be done efficiently in Python. In such case, the Higra-cppextension-cookiecutter enables to easily setup and generate c++ extension using Higra with Python bindings.
License and how-to cite
The license Cecill-B is fully compatible with BSD-like licenses (BSD, X11, MIT) with an attribution requirement.
The recommended way to give attribution is by citing the following presentation article:
B. Perret, G. Chierchia, J. Cousty, S.J. F. Guimarães, Y. Kenmochi, L. Najman, Higra: Hierarchical Graph Analysis, SoftwareX, Volume 10, 2019. DOI: 10.1016/j.softx.2019.100335
Bibtex
@article{PCCGKN:softwarex2019,
title = "Higra: Hierarchical Graph Analysis",
journal = "SoftwareX",
volume = "10",
pages = "1--6",
year = "2019",
issn = "2352-7110",
doi = "10.1016/j.softx.2019.100335",
author = "B. Perret and G. Chierchia and J. Cousty and S.J. F. Guimar\~{a}es and Y. Kenmochi and L. Najman",
}
Third-party libraries
Higra bundles several third-party libraries (inside the lib
folder):
- pybind11 helps to create Python bindings of c++ methods and classes - BSD-style license
- xtensor (with xtl, xsimd, and xtensor-python provides
numpy
like arrays for c++ with seamless integration with Python - all under the BSD-3-Clause license - Catch2 is a unit test framework - Boost Software License 1.0
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file higra-0.6.10-cp312-cp312-win_amd64.whl
.
File metadata
- Download URL: higra-0.6.10-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 5.7 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/7.0.1 pkginfo/1.10.0 requests/2.22.0 requests-toolbelt/1.0.0 tqdm/4.42.1 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a657ed9855a67df8e57c92f8eb7d8ed9136dd76bb747af967de50a2d91ef2d1 |
|
MD5 | 843fcf5a258cdd789e5c20f032dc5e07 |
|
BLAKE2b-256 | 76c664b3dd9be9d735440af9dd5055632b319ed7eb8e0a50a55490cb8be65e09 |
File details
Details for the file higra-0.6.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: higra-0.6.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 10.9 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6ddbee80dafd0e091f31f005e406228b70ab06a80c0cd3c7f5c7aeebdba780f |
|
MD5 | fa0f965d24dcdf3a3acf170c6c6cb9c0 |
|
BLAKE2b-256 | 6fca8e271f53817dbad65a47975e2b96854c4ef1bfec2f513a3ed2653ee024ef |
File details
Details for the file higra-0.6.10-cp312-cp312-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: higra-0.6.10-cp312-cp312-macosx_10_9_x86_64.whl
- Upload date:
- Size: 10.0 MB
- Tags: CPython 3.12, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 669d5951b58adb7ee5693ca97c3c17b1b5bffff51afdcc3115a38344ccb41329 |
|
MD5 | f993da84f6271e71e17bb53fa6b4604a |
|
BLAKE2b-256 | 488c5a3730732c64eb8d3e99d57655361892cf1e73687a8b1260dc02b4b664a7 |
File details
Details for the file higra-0.6.10-cp311-cp311-win_amd64.whl
.
File metadata
- Download URL: higra-0.6.10-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 5.7 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/7.0.1 pkginfo/1.10.0 requests/2.22.0 requests-toolbelt/1.0.0 tqdm/4.42.1 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06491d15b88095c9e9216bc938eb91d57cf5050262214d7bf9323b0bfa048e40 |
|
MD5 | 11b0a610291ff27950f5a20054bc0b1b |
|
BLAKE2b-256 | ed33688f1a990654a3f80e66d578f8faaac960d1ea79175226f70aad9e289887 |
File details
Details for the file higra-0.6.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: higra-0.6.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 10.8 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 707f18f1a1adb89719a80adbee7ab21806c5293923b956e6458a62a77f438866 |
|
MD5 | e67acd54ac4a9def196fb744fb40d7be |
|
BLAKE2b-256 | 48c252a9a0505561bb0a984f1dfddb1ec14f073ccf45d8fbe478a2e5736a82ec |
File details
Details for the file higra-0.6.10-cp311-cp311-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: higra-0.6.10-cp311-cp311-macosx_10_9_x86_64.whl
- Upload date:
- Size: 10.0 MB
- Tags: CPython 3.11, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a82a45e016359721fdafbda394c6e6bf8150254bb21dd005790167b048aacb7 |
|
MD5 | df5a1c71e448810003f6ae66013e0ffb |
|
BLAKE2b-256 | 285e2474e3f1ddc63a08a18d7b53ae2ed9d2035586985daf485e91476e5225e3 |
File details
Details for the file higra-0.6.10-cp310-cp310-win_amd64.whl
.
File metadata
- Download URL: higra-0.6.10-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 5.7 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/7.0.1 pkginfo/1.10.0 requests/2.22.0 requests-toolbelt/1.0.0 tqdm/4.42.1 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb4f9f71eba4e4a410cd22d5a49f0721f3f1b9185e4d1461e7edf5aba456c8ac |
|
MD5 | 027b8dfc7005e001cade71e86447b5cc |
|
BLAKE2b-256 | 09c9956fc2b7539a64b47ca2588c8ed3a5ec1dac4978d4a2c75496705551f705 |
File details
Details for the file higra-0.6.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: higra-0.6.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 10.8 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d36149a81579965f8082004e93f6b94bd10282cb27fc9208dd0c9e74ef0019d1 |
|
MD5 | e3c17acd45920b927be88c9759be426a |
|
BLAKE2b-256 | b82812c71ac298a1d60d73c144844b602ac4d51acf25ee04e18550f1a00656a0 |
File details
Details for the file higra-0.6.10-cp310-cp310-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: higra-0.6.10-cp310-cp310-macosx_10_9_x86_64.whl
- Upload date:
- Size: 10.0 MB
- Tags: CPython 3.10, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0023a410ebbe26a23db3927acd48260b9b24ea3651212ad16cf12f45af5b90f1 |
|
MD5 | 690bd2e4fdf96e1f23c1cef45f1971fe |
|
BLAKE2b-256 | 8fb47c6779a190a5262a36da7d6b7a30f3c1cb9731f8c392f5cece7263c8ed0d |
File details
Details for the file higra-0.6.10-cp39-cp39-win_amd64.whl
.
File metadata
- Download URL: higra-0.6.10-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 5.9 MB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/7.0.1 pkginfo/1.10.0 requests/2.22.0 requests-toolbelt/1.0.0 tqdm/4.42.1 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff15317adbb708f1509c7441a710c874e4e5d2d97562f02f4d396bbd287a98f5 |
|
MD5 | 02addfe50678f8546095811c8df37a39 |
|
BLAKE2b-256 | dbde2216cf2afa3f63acf7fb6d02504a94587462b429fe167d168b55a00d0466 |
File details
Details for the file higra-0.6.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: higra-0.6.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 10.8 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ff005f988b41b9f33a48c179398870d3233fff349c5c72ade8a304dc9029f69 |
|
MD5 | d9cbcbe5c577ef1cee9b2fce5bcee02c |
|
BLAKE2b-256 | 4354ffc4d9ba9949a65a50856604b41564b13aed15ebc648cebe6f1bda602a92 |
File details
Details for the file higra-0.6.10-cp39-cp39-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: higra-0.6.10-cp39-cp39-macosx_10_9_x86_64.whl
- Upload date:
- Size: 10.0 MB
- Tags: CPython 3.9, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2268106d6f7159da928607eeb4644344df74e440f18959e3c2df02e27a335219 |
|
MD5 | 309115d4814495b64956d5770b112aab |
|
BLAKE2b-256 | c074e9ba1cb623ff3b2adc652dd462fcca17d6be6311fbf2cf86f2629ca606c7 |
File details
Details for the file higra-0.6.10-cp38-cp38-win_amd64.whl
.
File metadata
- Download URL: higra-0.6.10-cp38-cp38-win_amd64.whl
- Upload date:
- Size: 5.7 MB
- Tags: CPython 3.8, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/7.0.1 pkginfo/1.10.0 requests/2.22.0 requests-toolbelt/1.0.0 tqdm/4.42.1 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7e2dd1bd75ff703aa7b66ae64ac9c50f18c47a4a6c650d7e9908a912802f52e |
|
MD5 | d098b674fb437c93c69712dfd1b60265 |
|
BLAKE2b-256 | 6ef0cf15fda64489762feab01e121cf2cb29578ca5791bcf31edc6826a3f1eec |
File details
Details for the file higra-0.6.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: higra-0.6.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 10.9 MB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8dea7610936c018b03aaaf35775f123b2548f6ccdb61e05fea7c0052b54a921 |
|
MD5 | 2836604f9c5c35a96b8d09b4cb71eae9 |
|
BLAKE2b-256 | 80937b2efc185f0bb09d7846d345bb4ef2381ec1466ab8395ea6349923bc2fe1 |
File details
Details for the file higra-0.6.10-cp38-cp38-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: higra-0.6.10-cp38-cp38-macosx_10_9_x86_64.whl
- Upload date:
- Size: 10.0 MB
- Tags: CPython 3.8, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 459aa14df0a4edf9c58e42e20805df44720b403818f27764a5a53159c5db2ce0 |
|
MD5 | 26ef86dd09e29e11a00dcec4c5cb647f |
|
BLAKE2b-256 | 48294683da4c328cf22a61927020591bbb398b5643e860a1b85441ff9a99bc4e |