Skip to main content

Python application DOI codecov Docs

ThermoScreening

ThermoScreening calculates thermochemical properties for molecular systems and provides a foundation for screening molecule sets. It currently supports thermochemistry workflows from DFTB+ inputs and exposes Python APIs for reading coordinates, parsing vibrational data, and running thermodynamic post-processing.

Documentation

The documentation is published at https://molarverse.github.io/ThermoScreening/.

It (installation, usage, configuration, and the API reference) is built with Sphinx from the docs/ directory, and you can also build it locally:

python -m pip install -e ".[docs]"
python -m sphinx -b html docs docs/_build/html   # open docs/_build/html/index.html

Features

  • Thermochemistry calculations for molecular systems
  • DFTB+ geometry optimization, Hessian, and normal-mode integration
  • Stepwise and overall reference-calibrated reduction potentials
  • Readers for DFTB+ .gen, XYZ, and vibrational frequency files
  • Runtime type checking for public API calls
  • Test coverage for parsing, thermochemistry, and optional DFTB+ execution paths

Installation

Install the released package:

python -m pip install thermoscreening

For a complete environment with DFTB+, native xTB, and tblite:

conda create -n thermoscreening -c conda-forge \
    python=3.12 dftbplus xtb tblite-python pip
conda activate thermoscreening
python -m pip install thermoscreening

From a source checkout, the equivalent development environment is:

conda env create -f environment.yml
conda activate thermoscreening

Run thermo doctor to report the usable engines, or check one explicitly with thermo doctor --engine dftb+.

DFTB+ Setup

DFTB+ calculations require two external pieces:

  1. The dftb+ and modes executables on PATH.
  2. Slater-Koster parameter files downloaded separately from DFTB.org.

Install DFTB+ with Conda if it is not already available:

conda install -c conda-forge dftbplus

Download the default 3ob-3-1 Slater-Koster files into the automatically discovered user-local directory:

thermo setup-dftb

Verify the setup with:

thermo doctor

ThermoScreening does not vendor Slater-Koster files. For custom installations, override the discovered directory with DFTB_PREFIX or pass slako_dir explicitly:

from ThermoScreening.thermo.api import dftbplus_thermo

thermo = dftbplus_thermo(
    atoms,
    slako_dir="/path/to/3ob-3-1/",
)

The bundled DFTB+ parameters were removed from the repository because they are large, independently licensed scientific data. Keeping them external makes the package smaller and keeps parameter-set licensing explicit.

Usage

Run thermochemistry from an input file with the command-line entry point:

thermo run path/to/thermo.in

The historic thermo path/to/thermo.in form remains supported.

Run a complete reference-calibrated redox screen locally or as a Slurm array:

thermo redox molecules.csv --engine xtb-cli --solvent acetonitrile -o redox
thermo slurm --tasks 32 --submit -- redox molecules.csv -o redox

Use the Python API when integrating ThermoScreening into another workflow:

from ThermoScreening.thermo.api import run_thermo

thermo = run_thermo(
    vibrational_frequencies,
    coord_file="geo_opt.xyz",
    temperature=298.15,
    pressure=101325,
    energy=electronic_energy,
    engine="dftb+",
)

print(thermo.total_gibbs_free_energy())

Testing

Run the full test suite:

python -m pytest -q

Run linting:

python -m pylint ThermoScreening

DFTB+ integration tests run only when the executables are available and DFTB_PREFIX points to a valid Slater-Koster directory. Otherwise they are skipped so the pure-Python test suite remains portable.

Citing

If you use ThermoScreening in research, cite the archived software release. Machine-readable citation metadata is available in CITATION.cff, which also powers GitHub's Cite this repository feature. Each GitHub release is archived by Zenodo and receives a version-specific DOI.

Roadmap

Planned work is tracked in GitHub issues rather than in this README. The tool supports the DFTB+, GFN-xTB (tblite) and native-xtb engines, implicit solvation, quasi-RRHO, batch screening with resume, and RDKit conformer generation; see the issue tracker for further enhancements.

License

ThermoScreening source code is licensed under the GNU Lesser General Public License v2.1 or later. See LICENSE.

Metadata

Release files for ThermoScreening 0.2.2

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

Source distribution (sdist)

Source distribution for ThermoScreening 0.2.2
File Size Uploaded
thermoscreening-0.2.2.tar.gz 282.9 kB Details

Built distribution (wheel)

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

Total release size: 384.7 kB

Release files / thermoscreening-0.2.2.tar.gz

Download URL thermoscreening-0.2.2.tar.gz
Size 282.9 kB
Tags Source
SHA-256 checksum
How to use checksums
8aade10e020225fbbdb2d90fefaf38f9b34f14f88a74f57a8eaafd4eded795ab
BLAKE2b-256 checksum
How to use checksums
a0a32cc76801bda8dba640356fa064501ada1b38d94b3d98a0a2bbbda42cb613
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 Jul 23, 2026.

Transparency log

Release files / thermoscreening-0.2.2-py3-none-any.whl

Download URL thermoscreening-0.2.2-py3-none-any.whl
Size 101.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
78e11da05904e48f764e8c8b48d9e5c542c0f184a5d8d85eceff35392c7c6d04
BLAKE2b-256 checksum
How to use checksums
52f0b9582c6ad060007a5b2e50414503b74ec99180f1a159f72ed35c4eee3e34
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 Jul 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release 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