QMCert
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/FAILfor 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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| qmcert-1.2.0.tar.gz | 33.5 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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 logSecurity 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.
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 logA 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.