mlcolvar
is a Python library aimed to help design data-driven collective-variables (CVs) for enhanced sampling simulations. The key features are:
- A unified framework to help test and use (some) of the CVs proposed in the literature.
- A modular interface to simplify the development of new approaches and the contamination between them.
- A streamlined distribution of CVs in the context of advanced sampling.
The library is built upon the PyTorch ML library as well as the Lightning high-level framework.
Some of the CVs which are implemented, organized by learning setting:
- Unsupervised: PCA, (Variational) AutoEncoders [1,2]
- Supervised: LDA [3], DeepLDA [4], DeepTDA [5]
- Time-informed: TICA [6], DeepTICA/SRVs [7,8], VDE [9]
And many others can be implemented based on the building blocks or with simple modifications. Check out the documentation and the examples section!
PLUMED interface: the resulting CVs can be deployed for enhancing sampling with the PLUMED package via the pytorch interface, available since version 2.9.
Notes: in early versions (v<=0.2.*
) the library was called mlcvs
. This is still accessible for compatibility with PLUMED masterclasses in the releases or by cloning the pre-lightning
branch.
Copyright (c) 2023 Luigi Bonati, Enrico Trizio, Andrea Rizzi and Michele Parrinello. Structure of the project is based on Computational Molecular Science Python Cookiecutter.