A unified multi-objective framework for translating computational catalyst data into reproducible, experimentally-actionable rankings
Installation • Quick Start • Features • Documentation • Contributing
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.
| 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 |
ASCICat implements a three-pillar scoring system grounded in fundamental catalysis principles:
|
Sabatier Principle Optimal binding energy for reaction kinetics |
Surface Thermodynamics Dissolution resistance and durability |
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]
# Clone the repository
git clone https://github.com/NabKh/ASCICat.git
cd ASCICat
# Install in development mode
pip install -e .# For GUI interface
pip install -e ".[gui]"
# For interactive Jupyter visualizations
pip install -e ".[interactive]"
# For full development environment
pip install -e ".[dev]"- Python 3.8+
- NumPy, Pandas, SciPy, Matplotlib, Seaborn
- See
setup.pyfor complete dependency list
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
...
# 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-guiRun the tutorials directly in your browser — no installation required:
Or launch all tutorials in Binder:
- 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
| 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 |
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
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 |
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.
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.
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
We welcome contributions! Please see our Contributing Guidelines for:
- Development setup instructions
- Coding standards (NumPy docstrings, PEP 8)
- Testing requirements
- Pull request process
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)
This project is licensed under the MIT License - see the LICENSE file for details.
| Author | Nabil Khossossi |
| n.khossossi@differ.nl | |
| Institution | Dutch Institute for Fundamental Energy Research (DIFFER) |
| Issues | GitHub Issues |
This work was supported by the Dutch Institute for Fundamental Energy Research (DIFFER).
ASCICat — Bridging computational databases and experimental priorities for accelerated catalyst discovery
