Skip to main content

Hierarchical Graph Analysis

Project description

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:

macOS ARM64 is currently only supported through conda conda install higra -c conda-forge

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

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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

higra-0.6.10-cp312-cp312-win_amd64.whl (5.7 MB view details)

Uploaded CPython 3.12 Windows x86-64

higra-0.6.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

higra-0.6.10-cp312-cp312-macosx_10_9_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

higra-0.6.10-cp311-cp311-win_amd64.whl (5.7 MB view details)

Uploaded CPython 3.11 Windows x86-64

higra-0.6.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

higra-0.6.10-cp311-cp311-macosx_10_9_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

higra-0.6.10-cp310-cp310-win_amd64.whl (5.7 MB view details)

Uploaded CPython 3.10 Windows x86-64

higra-0.6.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

higra-0.6.10-cp310-cp310-macosx_10_9_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

higra-0.6.10-cp39-cp39-win_amd64.whl (5.9 MB view details)

Uploaded CPython 3.9 Windows x86-64

higra-0.6.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

higra-0.6.10-cp39-cp39-macosx_10_9_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

higra-0.6.10-cp38-cp38-win_amd64.whl (5.7 MB view details)

Uploaded CPython 3.8 Windows x86-64

higra-0.6.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

higra-0.6.10-cp38-cp38-macosx_10_9_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

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

Hashes for higra-0.6.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1a657ed9855a67df8e57c92f8eb7d8ed9136dd76bb747af967de50a2d91ef2d1
MD5 843fcf5a258cdd789e5c20f032dc5e07
BLAKE2b-256 76c664b3dd9be9d735440af9dd5055632b319ed7eb8e0a50a55490cb8be65e09

See more details on using hashes here.

File details

Details for the file higra-0.6.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for higra-0.6.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c6ddbee80dafd0e091f31f005e406228b70ab06a80c0cd3c7f5c7aeebdba780f
MD5 fa0f965d24dcdf3a3acf170c6c6cb9c0
BLAKE2b-256 6fca8e271f53817dbad65a47975e2b96854c4ef1bfec2f513a3ed2653ee024ef

See more details on using hashes here.

File details

Details for the file higra-0.6.10-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for higra-0.6.10-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 669d5951b58adb7ee5693ca97c3c17b1b5bffff51afdcc3115a38344ccb41329
MD5 f993da84f6271e71e17bb53fa6b4604a
BLAKE2b-256 488c5a3730732c64eb8d3e99d57655361892cf1e73687a8b1260dc02b4b664a7

See more details on using hashes here.

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

Hashes for higra-0.6.10-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 06491d15b88095c9e9216bc938eb91d57cf5050262214d7bf9323b0bfa048e40
MD5 11b0a610291ff27950f5a20054bc0b1b
BLAKE2b-256 ed33688f1a990654a3f80e66d578f8faaac960d1ea79175226f70aad9e289887

See more details on using hashes here.

File details

Details for the file higra-0.6.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for higra-0.6.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 707f18f1a1adb89719a80adbee7ab21806c5293923b956e6458a62a77f438866
MD5 e67acd54ac4a9def196fb744fb40d7be
BLAKE2b-256 48c252a9a0505561bb0a984f1dfddb1ec14f073ccf45d8fbe478a2e5736a82ec

See more details on using hashes here.

File details

Details for the file higra-0.6.10-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for higra-0.6.10-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4a82a45e016359721fdafbda394c6e6bf8150254bb21dd005790167b048aacb7
MD5 df5a1c71e448810003f6ae66013e0ffb
BLAKE2b-256 285e2474e3f1ddc63a08a18d7b53ae2ed9d2035586985daf485e91476e5225e3

See more details on using hashes here.

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

Hashes for higra-0.6.10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 cb4f9f71eba4e4a410cd22d5a49f0721f3f1b9185e4d1461e7edf5aba456c8ac
MD5 027b8dfc7005e001cade71e86447b5cc
BLAKE2b-256 09c9956fc2b7539a64b47ca2588c8ed3a5ec1dac4978d4a2c75496705551f705

See more details on using hashes here.

File details

Details for the file higra-0.6.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for higra-0.6.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d36149a81579965f8082004e93f6b94bd10282cb27fc9208dd0c9e74ef0019d1
MD5 e3c17acd45920b927be88c9759be426a
BLAKE2b-256 b82812c71ac298a1d60d73c144844b602ac4d51acf25ee04e18550f1a00656a0

See more details on using hashes here.

File details

Details for the file higra-0.6.10-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for higra-0.6.10-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0023a410ebbe26a23db3927acd48260b9b24ea3651212ad16cf12f45af5b90f1
MD5 690bd2e4fdf96e1f23c1cef45f1971fe
BLAKE2b-256 8fb47c6779a190a5262a36da7d6b7a30f3c1cb9731f8c392f5cece7263c8ed0d

See more details on using hashes here.

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

Hashes for higra-0.6.10-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 ff15317adbb708f1509c7441a710c874e4e5d2d97562f02f4d396bbd287a98f5
MD5 02addfe50678f8546095811c8df37a39
BLAKE2b-256 dbde2216cf2afa3f63acf7fb6d02504a94587462b429fe167d168b55a00d0466

See more details on using hashes here.

File details

Details for the file higra-0.6.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for higra-0.6.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8ff005f988b41b9f33a48c179398870d3233fff349c5c72ade8a304dc9029f69
MD5 d9cbcbe5c577ef1cee9b2fce5bcee02c
BLAKE2b-256 4354ffc4d9ba9949a65a50856604b41564b13aed15ebc648cebe6f1bda602a92

See more details on using hashes here.

File details

Details for the file higra-0.6.10-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for higra-0.6.10-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2268106d6f7159da928607eeb4644344df74e440f18959e3c2df02e27a335219
MD5 309115d4814495b64956d5770b112aab
BLAKE2b-256 c074e9ba1cb623ff3b2adc652dd462fcca17d6be6311fbf2cf86f2629ca606c7

See more details on using hashes here.

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

Hashes for higra-0.6.10-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 a7e2dd1bd75ff703aa7b66ae64ac9c50f18c47a4a6c650d7e9908a912802f52e
MD5 d098b674fb437c93c69712dfd1b60265
BLAKE2b-256 6ef0cf15fda64489762feab01e121cf2cb29578ca5791bcf31edc6826a3f1eec

See more details on using hashes here.

File details

Details for the file higra-0.6.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for higra-0.6.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e8dea7610936c018b03aaaf35775f123b2548f6ccdb61e05fea7c0052b54a921
MD5 2836604f9c5c35a96b8d09b4cb71eae9
BLAKE2b-256 80937b2efc185f0bb09d7846d345bb4ef2381ec1466ab8395ea6349923bc2fe1

See more details on using hashes here.

File details

Details for the file higra-0.6.10-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for higra-0.6.10-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 459aa14df0a4edf9c58e42e20805df44720b403818f27764a5a53159c5db2ce0
MD5 26ef86dd09e29e11a00dcec4c5cb647f
BLAKE2b-256 48294683da4c328cf22a61927020591bbb398b5643e860a1b85441ff9a99bc4e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page