Welcome to stko’s documentation!

Tip

⭐ Star us on GitHub! ⭐

_images/logo.png

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.

Installation

stko can be installed directly 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

  1. Install just.

  2. In a new virtual environment run:

    $ just dev
    
  3. Run code checks:

    $ just check
    

Dependencies

The software packages we offer optimizers for are also depencies depending on the desired functions used. These are:

Examples

For every class (including Calculator, Optimizer), there are small examples of usage on the associated docs page. We have a page dedicated to analysing cage structures. There are also some examples for stko usage available here. These cover:

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