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.

Download files

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

Source Distribution

thermoscreening-0.2.2.tar.gz (282.9 kB view details)

Uploaded Source

Built Distribution

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

thermoscreening-0.2.2-py3-none-any.whl (101.8 kB view details)

Uploaded Python 3

File details

Details for the file thermoscreening-0.2.2.tar.gz.

File metadata

  • Download URL: thermoscreening-0.2.2.tar.gz
  • Upload date:
  • Size: 282.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for thermoscreening-0.2.2.tar.gz
Algorithm Hash digest
SHA256 8aade10e020225fbbdb2d90fefaf38f9b34f14f88a74f57a8eaafd4eded795ab
MD5 1b4d7136e263aeb9d5a2366df58fa20a
BLAKE2b-256 a0a32cc76801bda8dba640356fa064501ada1b38d94b3d98a0a2bbbda42cb613

See more details on using hashes here.

Provenance

The following attestation bundles were made for thermoscreening-0.2.2.tar.gz:

Publisher: publish.yml on MolarVerse/ThermoScreening

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thermoscreening-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: thermoscreening-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 101.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for thermoscreening-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 78e11da05904e48f764e8c8b48d9e5c542c0f184a5d8d85eceff35392c7c6d04
MD5 55c5fc31f268fe7643486871f8ccd11d
BLAKE2b-256 52f0b9582c6ad060007a5b2e50414503b74ec99180f1a159f72ed35c4eee3e34

See more details on using hashes here.

Provenance

The following attestation bundles were made for thermoscreening-0.2.2-py3-none-any.whl:

Publisher: publish.yml on MolarVerse/ThermoScreening

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

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