Metadata-Version: 2.4
Name: pycolvars
Version: 0.1.0
Summary: Python tools to post-process and analyze metadynamics / collective variable data
Author-email: Fabrice Roncoroni <fabrice.roncoroni@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/roncofaber/pycolvars
Project-URL: Repository, https://github.com/roncofaber/pycolvars
Project-URL: Bug Reports, https://github.com/roncofaber/pycolvars/issues
Keywords: metadynamics,collective variables,free energy,molecular dynamics
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Scientific/Engineering :: Chemistry
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.20.0
Requires-Dist: scipy>=1.7.0
Requires-Dist: ase>=3.20.0
Requires-Dist: pandas>=1.3.0
Requires-Dist: matplotlib>=3.3.0
Requires-Dist: seaborn>=0.11.0
Requires-Dist: colorcet>=2.0.0
Provides-Extra: legacy
Requires-Dist: dill>=0.3.0; extra == "legacy"
Dynamic: license-file

# pycolvars

Python tools to post-process and analyze collective variable (CV) data from
metadynamics and umbrella sampling simulations: reading colvars/PLUMED-style
trajectory files, reconstructing free energy surfaces (PMF), and finding
minimum energy paths across them.

This package was originally developed alongside
[`sea_urchin`](https://gitlab.com/electrolyte-machine/sea_urchin) and later
split out as a standalone tool.

## Installation

```bash
pip install -e .
```

## Minimum energy path algorithm

`pycolvars.min_energy_path` finds the path between two basins on an energy
surface that minimises the maximum energy barrier crossed (the minimax / bottleneck
path). It uses the Minimum Spanning Tree of the grid connectivity graph (edge
weight = max endpoint energy), which provably yields the optimal minimax path.
k-th alternative paths are found by iteratively removing the bottleneck edge
of the previous best path and recomputing.

This is a native implementation using `networkx`. It replaces an earlier
vendored copy of [MEPSAnd](https://doi.org/10.1093/bioinformatics/btz684) by
Marcos-Alcalde et al.
