DeepCV is a tool to learn collective variables (CVs) of a chemical process for enhanced sampling simulation, using deep autoencoder neural network (DAENN) model.
Website: https://lubergroup.pages.uzh.ch/deepcv/
- Molecular features
- Internal coordinates
- SPRINT and eXtended SPRINT coordinates
- Autoencoder (non-iterative approach)
- Single and multi-input simple and stacked autoencoder
- Avoid saturation
- GPU acceleration
- Learn CVs in expanded configurational space
- Customized loss functions with minimaxation technique
- Primary loss: main loss with regularization
- Secondary loss: Additional loss to be maximized to expand the CV space
- Self-directed expansion of configurational space
- Customized loss functions with minimaxation technique
- Generative model for generating data
- Generative adversarial networks (GANs)
- Can interface with PLUMED and CP2K
- Input file generator (GUI) for PLUMED and CP2K
- Analysis tools
- Feature importance
- Sampling convergence assessment
-
Python codes
cd deepcv/ pip install -r requirements.txt pip install .
-
C++ codes
cd deepcv/ export LIB_TF=/usr/local/tensorflow/ g++ -Wall -fPIC -o deepcv.o deepcv.cpp \ -O3 -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14 -fPIC \ -I${LIB_TF}/include/ -L${LIB_TF}/lib \ -ltensorflow -ltensorflow_cc -ltensorflow_framework g++ -shared -fPIC -o deepcv.so deepcv.o
or you can use
make
make CXXFLAGS="-std=c++14 -fPIC"
The following is an example command for training model of CVs for Diels-Alder reaction using features extracted from reactant trajectory. You can call DeepCV's DAENN via either main.py
API or deepcv_daenn
command (register entrypoint).
python deepcv/src/main.py daenn -i input_ae_DA.json
or
deepcv_daenn -i input_ae_DA.json
- Python 3.10 or a newer version
- TensorFlow 2.16 and Keras 3 or newer version
- Use git control:
git clone https://gitlab.uzh.ch/lubergroup/deepcv.git
- Please write function docstring and comment for difficult-to-understand code
- Document modules and packages you are developing
- Format codes with Black
- Send pull-request to master with an explanation, for example, what you contribute, how it works, and usefulness
To install all dependencies packages of DeepCV, use conda
or pip
:
Conda
(recommended)conda update --all -y
conda install --file requirements.txt
pip
pip install --upgrade pip
pip install -r requirements.txt
Install packages separately (recommended for the developers)
- All packages are listed in requirements.txt
- DeepCV C++ makes use of JSON parser: https://github.com/nlohmann/json
- Variational autoencoder
- Improve neural network algorithm for large systems e.g. metal-oxide surface
- Improve code compatibility between TensorFlow, PLUMED, and CP2K
- Rangsiman Ketkaew (rangsiman.ketkaew@chem.uzh.ch)
- Sandra Luber (sandra.luber@chem.uzh.ch)