.. mlcolvar documentation master file, created by
sphinx-quickstart on Thu Mar 15 13:55:56 2018.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
mlcolvar: Machine Learning Collective Variables
===============================================
.. image:: https://img.shields.io/badge/Github-mlcolvar-brightgreen
:target: https://github.com/luigibonati/mlcolvar
.. image:: https://img.shields.io/badge/doi-10.1063/5.0156343-blue
:target: https://doi.org/10.1063/5.0156343
.. image:: https://img.shields.io/badge/arXiv:2305.19980-red
:target: https://arxiv.org/abs/2305.19980
``mlcolvar`` is a Python library aimed to help design data-driven collective-variables (CVs) for enhanced sampling simulations. The key features are:
1. A unified framework to help test and use (some) of the CVs proposed in the literature.
2. A modular interface to simplify the development of new approaches and the contamination between them.
3. 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 <(http://dx.doi.org/10.1021/acs.jpclett.8b00733>`_], DeepLDA [`4 <(http://dx.doi.org/2010.1021/acs.jpclett.0c00535>`_], DeepTDA [`5 <(http://dx.doi.org/%2010.1021/acs.jpclett.1c02317>`_]
* Time-informed: TICA [`6 <(http://dx.doi.org/%2010.1063/1.4811489>`_], DeepTICA/SRVs [`7 <(http://dx.doi.org/10.1073/pnas.2113533118>`_, `8 <(http://dx.doi.org/%2010.1063/1.5092521>`_ ], VDE [`9 <(http://dx.doi.org/10.1103/PhysRevE.97.062412>`_]
* Committor-based [`8 <(https://dx.doi.org/10.48550/arXiv.2410.17029)>`_]
And many others can be implemented based on the building blocks or with simple modifications. Check out the documentation and the examples section!
The **workflow** for training and deploying CVs is illustrated in the figure:
.. image:: notebooks/tutorials/images/graphical_overview_mlcvs.png
:width: 800
:alt: Example workflow
The resulting CVs can be then deployed for enhancing sampling with the `PLUMED `_ package via the `Pytorch `_ interface, , available since version 2.9.
Table of contents
-----------------
.. toctree::
:maxdepth: 2
:caption: Contents:
installation
api
tutorials
examples
plumed
contributing
Indices and tables
------------------
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`