Code for performing uncertainty-driven enhanced sampling using the extended system adaptive biasing force (eABF) coupled with Gaussian-accelerated molecular dynamics (GaMD). The neural network (NN) architecture is based on MACE. The software is based on the paper "Enhanced sampling of robust molecular datasets with uncertainty-based collective variables", and was implemented by Aik Rui Tan and Johannes C. B. Dietschreit.
The folders contain:
- eabfgamd: Classes, methods, and utility functions to implement the uncertainty-driven eABF-GaMD method using the MACE architecture.
ala.py: Provides classes and functions for alanine dipeptide simulations, including topology and energy scaling.calc.py: Contains calculators for OpenMM and LAMMPS to perform molecular dynamics simulations and energy calculations.colvars.py: Defines collective variables for enhanced sampling, including uncertainty and dihedral angles.dihedrals.py: Provides functions to manipulate dihedral angles in molecular structures.enhsamp.py: Implements enhanced sampling methods using uncertainty-driven collective variables for molecular dynamics.ensemble.py: Manages an ensemble of neural network models for uncertainty estimation and prediction.mace_calculators.py: Implements MACE-based calculators for biasing techniques such as eABF, eABF-GaMD for MD simulations.mdlogger.py: Provides logging functionality for molecular dynamics simulations. This is written to log uncertainty of configurations specifically in unbiased simulations.misc.py: Contains miscellaneous utility functions for file handling, logging, and data conversion.npt.py: Implements the Berendsen NPT and Stochastic Cell Rescaling dynamics for pressure and temperature control.nvt.py: Provides Langevin dynamics for constant temperature molecular dynamics simulations.pmf.py: Contains functions to compute potential of mean force (PMF) from simulation data.prediction.py: Provides functions for making predictions and calculating errors using trained models.sampling.py: Offers functions for various sampling strategies based on uncertainty and geometric criteria.saving.py: Handles saving and combining datasets, ensuring data integrity and format consistency.silica.py: Contains paths and energy scaling functions specific to silica simulations.train.py: Provides functions to configure and manage training of neural network models.umbrella_sampling.py: Implements umbrella sampling techniques using MACE calculators for enhanced sampling. This is used to generate PMFs for alanine dipeptide.uncertainty.py: Defines classes for different uncertainty estimation methods in molecular simulations.
- scripts: Wrapper around the classes and methods from
eabfgamdto run uncertainty-driven eABF-GaMD.run_ala_pipeline.py: Manages the execution of the alanine dipeptide simulation pipeline, including job submission and configuration handling.run_silica_pipeline.py: Manages the execution of the silica simulation pipeline, handling job submission, configuration, and enhanced sampling.
- configs: Contains example configuration files with parameters for running simulations and experiments.
Packages needed for the code:
- MACE: https://github.com/ACEsuit/mace
- NeuralForceField: https://github.com/learningmatter-mit/NeuralForceField
- Atomic Simulation Environment: https://gitlab.com/ase/ase
- Scikit-learn
- Scikit-matter
- Amptorch: https://github.com/ulissigroup/amptorch
The data used for the paper is deposited at the Zenodo archive: link.
The reference for the paper is the following: