Skip to main content

Tree traversals using JAX

Project description

Hyperiax: Tree traversals using JAX

Introduction

Hyperiax is a framework for tree traversal and computations on large-scale tree. Its primary purpose is to facilitate efficient message passing and operation execution on large trees. Hyperiax uses JAX for fast execution and automatic differentiation. Hyperiax is currently developed and maintained by CCEM, UCPH actively.

Initially, Hyperiax was designed specifically for phylogenetic analysis of biological shape data, particularly enabling statistical inference with continuous time stochastic processes along the edges of the trees. For this purpose, is integrated with JAXGeometry, a computational differential geometry toolbox implemented in JAX. However, Hyperiax's messaging system and operations are general, which means that they can be easily adapted for use in other contexts. With minor modifications, Hyperiax can be used for any application where fast tree-level computations are necessary. Included examples cover such cases with inference in Gaussian graphical models, phylogenetic mean computation, and recursive shape matching in binary trees.

Installation

# Install Hyperiax directly using pip
pip install hyperiax

# Install Hyperiax from the repository, for the newest version
pip install git+https://github.com/ComputationalEvolutionaryMorphometry/hyperiax.git

# Install Hyperiax for development
git clone git@github.com:ComputationalEvolutionaryMorphometry/hyperiax.git
# or (if you haven't set up ssh)
git clone https://github.com/ComputationalEvolutionaryMorphometry/hyperiax.git
# and go into the directory
cd hyperiax
# and then install by
pip install -e hyperiax[dev]
# and optionally
pip install -e hyperiax[examples]
# to install the dependencies for all the example notebooks

Documentation

  • Usage: See Usage for different examples of Hyperiax.
  • Full API Documentation: See Hyperiax API

Todo

Contribution

Contributions, issues and feature requests are all welcome! Please refer to the contributing guidelines before you want to contribute to the project.

Contact

If you experience problems or have technical questions, please open an issue. For questions related to the Hyperiax project or CCEM, please contact Stefan Sommer.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hyperiax-2.0.2.tar.gz (10.3 MB view details)

Uploaded Source

File details

Details for the file hyperiax-2.0.2.tar.gz.

File metadata

  • Download URL: hyperiax-2.0.2.tar.gz
  • Upload date:
  • Size: 10.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for hyperiax-2.0.2.tar.gz
Algorithm Hash digest
SHA256 972e2469f8f1f96353a9750814de91fb638d0c3afac4d7b23bba0a70aaa349c4
MD5 8d86c351a243a0261ac15d487ac07904
BLAKE2b-256 5fcbea113443ae78e31c79cd5f3e7e00c9525a3efa677d056a2c06404029e503

See more details on using hashes here.

Supported by

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