Skip to content

rangsimanketkaew/deepcv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

287 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deep Learning for Collective Variables (DeepCV)

DeepCV is a generative model to learn and generate collective variables (CVs) of a chemical process for enhanced sampling molecular simulations, using deep autoencoder neural network (DAENN) model (non-iterative approach) and a Min-Max game for loss customization.

Website: https://lubergroup.pages.uzh.ch/deepcv/

Papers:

  1. R. Ketkaew, F. Creazzo, and S. Luber. J. Phys. Chem. Lett. 2022, 13, 7, 1797-1805
  2. R. Ketkaew and S. Luber. J. Chem. Inf. Model. 2022, 62, 24, 6352-6364

Main Features

  1. Molecular descriptors
    • Internal coordinates
    • SPRINT and eXtended SPRINT coordinates
  2. Stacked autoencoder
  3. Loss customization with minimaxation technique to learn CVs in expanded configurational space
    • Primary loss: main loss with regularization
    • Secondary loss: Additional loss to be maximized to expand the CV space
  4. Generative model for generating data
    • Generative adversarial networks (GANs)
  5. Can interface with PLUMED
  6. Tools
    • Input file generator (GUI) for PLUMED and CP2K
    • Feature importance analysis
    • Sampling convergence assessment

Quick installation

  • Install with pip:

    cd deepcv
    pip install -r requirements.txt
    pip install .
  • Install with conda:

    conda env create --file environment.yml
    conda activate deepcv
Dependencies

Install dependencies (packages required by DeepCV) separately (recommended for the developers)

Usage

You can call DeepCV's module via registered entry point deepcv followed by a module, e.g.:

deepcv daenn -i input_ae_DA.json

or by executing main.py API script:

python deepcv/src/main.py daenn -i input_ae_DA.json

where input_ae_DA.json is an input file of DAENN for Diels-Alder reaction.

Development

  • Python 3.9 - 3.12
  • 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

In Progress

  1. Improve variational autoencoder generator
  2. Improve the scaling of neural network algorithm for large systems e.g. metal-oxide surface
  3. Improve code compatibility between TensorFlow, PLUMED, and CP2K
  4. Implement graph-based models

Authors

  1. Rangsiman Ketkaew (rangsiman.ketkaew@chem.uzh.ch)
  2. Sandra Luber (sandra.luber@chem.uzh.ch)

About

Generative Deep Learning for Collective Variables (DeepCV) mirrored from https://gitlab.uzh.ch/lubergroup/deepcv

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors