Skip to main content

AdsorpQC

CI PyPI version Python versions License: MIT DOI

Automated Quality-Control, GCMC Burn-in Detection, Isotherm Model Fitting, and Reproducibility Toolkit for Adsorption Simulations in Nanoporous Materials.


Overview

AdsorpQC is an open-source scientific software toolkit tailored for the rigorous validation and certification of molecular adsorption simulations (Grand Canonical Monte Carlo, GCMC, RASPA, LAMMPS) and experimental gas isotherms in MOFs, COFs, Zeolites, and Porous Carbons.

In GCMC simulations, reporting average loadings before reaching true thermodynamic equilibrium (under-equilibrated burn-in) or during unresolved systematic drift leads to invalid capacities. adsorpqc addresses this with an automated quality-control pipeline in a single command:

  • Automated GCMC Burn-in Detection:
    • Maximizes the number of statistically independent production samples ($N_{\text{eff}}$).
    • Automatically identifies and truncates un-equilibrated initialization cycles.
  • 📉 Loading Drift & Stationarity Audit:
    • Evaluates percentage loading drift $\Delta_{\text{drift}}$ across the production phase.
    • Generates clear safety alerts: "DO NOT REPORT PRODUCTION AVERAGE" if $\Delta_{\text{drift}} > 8.0%$.
  • 🧪 Non-Linear Isotherm Fitting & Model Selection:
    • Fits Langmuir, Dual-Site Langmuir (DSLG), Sips (Langmuir-Freundlich), Toth, Freundlich, and BET models.
    • Automatically ranks models and selects the optimal description using Akaike Information Criterion (AIC) and $R^2$.
  • Thermodynamic Energetics & Selectivity:
    • Henry coefficient ($K_H$) via low-pressure linear regression.
    • Isosteric heat of adsorption ($q_{\text{st}}$) via particle-energy fluctuation formulas in $\mu VT$ ensemble.
    • Ideal Adsorbed Solution Theory (IAST) binary mixture selectivity ($S_{A/B}$) with 95% Bootstrap Confidence Intervals.
  • 📑 Publication Deliverables:
    • Interactive self-contained report.html dashboard.
    • Vector publication plots (Isotherm fit curves, GCMC burn-in shaded trajectory) in SVG, PDF, PNG (300 DPI).
    • Ready-to-compile LaTeX summary tables (.tex).
    • Draft Methods text paragraph and BibTeX citation (citation.bib).
    GCMC Simulation (RASPA) / Isotherm CSV
                      │
                      ▼
  ┌───────────────────────────────────────────────────────────┐
  │                         AdsorpQC                          │
  │  ├── Automated GCMC Burn-in / Equilibration Cutoff        │
  │  ├── Production Loading Drift & Stationarity Audit        │
  │  ├── Non-Linear Isotherm Fitting (Langmuir, Sips, Toth)   │
  │  ├── Henry Constant (K_H) & Isosteric Heat (q_st)        │
  │  └── IAST Selectivity (S_A/B) with Bootstrap 95% CI       │
  └───────────────────────────────────────────────────────────┘
                      │
                      ▼
  ┌───────────────────────────────────────────────────────────┐
  │                   Publication Deliverables                │
  │  ├── report.html (Interactive Dashboard & Badges)         │
  │  ├── adsorpqc_isotherm_fit.pdf/svg/png                    │
  │  ├── adsorpqc_gcmc_burnin_trajectory.pdf/svg/png         │
  │  ├── adsorpqc_summary_table.tex / .csv                    │
  │  ├── methods_snippet.txt (Ready for Manuscript)           │
  │  └── citation.bib (BibTeX Reference)                      │
  └───────────────────────────────────────────────────────────┘

Installation

From PyPI

pip install adsorpqc

From Source

git clone https://github.com/sircalch/adsorpqc.git
cd adsorpqc
pip install -e .[dev]

Quickstart (CLI)

1. Run Benchmark Demo (Instant GCMC + Isotherm Simulation)

adsorpqc demo -o my_adsorption_audit/

Open my_adsorption_audit/report.html in your browser to explore the interactive dashboard!

2. Assess Isotherm CSV File

adsorpqc assess -i my_isotherm.csv --framework "Mg-MOF-74" --adsorbate "CO2" --temp 298.15 -o output_report/

3. Assess RASPA Simulation Output

adsorpqc assess -i output_Mg-MOF-74_298.000000_100000.data -o raspa_audit/

Python API Usage

import numpy as np
from adsorpqc import assess_adsorption_quality
from adsorpqc.parsers import parse_isotherm_csv
from adsorpqc.reporters import generate_adsorption_figures, generate_adsorption_manuscript_assets, generate_adsorption_html_report

# 1. Parse isotherm data
data = parse_isotherm_csv("co2_isotherm.csv")

# 2. Assess quality and fit models
report = assess_adsorption_quality(
    metadata={"framework": "HKUST-1", "adsorbate": "CO2", "temperature_k": 298.15},
    pressure_isotherm=data["pressure"],
    loading_isotherm=data["loading"],
    temperature_k=298.15
)

print(f"Overall Certification: {report.overall_status}")
print(f"Optimal Model: {report.isotherm_fits['best_model_name']} (R^2 = {report.isotherm_fits['best_r_squared']:.4f})")

# 3. Export all publication assets
generate_adsorption_figures(report, "output_dir/", pressure_raw=data["pressure"], loading_raw=data["loading"])
generate_adsorption_manuscript_assets(report, "output_dir/")
generate_adsorption_html_report(report, "output_dir/report.html")

Citation

If you use AdsorpQC in your publications, please cite:

@software{monreal2026adsorpqc,
  author = {Monreal-Hern{\'a}ndez, Andre},
  title = {{AdsorpQC: An Open-Source Toolkit for Quality-Control, GCMC Burn-in Detection, Isotherm Fitting, and Reproducibility Assessment of Adsorption Simulations}},
  year = {2026},
  version = {1.0.0},
  publisher = {Zenodo},
  url = {https://github.com/sircalch/adsorpqc}
}

License

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

Download files

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

Source Distribution

adsorpqc-1.0.0.tar.gz (31.3 kB view details)

Uploaded Source

Built Distribution

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

adsorpqc-1.0.0-py3-none-any.whl (31.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: adsorpqc-1.0.0.tar.gz
  • Upload date:
  • Size: 31.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.10

File hashes

Hashes for adsorpqc-1.0.0.tar.gz
Algorithm Hash digest
SHA256 b8157e28799999e24caa9475a9514a214972ecbf215dba545dd41f30beda49ca
MD5 a4d532a670e61733edef2ea7d9bf52c6
BLAKE2b-256 f381ce5a9856caa7f9e8275148774a46d4b1fced71b992f70a73537d3e5397c6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: adsorpqc-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 31.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.10

File hashes

Hashes for adsorpqc-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5e93a0ffbaa5cfb6afd8151ed42dcc24bf2d106f903aa5c39f1f30e3a490ee66
MD5 19a3e3489b8bf44e684afc62d20b5409
BLAKE2b-256 30f1319510705963eb2c9333c41d7f90cb0ac53ac24c254e3d879bccc4fcdb55

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page