Installation

Dependencies

A portion of AniSOAP is written in Rust, so installing the Rust compiler (rustc) and package manager (Cargo) is a prerequisite. Please follow the instructions for your platform here: https://rustup.rs/. Note that on unix systems, one must first install the C-compiler toolchain before installing rust. Rust and cargo are properly installed when rustc --version and cargo --version don’t produce an error.

The rest of the python dependencies are in pyproject.toml in the root folder and are all available on PyPI. Installing the AniSOAP package will automatically install the dependencies. We recommend using an environment manager like conda (https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html) to create a clean working environment for AniSOAP.

Installing AniSOAP

Navigate to the directory where you would like the AniSOAP package to be located, then copy and paste the following into your shell:

git clone https://github.com/cersonsky-lab/AniSOAP

Then navigate to the AniSOAP directory with:

cd AniSOAP

Then, install the AniSOAP library and the latest version of all dependencies:

pip install .

Note that this step compiles the rust dependencies, so this step will fail if rust is not installed.

If this step fails because of incompatabilities related to dependency-versioning, we provide a requirements.txt file that contains pinned versions for most of these dependencies, located in the root directory of the AniSOAP project. Use:

pip install -r requirements.txt

to install dependencies, then run pip install . again to install the AniSOAP library itself.

Testing

AniSOAP is still under active development, so you may want to run some tests to ensure that your installation is working properly. From the main directory you can run the internal tests with:

pytest tests/.

Local Documentation Build

To build the documentation locally, you can install additional Sphinx dependencies using:

pip install -r docs/requirements.txt

Then, you can use the Makefile in docs/ to build the docs. For example, navigating to the docs/ folder, then running make html will create the html documentation and place it in the docs/build. Doing so will also run the examples in notebooks/example01_invariances_of_powerspectrum.py and notebooks/example02_learn_benzene.py and embed these examples in the documentation. To build documentation without running the examples, you can use make html-noplot. This will run much more quickly.