A repository for implementing graph network models based on atomic structures.
- ALIGNN
- ALIGNN-d (our work, see demo)
- Gated GCN
- NequIP (code implementation adopted from
e3nn
) - Atomic Structure denoiser (our work, see demo)
- MeshGraphNets
- Score dynamics (our work, see demo)
- Spectroscopy-guided generation of amorphous structures (our work, see demo)
This animation shows unconditional generation of amorphous carbons. Color is meant to help give you a sense of depth.
Generative rollouts of molecular dynamics over picosecond timesteps via conditional diffusion model.
Simple and effective atomic denoiser for structure characterization.
The installation time is typically less than 10 minutes on a normal local machine.
Installation dependencies:
- PyTorch (
pytorch>=1.8.1
) - PyTorch-Geometric (
pyg>=2.0.1
): for graph data format processing and batching. - [Optional] Atomic Simulation Environment (
ase
): for reading/writing atomic structures and efficient neighbor list algorithm. - [Optional] Euclidean neural networks (
e3nn>=0.4.4
): dependency for the NequIP models.
An example for the installation process:
conda create -n graphite
conda activate graphite
conda install pytorch pytorch-cuda=11.7 -c pytorch -c nvidia
conda install pyg -c pyg
# Optional install dependency, but required for some of the model implementations
pip install ase e3nn
# Other useful packages for development (optional)
pip install jupyterlab ipywidgets seaborn lightning tensorboard MDAnalysis
Then, to install graphite
, clone this repo and run:
pip install -e /path/to/the/repo
The -e
option signifies an editable install, which is well suited for development; this allows you to edit the source code without having to re-install.
To uninstall:
pip uninstall graphite
graphite
is intended to be a general collection of codes (e.g., helper functions, custom graph convolutions, and template graph models) for research purposes. Production codes for certain applications and deployments should be hosted elsewhere.
- The
src
folder contains the source code. - The
notebooks
folder contains Jupyter notebooks that demonstrate running or training models.- Some demos require additional packages (e.g., PyTorch Lightning for automated training). Please see Installation and the instructions in the demos.
LLNL-CODE-836648