Skip to content

Indranil17/CRISP

Repository files navigation

CRISP

Documentation Status PyPI version Python Version License DOI

CRISP: Enhancing ASE Workflows with Advanced Molecular Simulation Post-Processing

What is CRISP?

CRISP is a post-simulation analysis package built on the Atomic Simulation Environment (ASE). It is designed for efficient and insightful analysis of molecular dynamics (MD) and other simulations, enabling in-depth exploration with just a few lines of code, including powerful visualisation options.

Features

  • User-friendly: Optimised for ease of use with detailed examples and extensive outputs for nuanced data analysis.
  • Highly parallelised: Utilises parallelisation techniques that scale linearly with the number of CPU cores, allowing for fast analysis of large systems and long simulations on high-performance computing clusters.
  • Interactive Visualisation: HTML outputs to interact with, which can help to see structural changes.
  • Integration: ASE, scikit-learn and other Python packages.

Analysis Toolkit Highlights

1. Cluster Comprehension

  • Perform in-depth clustering analysis in molecular dynamics or Monte Carlo simulations using advanced algorithms like DBSCAN.
  • Works with both periodic and non-periodic systems.
  • Identify, visualise, and track distinct atom clusters to gain insights into unbiased clustering of selected atoms.

2. Customizable Radial Distribution Functions

  • Compute and plot partial radial distribution functions (PRDF) for selected atoms or atom types.
  • Easily analyse radial relationships between atoms with periodic boundary conditions.

3. Mean Square Displacement (MSD)

  • Quantify atomic motion over time using MSD calculations, providing key insights into diffusion and dynamics.
  • Customise analysis by selecting specific atom indices to focus on particular subsets of atoms.

4. Hydrogen Bond Analysis

  • Identify and analyse hydrogen bonds with a single line of code.
  • Customise hydrogen bond parameters or atom indices for detailed and specific analysis.
  • Track structural parameters to understand the nature and stability of hydrogen bonds in your system.

5. Coordination Analysis

  • Compute average coordination numbers for specific atom types with customizable cutoffs.
  • Analyse contact times of selected atom types to study dynamic behaviour efficiently.

6. Error Analysis

  • Accurately estimate the error of any computed property using statistical techniques.
  • Choose between autocorrelation function or block averaging to calculate the error of the mean, improving result reliability.
  • Assess simulation convergence by analysing vector or scalar properties like atomic positions or energy.

7. Efficient and Robust Sampling

  • Sample structures using Furthest Point Sampling (FPS) with SOAP descriptors.
  • Efficiently subsample large databases or simulations by selecting the most diverse structures while avoiding redundancy.

7. Volumetric Density

  • Create 3D volumetric density maps to visualise the spatial distribution of atoms throughout a trajectory
  • Understanding diffusion pathways, adsorption sites etc.

Requirements

This package is built around the ASE (Atomic Simulation Environment) and thus requires the installation of ASE, available at: ASE Installation Guide.

The clustering uses DBSCAN (Density-Based Spatial Clustering of Applications with Noise) implemented by scikit-learn, available at: scikit-learn Installation.

For interactive 3D plots of clustering, CRISP utilises the seaborn package. Ensure you have seaborn installed by following the instructions at: Seaborn Installation.

Installation

  1. Now, for the testing period, just pull the folder to the local drive, and then go inside the "CRISP" folder locally inside the terminal.

  2. In the same terminal type

pip install .

, then you can run the package in your local system environment globally.

or

pip install CRISP-ase
  1. In a virtual environment as a standalone installation, please install the dependencies via the command line, type
pip install ase>=3.23.0 scikit-learn>=1.4.2 seaborn>=0.12.2 joblib>=1.2.0 fpsample>=0.3.3 dscribe>=2.0.0 statsmodels>=0.14.0 pandas>=2.0.3 plotly>=5.9.0 networkx>=3.1

Current Modules

To learn how to use each of the modules, please visit examples. Inside the example folder, check the Notebook to see them in use and also check the other folders of the example folder to see the outputs. It has two sub-packages and ten modules.
Please see the package's UML map below.

Acknowledgments

The package is from the (Nano)Materials modelling group, at Charles University.
Email: [email protected]

Contributors

If there is something you would like to see added to this package or if you would like to contribute,
please email us at [email protected] or [email protected]

About

CRISP: Enhancing ASE Workflows with Advanced Molecular Simulation Post-Processing

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •