- maintainers:
- documentation:
- discord:
Overview
stko is a Python library for performing optimizations and calculations on complex molecules built using stk. In the case of optimizations, a clone of stk.Molecule is returned. For calculators, a Results class are used to calculate and extract properties of an stk.Molecule. There is a Discord server for stk, which can be joined through https://discord.gg/zbCUzuxe2B.
Installation
To get stko, you can install it with pip:
pip install stko
Some optional dependencies are only available through conda:
# for xtb
mamba install xtb
# for openbabel, assuming you are not using Python >= 3.13!
mamba install openbabel
With OpenMM
To get stko and use OpenMM, we had some installation issues. The current solution is to first, in a new environment, install the OpenMM requirements:
mamba install -c conda-forge openff-toolkit
Then install stko with pip, but with the cuda variant to take advantage of GPU speed up (note that this is a heavy installation!).
pip install stko[cuda]
We also removed the default installation of espaloma_charge that provides the ML-based espaloma-am1bcc partial charges method. If users want this package, create a new environment and install their dependancies (if this fails, please check their instructions), then install stko:
mamba install -c conda-forge espaloma_charge openff-toolkit
pip install stko[cuda]
Developer Setup
Install just.
In a new virtual environment run:
just dev
Run code checks:
just check
Examples
We are constantly trying to add examples to the examples/ directory and maintain examples in the doc strings of Calculator and Optimizer classes.
examples/basic_examples.py highlights basic optimisation with rdkit, and xtb (if you have xtb available).
How To Contribute
If you have any questions or find problems with the code, please submit an issue.
If you wish to add your own code to this repository, please send us a Pull Request. Please maintain the testing and style that is used throughout `stko.
How To Cite
If you use stko please cite
Acknowledgements
We developed this code when working in the Jelfs group, http://www.jelfs-group.org/, whose members often provide very valuable feedback, which we gratefully acknowledge.
Metadata
Release files for stko 2025.12.7.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| stko-2025.12.7.1.tar.gz | 22.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| stko-2025.12.7.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.9 MB
Release files / stko-2025.12.7.1.tar.gz
| Download URL | stko-2025.12.7.1.tar.gz |
|---|---|
| Size | 22.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e923246c8304b84e9804335d7e6c5c09471ca8097c631521cb6bd144513f1223
|
|
BLAKE2b-256 checksum How to use checksums |
7a26e554529576210b953d0c931562a365e335c7ef8a12c9806497eae3d8e23d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Release files / stko-2025.12.7.1-py3-none-any.whl
| Download URL | stko-2025.12.7.1-py3-none-any.whl |
|---|---|
| Size | 118.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1838ba3b0f310ea8609e8528a39a754aa49522d0d56e5a54d149b0bf9eb60029
|
|
BLAKE2b-256 checksum How to use checksums |
9bc180a1db74d39338b16dc919f0b8ad59251726cf9a2c0f51f6097af222bc0f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|