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:
- The
dftb+andmodesexecutables onPATH. - 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)
| File | Size | Uploaded | |
|---|---|---|---|
| thermoscreening-0.2.2.tar.gz | 282.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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