Skip to main content

Activity-Stability-Cost Integrated Catalyst Discovery Framework

Project description

ASCICat Logo

Activity-Stability-Cost Integrated Catalyst Discovery

A unified multi-objective framework for translating computational catalyst data into reproducible, experimentally-actionable rankings

Python Version License DOI GitHub Stars

InstallationQuick StartFeaturesDocumentationContributing

Open In Colab Binder


Overview

The computational catalysis community has generated massive ML/DFT databases (OpenCatalyst, Materials Project, Catalysis-Hub, NOMAD, AFLOW) containing thousands of calculated catalyst properties. However, there exists no standardized framework to translate this wealth of data into actionable experimental priorities.

ASCICat bridges this gap by providing a unified, transparent, and reproducible framework for multi-objective catalyst prioritization.

Input  →  ASCICat  →  Output


The Problem We Solve

Current Challenge ASCICat Solution
No unified framework for catalyst selection Standardized ASCI metric applicable to any catalyst dataset
Ad-hoc, non-reproducible selection criteria Transparent weighting with explicit trade-off documentation
Results cannot be compared across studies Common metric enables direct cross-study comparison
Hidden assumptions in catalyst ranking Built-in sensitivity analysis reveals weight dependencies

Scientific Framework

ASCICat implements a three-pillar scoring system grounded in fundamental catalysis principles:

Activity (Sa)

Sabatier Principle
Optimal binding energy for reaction kinetics

Stability (Ss)

Surface Thermodynamics
Dissolution resistance and durability

Cost (Sc)

Economic Viability
Material pricing and availability

The Unified ASCI Metric:

φ_ASCI = w_a · S_a + w_s · S_s + w_c · S_c

where:  w_a + w_s + w_c = 1
        S_a, S_s, S_c ∈ [0, 1]

Installation

From Source

# Clone the repository
git clone https://github.com/NabKh/ASCICat.git
cd ASCICat

# Install in development mode
pip install -e .

Optional Dependencies

# For GUI interface
pip install -e ".[gui]"

# For interactive Jupyter visualizations
pip install -e ".[interactive]"

# For full development environment
pip install -e ".[dev]"

Requirements

  • Python 3.8+
  • NumPy, Pandas, SciPy, Matplotlib, Seaborn
  • See setup.py for complete dependency list

Quick Start

Python API

from ascicat import ASCICalculator

# Initialize calculator for HER reaction
calc = ASCICalculator(reaction='HER')

# Load your DFT data
calc.load_data('data/HER_clean.csv')

# Calculate ASCI scores with custom weights
results = calc.calculate_asci(
    w_a=0.4,  # 40% weight on Activity
    w_s=0.3,  # 30% weight on Stability
    w_c=0.3   # 30% weight on Cost
)

# Get top-ranked catalysts
top_catalysts = calc.get_top_catalysts(n=10)
print(top_catalysts[['symbol', 'ASCI', 'activity_score', 'stability_score', 'cost_score']])

Output:

      symbol     ASCI  activity_score  stability_score  cost_score
0      Fe2Sb4   0.899           0.923            0.851       0.924
1       Cu3Sb   0.887           0.912            0.867       0.883
2      Cu6Sb2   0.876           0.889            0.856       0.882
...

Command-Line Interface

# HER screening with default weights
ascicat --reaction HER --data data/HER_clean.csv --output results/

# CO2RR screening with custom weights
ascicat --reaction CO2RR --pathway CO --weights 0.5 0.3 0.2 --output results/

# Launch graphical interface
ascicat-gui

Interactive Tutorials

Run the tutorials directly in your browser — no installation required:

Tutorial Description Launch
01 - Introduction ASCICat framework and basic workflow Open In Colab
02 - HER Screening Complete HER catalyst analysis Open In Colab
03 - CO2RR Analysis Multi-pathway CO2RR screening Open In Colab
04 - Visualization Publication-quality figure generation Open In Colab
05 - Sensitivity Weight sensitivity analysis Open In Colab

Or launch all tutorials in Binder: Binder


Features

Core Capabilities

  • Multi-objective optimization with customizable weight preferences
  • Multiple reaction pathways: HER, CO2RR-CO, CO2RR-CHO, CO2RR-COCOH
  • Publication-quality visualizations at 600 DPI
  • Comprehensive sensitivity analysis for robust screening
  • Pareto frontier analysis for trade-off exploration
  • Batch processing for high-throughput screening
  • Colorblind-friendly visualization palettes

Supported Reactions

Reaction Pathway Optimal ΔE Description
HER H adsorption -0.27 eV Hydrogen Evolution Reaction
CO2RR CO -0.67 eV Carbon monoxide production
CO2RR CHO -0.48 eV Methanol pathway
CO2RR COCOH -0.32 eV Formic acid pathway

Sensitivity Analysis

ASCICat includes built-in tools to address the critical "weight selection problem":

