Skip to main content

QMCert

CI PyPI version Python versions License: MIT DOI

Quality checks for quantum-chemical calculations: convergence, stationary points, spin contamination and quasi-RRHO free energies.


Overview

QMCert is an open-source Python package that reads the output of a quantum-chemistry calculation and checks what should be checked before its energies are used: convergence, the nature of the stationary point, spin contamination and the treatment of low-frequency modes in free energies. The ORCA parser was validated on 59 real ORCA 6.1 outputs against cclib, GoodVibes and ORCA's own printout (validation/); a Gaussian parser is included but has not been validated on real outputs.

  • Convergence: outcome of the last SCF in the file; the optimiser's convergence banner.
  • Stationary point: imaginary frequencies below -10 cm^-1 are counted; a minimum needs none, a transition state exactly one; two or more is a higher-order saddle point. A converged optimisation is not taken as evidence of a minimum.
  • Spin contamination: deviation of <S^2> from S(S+1), as a percentage of S(S+1) (warning above 5%, failure above 10%).
  • Thermochemistry: ZPE, H, G and S as printed by the program, and Grimme's quasi-RRHO vibrational entropy (omega_0 = 100 cm^-1). ORCA 6.1 applies quasi-RRHO by default (its output says so); QMCert reads that setting and reports the harmonic and quasi-RRHO free energies explicitly, so the correction is never applied twice.
  • IR spectrum: Lorentzian broadening of the computed intensities.

Version 1.2.0 fixes a reporting defect found by the validation: version 1.1.0 reported a separate quasi-RRHO correction on top of ORCA's free energy, which already contained it (up to 0.73 kcal/mol in the benchmark). See the CHANGELOG.

  • Verdicts: PASS / WARNING / FAIL for each check; the overall status is the worst of them.
  • 📑 Publication Deliverables: Interactive self-contained report.html, publication vector plots (SVG/PDF/PNG 300 DPI), LaTeX summary tables (.tex), and a draft computational-details paragraph that states the results found, including failures.
  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 an ORCA output file

qmcert assess -i calculation.out -o qm_quality_report/

3. Check a transition-state 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 status: {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.2.0},
  publisher = {Zenodo},
  url = {https://github.com/sircalch/qmcert}
}

License

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

Metadata

Release files for qmcert 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qmcert 1.2.0
File Size Uploaded Provenance
qmcert-1.2.0.tar.gz 33.5 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for qmcert 1.2.0
File Interpreter ABI Platform
qmcert-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 68.0 kB

Release files / qmcert-1.2.0.tar.gz

Download URL qmcert-1.2.0.tar.gz
Size 33.5 kB
Tags Source
SHA-256 checksum
How to use checksums
737b12b3176a410262c12adf49b3cff8122e7dcf93b4c991c7e2b57dcf129b84
BLAKE2b-256 checksum
How to use checksums
b015bb5831932fbc217101af3c324bb5d5fb7bebd980e41cc5aec1e9c7a23476
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release files / qmcert-1.2.0-py3-none-any.whl

Download URL qmcert-1.2.0-py3-none-any.whl
Size 34.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
10af08cb4e64e94a4a2b36b46710950591c163a997a5bc5218d8fae9b92eafcf
BLAKE2b-256 checksum
How to use checksums
75e4b2981d71fa6daf78b48fa52f6e9e7419a79491efc233d61a32d41e30cc64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Security for qmcert 1.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for qmcert-1.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files Full provenance

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