Metadata-Version: 2.4
Name: hax-em
Version: 1.0.4
Summary: Hax - A suite for Heterogeneity analysis for CryoEM data
Requires-Python: <3.12,>=3.11
Description-Content-Type: text/markdown
Requires-Dist: einops<=0.8.2
Requires-Dist: tqdm<=4.67.2
Requires-Dist: matplotlib<=3.10.8
Requires-Dist: numpy<=2.2.6
Requires-Dist: scikit-learn<=1.8.0
Requires-Dist: xmipp_metadata>=1.2.4
Requires-Dist: grain<=0.2.15
Requires-Dist: pandas<=2.2.3
Requires-Dist: flax==0.12.4
Requires-Dist: orbax<=0.1.9
Requires-Dist: orbax-checkpoint<=0.11.32
Requires-Dist: cloudpickle<=3.1.2
Requires-Dist: dm_pix<=0.4.4
Requires-Dist: tensorboard<=2.19.0
Requires-Dist: pynndescent<=0.6.0
Requires-Dist: napari[all]<0.7.0,>=0.6.0
Requires-Dist: napari-molecule-reader
Requires-Dist: umap-learn<=0.5.11
Requires-Dist: setuptools==81
Requires-Dist: mmap_ninja<=0.8.2
Requires-Dist: lz4<=4.4.5
Requires-Dist: tensorboardX<=2.6.4
Requires-Dist: tbb<=2022.3.1
Requires-Dist: sympy<=1.14.0
Requires-Dist: ott-jax<=0.6.0
Provides-Extra: torch-datasets
Requires-Dist: torch<=2.0.1; extra == "torch-datasets"
Provides-Extra: tensorflow-datasets
Requires-Dist: tensorflow<=2.19.0; extra == "tensorflow-datasets"
Requires-Dist: tensorflow-datasets<=4.9.9; extra == "tensorflow-datasets"
Provides-Extra: cuda12
Requires-Dist: jax[cuda12]==0.9.0; extra == "cuda12"
Requires-Dist: cuml-cu12==25.12.*; extra == "cuda12"
Requires-Dist: cupy-cuda12x<=14.0.1,>13.6.0; extra == "cuda12"
Provides-Extra: cuda13
Requires-Dist: jax[cuda13]==0.9.0; extra == "cuda13"
Requires-Dist: cuml-cu13==25.12.*; extra == "cuda13"
Requires-Dist: cupy-cuda13x<=14.0.1,>13.6.0; extra == "cuda13"

<h1 align='center'>Hax - A suite for Heterogeneity analysis for CryoEM data</h1>

<p align="center">
        
<img alt="Supported Python versions" src="https://img.shields.io/badge/Supported_Python_Versions-3.11-blue">
<img alt="GitHub Downloads (all assets, all releases)" src="https://img.shields.io/github/downloads/I2PC/Flexutils-Toolkit/total">
<img alt="GitHub License" src="https://img.shields.io/github/license/I2PC/Flexutils-Toolkit">

</p>

<p align="center">
        
<img alt="HAX" width="300" src="https://github.com/DavidHerreros/hax-em/blob/main/hax/viewers/annotate_space/media/logo.png">

</p>

This package includes several tools to study conformational heterogeneity from CryoEM data.

# Heterogeneity analysis programs

- **Zernike3Deep**: Semi-classical neural network to analyze continuous heterogeneity with the Zernike3D basis
- **HetSIREN**: Neural network heterogeneous reconstruction for real space
- **ReconSIREN**: Neural network for ab initio reconstruction and global angular assignment

# Consensus of conformational landscapes

- **FlexConsensus**: Consensus neural network for conformational landscapes

# Annotation of conformational landscapes

- **Annotate space**: Interactive inspection of conformational landscapes and conformational states

# Reconstruction of motion corrected volumes

- **MoDART**: Real space reconstruction with motion correction derived from deformation fields

# Installation

Hax needs `pip` to install its dependencies. The installation on a independent Conda environment is strongly recommended.

We recommend installing the package directly from Pypi using the command:

```bash
  
  # Cuda 13 command
  pip install hax-em[cuda13]
  
  # Cuda 12 command
  pip install hax-em[cuda12]

```

If you prefer to have a local copy of this repository, you may also clone directly from GitHub and install the package with the following command (assuming that you are already inside the cloned folder):
```bash

  pip install .

```

> [!WARNING]
> Supported NVIDIA drivers version: >= 525 (Cuda 12/13 will be installed along the package, so there is no need to have CUDA already installed in your system).

# Usage of the command line interface

After installing the software, you will be able to launch the command `hax_project_manager`. This command allows to easily execute all the tools integrated inside `Hax` package.

A detailed explanation on how to call the programs can be obtained by running:

```bash

  hax_project_manager -h

```

To see the help of any program, you may use:

```bash

  hax_project_manager program -h

```

Where `program` is the name of any method listed by the first help command (e.g. `hetsiren`)

# References

- Herreros, D., Lederman, R.R., Krieger, J.M. et al. **Estimating conformational landscapes from Cryo-EM particles by 3D Zernike polynomials**. *Nat Commun* 14, 154 (2023). 
[![DOI:10.1038/s41467-023-35791-y](https://zenodo.org/badge/DOI/10.1007/978-3-319-76207-4_15.svg)](https://doi.org/10.1038/s41467-023-35791-y)
- Herreros, D., Kiska, J., Ramirez-Aportela, E. et al. **ZART: A Novel Multiresolution Reconstruction Algorithm with Motion-blur Correction for Single Particle Analysis**. *Journal of Molecular Biology* 435, 168088 (2023). 
[![DOI:10.1016/j.jmb.2023.168088](https://zenodo.org/badge/DOI/10.1007/978-3-319-76207-4_15.svg)](https://doi.org/10.1016/j.jmb.2023.168088)
- Herreros, D., Mata, C.P., Noddings, C. et al. **Real-space heterogeneous reconstruction, refinement, and disentanglement of CryoEM conformational states with HetSIREN**. *Nat Commun* 16, 3751 (2025). 
[![DOI:10.1038/s41467-025-59135-0](https://zenodo.org/badge/DOI/10.1007/978-3-319-76207-4_15.svg)](https://doi.org/10.1038/s41467-025-59135-0)
- Herreros, D., Perez Mata, C., Sanchez Sorzano, C.O. et al. **Merging conformational landscapes in a single consensus space with FlexConsensus algorithm"**. *Nat Methods* (2023). 
[![DOI:10.1038/s41592-025-02841-w](https://zenodo.org/badge/DOI/10.1007/978-3-319-76207-4_15.svg)](https://doi.org/10.1038/s41592-025-02841-w)
