Skip to main content

Higra: Hierarchical Graph Analysis

Build Status Build status codecov Documentation Status

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:

Documentation

https://higra.readthedocs.io/

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.

Example on clustering

This example demonstrates the use of hierarchical clustering for image filtering.

Example on 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):

Release files for higra 0.6.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for higra 0.6.13
File
higra-0.6.13-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
higra-0.6.13-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
higra-0.6.13-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
higra-0.6.13-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
higra-0.6.13-cp314-cp314-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.15+ x86-64 Details
higra-0.6.13-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
higra-0.6.13-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
higra-0.6.13-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
higra-0.6.13-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
higra-0.6.13-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
higra-0.6.13-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
higra-0.6.13-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
higra-0.6.13-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
higra-0.6.13-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
higra-0.6.13-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
higra-0.6.13-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
higra-0.6.13-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
higra-0.6.13-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
higra-0.6.13-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
higra-0.6.13-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
higra-0.6.13-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details

Total release size: 162.2 MB

Release files / higra-0.6.13-cp314-cp314t-win_amd64.whl

Download URL higra-0.6.13-cp314-cp314t-win_amd64.whl
Size 6.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
d653d140730c3da53a0d3bbdfbd1c8e2fa567eaba3b6c66bedcb6563da977ce6
BLAKE2b-256 checksum
How to use checksums
4110bd607a9a7d1d9087d7bb8571abdca04926d01ea9cf1ae6592c3429c585c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release files / higra-0.6.13-cp314-cp314-win_amd64.whl

Download URL higra-0.6.13-cp314-cp314-win_amd64.whl
Size 5.9 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
e69010b737ee669cdbe3ba1a99acb88abb51e3f10bae8f13d40948151ad803a9
BLAKE2b-256 checksum
How to use checksums
db5514b2952b1f95a583114ac1afb4a2aca2c7d3d6bc8dd665561e1e5ce76b54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release files / higra-0.6.13-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL higra-0.6.13-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 11.6 MB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
32bf7b4f4c09b93ddd6a4d04fcdd386cd99f252fc7659894fd76d26763be9d2b
BLAKE2b-256 checksum
How to use checksums
50f40b48f34c2460d3c610dc949859269a96703857d0fc1bb80e7cd0489f6e25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / higra-0.6.13-cp314-cp314-macosx_11_0_arm64.whl

Download URL higra-0.6.13-cp314-cp314-macosx_11_0_arm64.whl
Size 6.1 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
57f7cc4edc40ea303fcd5fbfa69eb7f1f6f1b3c809e1aead6cec7452bd9c4db4
BLAKE2b-256 checksum
How to use checksums
564008894ca6f158ee99ff73ba3462896f800fa1e9a6b52f42e43744385043f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / higra-0.6.13-cp314-cp314-macosx_10_15_x86_64.whl

Download URL higra-0.6.13-cp314-cp314-macosx_10_15_x86_64.whl
Size 7.7 MB
Tags CPython 3.14 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
5263825befa6c6fe44a31fb833556dad43705458fc84b5a10a1414085105c4a8
BLAKE2b-256 checksum
How to use checksums
b3fb38055e1d344194a2e7be424df01095ee1a6c35954fbef9ab43e18192ed5d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / higra-0.6.13-cp313-cp313-win_amd64.whl

Download URL higra-0.6.13-cp313-cp313-win_amd64.whl
Size 5.8 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
493235a159c82c917abc17281cf4275dcb57fb1b213b3dbfdc1f81873c64e1e2
BLAKE2b-256 checksum
How to use checksums
e6b2d1f2e3ed0870c5bc6b127a2ab917af0dd1233700d2503c67f4173f778725
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release files / higra-0.6.13-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL higra-0.6.13-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 11.6 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b38257cd3f922aaaced79563543df64e732239942161231867ea9398f2e9161a
BLAKE2b-256 checksum
How to use checksums
42394af36b2460a080b4301fd9ca6c7fa8b97c96030a14bf1c928a2c07cd603f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / higra-0.6.13-cp313-cp313-macosx_11_0_arm64.whl

Download URL higra-0.6.13-cp313-cp313-macosx_11_0_arm64.whl
Size 6.1 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ced8e0c40ef5d89e2a8abea60409a2e7cf67477302795a769121e67f599c9b75
BLAKE2b-256 checksum
How to use checksums
ea24d7e691ad846106c1730924f49597c824360a58ed510440a283d0552e3a2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / higra-0.6.13-cp313-cp313-macosx_10_13_x86_64.whl

Download URL higra-0.6.13-cp313-cp313-macosx_10_13_x86_64.whl
Size 7.7 MB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
df0b605729012fb2edebb2fd7eed3810c9657d607bac2bd3cf1d6b5723962942
BLAKE2b-256 checksum
How to use checksums
c90f09515a1b6fdef5235b0ab830efa0d7dac78a4b4fccd2088cd7d4eea96f24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / higra-0.6.13-cp312-cp312-win_amd64.whl

Download URL higra-0.6.13-cp312-cp312-win_amd64.whl
Size 5.8 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
71ecbf39621acc07b42c9468da4105946cee4016425b5f1edc82fc34ac0a2957
BLAKE2b-256 checksum
How to use checksums
610e82904a866a5e430622990cb9d344e6944fd65ab79cb310292a09e0ef7d23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release files / higra-0.6.13-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL higra-0.6.13-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 11.6 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
bc560952fe9a6cec4482da3163e94592f95c93045a124176541d145c98f28a2d
BLAKE2b-256 checksum
How to use checksums
826a27e323fe9186c74e3e9949629d04bceba76c3b99dd67ea9b3aaef66b5f7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / higra-0.6.13-cp312-cp312-macosx_11_0_arm64.whl

