Create the hvae conda environment by running the following
conda env create -f env.ymlto install the necessary dependencies. Then run
pip install .to install the holographic_vae package.
If you're going to make edits to the holographic_vae package, run
pip install -e .so you can test your changes.
Code containing building blocks for building expressive SO(3)-equivariant networks using spherical harmonics projections. The code is heavily based on the e3nn package. We decided to re-implement certain operations to work with Dictionary inputs (index by holographic_vae/models/h_vae.py.
Code replicating (most of) our experiments on the MNIST-on-the-Sphere dataset is found in experiments/mnist. Crucially, this folder contains general functions and scripts for forward and inverse spherical fourier transforms, helpful to preprocess any spherical image dataset to be used by H-(V)AE.
Code to use H-(V)AE on protein neighborhoods. We provide code to use our pre-trained models to extract embeddings from a series of PDBs, as well as code to train new models. The code is found in experiments/protein_neighborhoods.
Code to replicate our experiments on the ATOM3D Ligand Binding Affinity task, where our method achieves state-of-the-art performance, as shown in our paper.
Note: this necessitates having a trained H-(V)AE model, either provided by us, or user-trained. Checkout the README in experiments/protein_neighborhoods to learn how to download a pre-trained model, or train a new one with your data.
@article{PhysRevResearch.6.023006,
title = {Holographic-(V)AE: An end-to-end SO(3)-equivariant (variational) autoencoder in Fourier space},
author = {Visani, Gian Marco and Pun, Michael N. and Angaji, Arman and Nourmohammad, Armita},
journal = {Phys. Rev. Res.},
volume = {6},
issue = {2},
pages = {023006},
numpages = {21},
year = {2024},
month = {Apr},
publisher = {American Physical Society},
doi = {10.1103/PhysRevResearch.6.023006},
url = {https://link.aps.org/doi/10.1103/PhysRevResearch.6.023006}
}