Skip to content

Automated creation and manipulation of Chemical Reaction Networks (CRNs) in heterogeneous catalysis, allowing the fast estimation of the network energy profile with GAME-Net-UQ, an uncertainty quantification-based DFT-trained graph neural network.

License

Notifications You must be signed in to change notification settings

LopezGroup-ICIQ/care

Repository files navigation

License: MIT Python 3.11 Python package Powered by RDKit

CARE: Catalysis Automated Reaction Evaluator

CARE (Catalysis Automated Reaction Evaluator) is a tool for generating and manipulating chemical reaction networks (CRNs) for catalysis on transition metal surfaces. CARE is powered with GAME-Net-UQ, a graph neural network with uncertainty quantification (UQ) targeting the DFT energy of relaxed species and transition states.

Installation

We recommend creating an environment with Conda to install the package.

  1. Clone the repo:
git clone git@github.com:LopezGroup-ICIQ/care.git
  1. Create a conda environment with Python 3.11 and activate it:
conda create -n care_env python=3.11
conda activate care_env
  1. Enter the repo and install the package with pip:
cd care
python3 -m pip install . 
  1. Install Julia to run microkinetic simulations with it. This step is required if you want to perform microkinetic simulations with Julia. As alternative, simulations can run with the implemented Scipy solver.
curl -fsSL https://install.julialang.org | sh
  1. Install the required Julia dependencies creating the Julia environment provided by Project.toml
TODO

Usage

The current way to generate chemical reaction networks in CARE requires setting up a .toml configuration file and running the code:

care_run -i input.toml -o output_name

This will generate a directory output_name containing a crn.pkl with the generated reaction network. Examples of input .toml files can be found in src/care/scripts/example_c1o2.toml and src/care/scripts/example_c2o4.toml.

Further details will be uploaded soon.

How to access the CRN

from pickle import load

with open('./C1O4/Pd111/crn.pkl', 'rb') as pickle_file:
    crn = load(pickle_file)

crn is a care.ReactionNetwork object which provides rapid access to the intermediates (care.Intermediate), elementary reactions (care.ElementaryReaction), and its properties as activation barrier care.ElementaryReaction.e_act and reaction energy care.ElementaryReaction.e_rxn.

To visualize a specific elementary step:

crn.visualize_reaction(0)

Notes

The DFT database in ASE format used to retrieve available CRN intermediates will be uploaded soon in Zenodo.

License

The code is released under the MIT license.

Reference

  • A Foundational Model for Reaction Networks on Metal Surfaces
    Authors: S. Morandi, O. Loveday, T. Renningholtz, S. Pablo-García, R. A. Vargas Hernáńdez, R. R. Seemakurthi, P. Sanz Berman, R. García-Muelas, A. Aspuru-Guzik, and N. López
    DOI: 10.26434/chemrxiv-2024-bfv3d

About

Automated creation and manipulation of Chemical Reaction Networks (CRNs) in heterogeneous catalysis, allowing the fast estimation of the network energy profile with GAME-Net-UQ, an uncertainty quantification-based DFT-trained graph neural network.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published