Download URL higra-0.6.13-cp312-cp312-macosx_11_0_arm64.whl
Size 6.1 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
fecd196c551ac736bed53cf69bb19b9052d22122a36e297872fafca86b45a26f
BLAKE2b-256 checksum
How to use checksums
3e90fb4e440d37c4a03d3bce3522d715f87c436c9ffd6c3c861b357163cd46e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / higra-0.6.13-cp312-cp312-macosx_10_13_x86_64.whl

Download URL higra-0.6.13-cp312-cp312-macosx_10_13_x86_64.whl
Size 7.7 MB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
aa1b6318672ebb87415ba0389059243fde0453a2bfb7d38dfe5489f429a76a9c
BLAKE2b-256 checksum
How to use checksums
3a11ac41629d93a10a8d79faf0cec961a785536f75393396f809347d9b36bc46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / higra-0.6.13-cp311-cp311-win_amd64.whl

Download URL higra-0.6.13-cp311-cp311-win_amd64.whl
Size 5.8 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
2ebb118320ffebff154096071ec3108d39550a02ee67eae4dcbb6818be97aaf5
BLAKE2b-256 checksum
How to use checksums
1cb5351e53c7702a889c0f1aeac08a9c52b2345309a86a1094e04cbb9daf4545
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release files / higra-0.6.13-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL higra-0.6.13-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 11.6 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
3c4e91e22f15c959fad263770273d56be5ce2b226f939c8a84b49a1b0fb7e54f
BLAKE2b-256 checksum
How to use checksums
26abc583d3b19d41ad93ed1fb7b2a99874c9e723be267c7d96c9ca94d895fbaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / higra-0.6.13-cp311-cp311-macosx_11_0_arm64.whl

Download URL higra-0.6.13-cp311-cp311-macosx_11_0_arm64.whl
Size 6.1 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
aa01fca4391962bde428e7e103ad935b5db1294421f1d9d32b06f96189795eb8
BLAKE2b-256 checksum
How to use checksums
4a2c04eb756aa65c12a21fa714daa5d0d404105990dae7d0f319c2c3dc3cff71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / higra-0.6.13-cp311-cp311-macosx_10_9_x86_64.whl

Download URL higra-0.6.13-cp311-cp311-macosx_10_9_x86_64.whl
Size 7.7 MB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
4a0751cdc282adbbf5990f85617a1c5d29dc8ae2f54daba05656481021be1d0c
BLAKE2b-256 checksum
How to use checksums
4a51470d930e33b38892c98c4317aa455c2d50ff64229b5f0f0f5b9288733493
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / higra-0.6.13-cp310-cp310-win_amd64.whl

Download URL higra-0.6.13-cp310-cp310-win_amd64.whl
Size 5.8 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
03b76ebf103dfaf83de69ebe34f97fb62dbbecd190f06ed1a389c846d0478105
BLAKE2b-256 checksum
How to use checksums
76ff192df180ed63cfec451098128d1745011416b17ecb72510aed7760f4be8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release files / higra-0.6.13-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL higra-0.6.13-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 11.6 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
cc0b812dbb18a809b4a424d06afa48e15a58be673944141b7e28e845c55e32b6
BLAKE2b-256 checksum
How to use checksums
53b0ecb7bb0943d2246e43d2b40b5810002fe6c9d32acf31a83dc59b973df7bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / higra-0.6.13-cp310-cp310-macosx_11_0_arm64.whl

Download URL higra-0.6.13-cp310-cp310-macosx_11_0_arm64.whl
Size 6.1 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
48177fb5c007659814a2de007025f50304828f3a11875d2c63b97c71b945e85f
BLAKE2b-256 checksum
How to use checksums
75b28e9317a0ce7aa2fd7d1fea304c0f4a818215e0279f10b6fef1a78fc74199
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / higra-0.6.13-cp310-cp310-macosx_10_9_x86_64.whl

Download URL higra-0.6.13-cp310-cp310-macosx_10_9_x86_64.whl
Size 7.7 MB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
8a84f4fd09f044a7a49e00e964f8eee619562b3c7310245b7f133190ac7a3604
BLAKE2b-256 checksum
How to use checksums
6e6a37b6726e1c6da4ae0ea1b29f27fd826f09d8383492fa33bc01a8cfa1e6a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release history Release notifications | RSS feed

This release

0.6.13 This release

21 release files

0.6.9

12 release files

0.6.7

15 release files

0.6.4

12 release files

0.6.3

11 release files

0.6.2

12 release files

0.6.1

10 release files

0.6.0

12 release files

0.5.1

12 release files

0.5.0

12 release files

0.4.5

12 release files

0.4.4

12 release files

0.4.2

12 release files

0.4.0

12 release files

0.3.8

12 release files

0.3.7

12 release files

0.3.6

12 release files

0.3.4

12 release files

0.3.0

12 release files

0.2.5

12 release files

0.2.4

12 release files

0.1.8

9 release files

0.1.6

12 release files

0.1.4

12 release files

0.1.0

4 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page