The easiest way to use MLatom is not to install it locally but run on the XACS cloud. If you want to install it anyway, please follow instruction below. You can watch a short video demonstrating how to install and use MLatom.
MLatom is a Python package and can be easily installed on Linux using this shell command:
pip install mlatom
You also need to install required dependences in your Python environment as described below.
pip install numpy scipy torch torchani tqdm matplotlib statsmodels h5py pyh5md
Useful optional modules
pip install sgdml rmsd openbabel xgboost scikit-learn pyscf rmsd rdkit pandas \ ase fortranformat tensorflow
Full Anaconda environment setup:
conda create -N mlatom --file mlatom.yml conda activate mlatom
Additional software packages
Many MLatom features are relying on other third-party software packages which are not Python modules and should be installed and setup separately as described here.
The third-party packages below are optional and can be installed separately to enable specific features.
Install Newton-X (NX, preferably version==2.2 for which our implementations were tested)
export NX=/path/to/Newton-Xto define the
TorchANI is required for calculations with AIQM1 and ANI family of potentials.
install Numpy and nightly version of PyTorch (if you do not have them already):
pip install numpy tensorboard pip install --pre torch torchvision -f https://download.pytorch.org/whl/nightly/cu100/torch_nightly.html
pip install torchani
Visit https://aiqm.github.io/torchani/ for more info. The latest version of TorchANI used for testing was v2.2, you can
install this version by
pip install torchani==2.2 if there are any problems when running with the newest version of
TorchANI. The CUDA extension for AEV calculation is not supported for the NN part of AIQM1 and ANI-1ccx now.
Required for DPMD and DeepPot-SE potentials.
download installer for DeePMD-kit from GitHub (tested v1.2.2)
add environmetal variable
$DeePMDkitthat point to the where dp binary is located (
bin/in your installation directory), e.g.
GAP and QUIP
Required for GAP-SOAP potentials.
compile QUIP and GAP from source
1.1 install prerequisites
sudo apt-get install gcc gfortran python python-pip libblas-dev liblapack-dev # for system uses apt, do equivalent for your OS pip install numpy ase f90wrap
1.2 get source code of QUIP and GAP
git clone --recursive https://github.com/libAtoms/QUIP.git
Get source code of GAP from http://www.libatoms.org/gap/gap_download.html (form-filling required).
Then put source code in
cd QUIP export QUIP_ARCH=linux_x86_64_gfortran_openmp # enable multi-threading, use 'export QUIP_ARCH=linux_x86_64_gfortran' if no OpenMP thus no MT capability export QUIPPY_INSTALL_OPTS=--user # omit for a system-wide installation make config
Y for gap or edit
Built binaries are in
add environmetal variable
$gap_fitfor quip and gap_fit, e.g.
export quip='/export/home/fcge/GAP-SOAP/QUIP/build/linux_x86_64_gfortran_openmp/quip' export gap_fit='/export/home/fcge/GAP-SOAP/QUIP/build/linux_x86_64_gfortran_openmp/gap_fit'
visit https://libatoms.github.io/GAP/index.html for more information.
Required for PhysNet models.
clone form PhysNet’s GitHub page
git clone https://github.com/MMunibas/PhysNet.git
pip install tensorflow
if you use TensorFlow v2, you need to execute the command below in PhysNet’s directory to make the scripts compatible with TFv2.
for i in `find . -name '*.py'`; do sed -i -e 's/import tensorflow as tf/import tensorflow.compat.v1 as tf\ntf.disable_v2_behavior()/g' -e 's/import tensorflow as tf/import tensorflow.compat.v1 as tf\ntf.disable_v2_behavior()/g' $i; done
add environmetal variable
$PhysNetto the directory, e.g.
Required for GDML and sGDML potentials.
pip install sgdml==0.4.4
add the path of sGDML binary to environmetal variable
Visit http://quantum-machine.org/gdml/doc/ for more information.
In our tests we found that installation is more stable with:
pip install scipy==1.7.1.
MNDO program is required to provide the ODM2* part of AIQM1. Alternatively, a (development) version of SCINE Sparrow can be used in the future (see a paper on Sparrow; note that the development version of Sparrow also implements single-point AIQM1 calculations).
The free binary and open-source code of the MNDO program is available from the official distributors of the MNDO code as described at https://mndo.kofo.mpg.de.
After the MNDO program is installed, you need to set the environmental variable pointing to the MNDO executable (typically
mndo99), e.g., in bash:
export mndobin=[path to the executable]/mndo99
dftd4 program is required to provide the D4 part of AIQM1.
The dftd4 program can be obtained as both executable and open-source code. We recommend to use dftd4 v3.5.0, which can calculate Hessian needed for thermochemical calculations. To install the dftd4 program from source code, please see the README.md file on dftd4 GitHub page for more details.
After the dftd4 program is installed, you need to set the environmental variable pointing to the
dftd4 executable, e.g., in bash:
export dftd4bin=[path to the executable]/dftd4
Required for geometry optimizations, freq, TS search, IRC, thermochemistry, and ML-NEA. For some of these tasks, alternatively, ASE can be used, see below.
Our implementation work with both Gaussian 09 and Gaussian 16. It is a commercial program, which can be obtained and installed separately.
To use Gaussian interface, make sure that your environmental variable
$GAUSS_EXEDIR points to the right place.
Required for geometry optimizations, freq, and thermochemistry. Alternatively, Gaussian can be used, see above.
The ASE (Atomic Simulation Environment) are Python modules, which can be installed as described on ASE website, i.e.:
pip install ase
To enable hyperopt, please run
pip install hyperopt to install the hyperopt package.
Source code is on GitHub:
git clone https://github.com/dralgroup/mlatom.git