from ascicat import SensitivityAnalyzer, SensitivityVisualizer

# Analyze sensitivity across weight space
analyzer = SensitivityAnalyzer(calc)
results = analyzer.analyze_full_weight_space(resolution=20)

# Generate visualization suite
visualizer = SensitivityVisualizer(results)
visualizer.plot_ternary_heatmap()
visualizer.plot_catalyst_dominance()
visualizer.plot_rank_trajectories()

This enables researchers to:

  • Understand how rankings depend on weight choices
  • Identify robust candidates that rank well regardless of weights
  • Document the sensitivity of conclusions transparently

Examples

The examples/ directory contains complete, documented workflows:

Example Description
example_1_HER_screening.py Complete HER catalyst screening workflow
example_2_CO2RR_screening.py Multi-pathway CO2RR analysis
example_3_visualization.py Publication figure generation
example_4_sensitivity_analysis.py Weight sensitivity study
example_5_ascicat_vs_pareto.py Comparison with Pareto methods

Data Format

ASCICat accepts CSV files with the following structure:

Column Type Description Unit
DFT_ads_E float Adsorption energy eV
surface_energy float Surface energy J/m²
Cost float Material cost $/kg
symbol str Catalyst identifier -
optimal_energy float Sabatier optimum eV

See data/README_DATA.md for detailed specifications.


Complementarity with Pareto Analysis

ASCICat and Pareto frontier methods are complementary approaches:

Pareto Analysis ASCICat
Identifies non-dominated trade-off set Provides deterministic ranking within the set
Multiple equivalent solutions Single prioritized list
No weight specification needed Explicit, documented weights
Difficult cross-study comparison Reproducible comparison metric

Key insight: Top ASCI-ranked catalysts are predominantly Pareto-optimal, validating both methodologies.


Project Structure

ASCICat/
├── ascicat/                 # Core package
│   ├── calculator.py        # Main ASCICalculator class
│   ├── scoring.py           # Score computation
│   ├── visualizer.py        # Visualization tools
│   ├── analyzer.py          # Statistical analysis
│   └── sensitivity.py       # Sensitivity analysis
├── scripts/                 # CLI and GUI tools
├── examples/                # Usage examples
├── tutorials/               # Jupyter notebook tutorials
├── data/                    # Catalyst datasets
├── tests/                   # Test suite
└── logo/                    # Branding assets

Contributing

We welcome contributions! Please see our Contributing Guidelines for:

  • Development setup instructions
  • Coding standards (NumPy docstrings, PEP 8)
  • Testing requirements
  • Pull request process

References

ASCICat is built on established theoretical foundations:

  • Nørskov, J. K. et al. Towards the computational design of solid catalysts. Nat. Chem. 1, 37 (2009)
  • Greeley, J. et al. Computational high-throughput screening of electrocatalytic materials. Nat. Mater. 5, 909 (2006)
  • Sabatier, P. Hydrogénations et déshydrogénations par catalyse. Ber. Dtsch. Chem. Ges. 44, 1984 (1911)
  • Oguz, I. C., Khossossi, N., Brunacci, M., Bucak, H. & Er, S. ACS Catal. 15, 19461–19474 (2025)

License

This project is licensed under the MIT License - see the LICENSE file for details.


Contact

Author Nabil Khossossi
Email n.khossossi@differ.nl
Institution Dutch Institute for Fundamental Energy Research (DIFFER)
Issues GitHub Issues

Acknowledgments

This work was supported by the Dutch Institute for Fundamental Energy Research (DIFFER).


ASCICat — Bridging computational databases and experimental priorities for accelerated catalyst discovery

Back to Top

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ascicat-1.0.0.tar.gz (10.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ascicat-1.0.0-py3-none-any.whl (110.5 kB view details)

Uploaded Python 3

File details

Details for the file ascicat-1.0.0.tar.gz.

File metadata

  • Download URL: ascicat-1.0.0.tar.gz
  • Upload date:
  • Size: 10.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.17

File hashes

Hashes for ascicat-1.0.0.tar.gz
Algorithm Hash digest
SHA256 1444983a2663e83c71026853c2b3551289e006cda1fc24295a74a9e0e7b058b2
MD5 5defdbb95a31538aa1b4920423fd92b7
BLAKE2b-256 e0e1ac2fcf783f6269f3f2d928090e79eabbe6ec1d26dcdb75e65100ec9f20cd

See more details on using hashes here.

File details

Details for the file ascicat-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: ascicat-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 110.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.17

File hashes

Hashes for ascicat-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b18c442f69d22281bfe442ccae7e5c74cae88f6bb311d7823d3944c8d30c0983
MD5 10277087c7cb208dae313f3df07738ed
BLAKE2b-256 a230dd3d4e196ce28ab51df031fd68344439024a4af85897eab1e77f1e832f06

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page