Skip to main content

QMCert

CI PyPI version Python versions License: MIT DOI

Automated Quality-Control, Stationary Point Certification, and Reproducibility Assessment for Quantum-Chemical Calculations.


Overview

QMCert is an open-source scientific toolkit designed to systematically audit, validate, and certify electronic structure calculations (DFT, HF, post-HF, semiempirical) from ORCA, Gaussian, Q-Chem, and NWChem.

Instead of manually inspecting log files to ensure calculations are publication-ready, qmcert performs a comprehensive automated audit with a single command:

  • 🎯 Stationary Point Certification:
    • Automatically identifies imaginary frequencies ($\nu < 0\text{ cm}^{-1}$).
    • Validates Local Minima (0 imaginary modes) vs Transition States (exactly 1 imaginary mode).
    • Flags unphysical saddle points with clear diagnostic messages.
  • 🔄 Wavefunction & Spin Contamination ($\langle S^2 \rangle$):
    • Audits expectation values $\langle S^2 \rangle_{\text{calc}}$ vs exact theoretical $S(S+1)$.
    • Calculates spin contamination percentage and triggers alerts if $> 5.0%$.
  • SCF & Geometry Convergence Verification:
    • Checks 4 standard convergence thresholds (Energy change, Max/RMS gradients, Max/RMS displacements).
  • 🌡️ Advanced Thermochemistry & Quasi-Harmonic Corrections:
    • Extracts ZPVE, thermal enthalpy $H(T)$, Gibbs free energy $G(T)$, and entropy $S(T)$.
    • Applies Grimme's quasi-RRHO harmonic entropy correction to prevent rotational/vibrational divergence for low-frequency modes ($\nu < 100\text{ cm}^{-1}$).
  • 🌈 Simulated IR Vibrational Spectra:
    • Lorentzian line-broadening with peak identification.
  • 🚦 Quantum Chemistry Validation Score (PASS / WARNING / FAIL).
  • 📑 Publication Deliverables: Interactive self-contained report.html, publication vector plots (SVG/PDF/PNG 300 DPI), LaTeX summary tables (.tex), and a draft Computational Details Methods paragraph with automated BibTeX citations.
  Quantum Chemical Output (.out, .log)
                    │
                    ▼
  ┌───────────────────────────────────────────────────────────┐
  │                          QMCert                           │
  │  ├── Stationary Point Certification (0 or 1 Imag Freq)    │
  │  ├── Spin Contamination Audit (<S^2> vs S(S+1))           │
  │  ├── SCF & Geometry Optimization Convergence              │
  │  ├── Grimme Quasi-RRHO Thermochemistry Corrections        │
  │  └── Frontier Orbital Gap & Simulated IR Spectrum         │
  └───────────────────────────────────────────────────────────┘
                    │
                    ▼
  ┌───────────────────────────────────────────────────────────┐
  │                   Publication Deliverables                │
  │  ├── report.html (Interactive Dashboard & Badges)         │
  │  ├── qmcert_simulated_ir_spectrum.pdf/svg/png             │
  │  ├── qmcert_summary_table.tex / .csv                      │
  │  ├── methods_snippet.txt (Ready for Manuscript)           │
  │  └── citation.bib (BibTeX Reference)                      │
  └───────────────────────────────────────────────────────────┘

Installation

From PyPI

pip install qmcert

From Source

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

Quickstart (CLI)

1. Run Demonstration Mode (Instant Benchmark DFT Calculation)

qmcert demo -o my_qm_validation/

Open my_qm_validation/report.html in any browser to inspect the report and simulated IR spectrum!

2. Assess ORCA / Gaussian Output File

qmcert assess -i calculation.out -o qm_quality_report/

3. Certify a Transition State (TS) Calculation

qmcert assess -i ts_optimization.out --ts -o ts_report/

Python API Usage

from qmcert import assess_qm_quality
from qmcert.parsers import parse_qm_output
from qmcert.reporters import generate_qm_figures, generate_qm_manuscript_assets, generate_qm_html_report

# 1. Parse quantum chemistry output (ORCA / Gaussian)
parsed_data = parse_qm_output("my_dft_calc.out")

# 2. Assess calculation quality
report = assess_qm_quality(
    metadata=parsed_data["metadata"],
    scf_converged=parsed_data["scf_converged"],
    frequencies=parsed_data["frequencies"],
    intensities=parsed_data["intensities"],
    expected_point_type="MINIMUM",
    s2_calculated=parsed_data["s2_calculated"],
    thermochemistry=parsed_data["thermochemistry"]
)

print(f"Overall Certification: {report.overall_status}")
print(f"Stationary Point: {report.frequency_result.point_type}")

# 3. Export all publication assets
generate_qm_figures(report, "output_dir/")
generate_qm_manuscript_assets(report, "output_dir/")
generate_qm_html_report(report, "output_dir/report.html")

Citation

If you use QMCert to validate quantum-chemical calculations, certify stationary points, or calculate quasi-RRHO corrections, please cite:

@software{monreal2026qmcert,
  author = {Monreal-Hern{\'a}ndez, Andre},
  title = {{QMCert: Automated Quality-Control, Stationary Point Certification, and Reproducibility Assessment for Quantum-Chemical Calculations}},
  year = {2026},
  version = {1.0.0},
  publisher = {Zenodo},
  url = {https://github.com/sircalch/qmcert}
}

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

qmcert-1.0.0.tar.gz (31.6 kB view details)

Uploaded Source

Built Distribution

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

qmcert-1.0.0-py3-none-any.whl (32.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for qmcert-1.0.0.tar.gz
Algorithm Hash digest
SHA256 43a96ed05c38d67111fe5ae38ab9a13681380514b8f00573c41afe1a2fa531bb
MD5 2bf720ff3aa75b631562a3085be2f9fb
BLAKE2b-256 2c3410ed2912b1105b93e53b567fd13653a4b18192248a8a34b9301b50a1191e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for qmcert-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2b5e075febefd9373d72e5c6562636afa3e1ea4f6531a5d583f72781f02bd100
MD5 df84ec0406659764f288a9b91026e06e
BLAKE2b-256 5d93f04915115b32a429fad0f617349784081dab380877adc73aaf8bd242fc29

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