chemparseplot.parse.plumed¶
PLUMED metadynamics HILLS file parsing and FES reconstruction.
Module Contents¶
Functions¶
Helper function to calculate the 2D Free Energy Surface. |
|
Helper function to calculate the 1D Free Energy Surface. |
|
Calculates a 1D or 2D Free Energy Surface (FES) from a metadynamics hills file. |
|
Finds local minima on a Free Energy Surface by dividing it into bins. |
Data¶
API¶
- chemparseplot.parse.plumed._MIN_COLS_1D¶
5
- chemparseplot.parse.plumed._MIN_COLS_2D¶
7
- chemparseplot.parse.plumed._ALPHABET_SIZE¶
26
- chemparseplot.parse.plumed._MIN_BIN_SIZE¶
2
- chemparseplot.parse.plumed._calculate_fes_2d(hills_data, x, y, per, npoints)[source]¶
Helper function to calculate the 2D Free Energy Surface.
The FES is calculated as the negative sum of Gaussian kernels. FES(x, y) = - sum_{i} [ H_i * exp( - (dx_i^2 / (2sx_i^2)) - (dy_i^2 / (2sy_i^2)) ) ]
- chemparseplot.parse.plumed._calculate_fes_1d(hills_data, x, per, npoints)[source]¶
Helper function to calculate the 1D Free Energy Surface.
FES(x) = - sum_{i} [ H_i * exp( - (dx_i^2 / (2*sx_i^2)) ) ]
- chemparseplot.parse.plumed.calculate_fes_from_hills(hills, imin=1, imax=None, xlim=None, ylim=None, npoints=256)[source]¶
Calculates a 1D or 2D Free Energy Surface (FES) from a metadynamics hills file.
.. versionadded:: 0.0.3
This is a Python/NumPy translation of the R function fes2.hillsfile.
Args: hills (dict): A dictionary containing the metadynamics data. Expected keys: ‘hillsfile’ (np.ndarray): The hills data. For 1D FES, shape is (N, 5). For 2D FES, shape is (N, 7). Columns are typically: time, cv1, (cv2), sigma_cv1, (sigma_cv2), height, … ‘per’ (list or tuple): A boolean list indicating periodicity for each CV. e.g., [False, False]. ‘pcv1’ (list or tuple): Periodic boundary limits for CV1. e.g., [0, 2*pi]. ‘pcv2’ (list or tuple): Periodic boundary limits for CV2. imin (int, optional): The starting hill index (1-based) to include in the FES. Defaults to 1. imax (int, optional): The final hill index (1-based) to include. If None, all hills from imin to the end are used. Defaults to None. xlim (list or tuple, optional): Manual limits for the x-axis (CV1). Defaults to None, which auto-detects limits. ylim (list or tuple, optional): Manual limits for the y-axis (CV2). Defaults to None, which auto-detects limits. npoints (int, optional): The number of grid points for each dimension. Defaults to 256.
Returns: dict: A dictionary containing the FES and associated metadata, with keys: ‘fes’: The calculated FES as a 1D or 2D NumPy array. ‘hills’: The original hills data used. ‘rows’: Number of grid points (npoints). ‘dimension’: 1 or 2. ‘per’: Periodicity flags. ‘x’: The grid coordinates for the first dimension (CV1). ‘y’: The grid coordinates for the second dimension (CV2, if applicable). ‘pcv1’, ‘pcv2’: Periodic boundary values.
- chemparseplot.parse.plumed.find_fes_minima(fes_result, nbins=8)[source]¶
Finds local minima on a Free Energy Surface by dividing it into bins.
.. versionadded:: 0.0.3
This is a Python/Pandas translation of the R function fesminima.fes.
Args: fes_result (dict): The output dictionary from calculate_fes_from_hills. nbins (int): The number of bins to divide each dimension into for the search.
Returns: dict: A dictionary containing a pandas DataFrame of the minima and the original FES data. Returns None if no minima are found.