Installation#

We recommend using micromamba to manage Python environments and install Meeko. Other similar package managers also work, like mamba, conda, or miniconda. We prefer micromamba because it uses conda-forge as its default channel. If you use other package managers, please use the -c conda-forge option.

To get micromamba, visit https://mamba.readthedocs.io/en/latest/

Dependencies#

Meeko requires the following dependencies:

  • Python 3.9 or later

If using Python 3.8, please see Support for Python 3.8 for details.

  • numpy

  • scipy

  • RDKit

  • gemmi

Additionally, the following optional dependencies are required for some functionalities:

  • ProDy

If using ProDy, please ensure that your Python version is <3.12. For more details see Support for Python 3.12.

  • espaloma

See installation details at espaloma readthedocs

From conda-forge#

micromamba install meeko

From PyPI#

pip install meeko

If using micromamba or a similar package manager, pip installs the package in the active environment.

From source#

Here, we will checkout the develop branch, as it is likely more recent than the default release branch. Accessing features that are not in a release yet is one of the reasons to use the develop branch, which requires installing from source.

git clone https://github.com/forlilab/Meeko.git
cd Meeko
git checkout develop
pip install .

Alternatively, it is possible to install with pip install -e .. Then, changes to the source files take immediate effect without requiring further pip install .. This is useful for developers. Changes to the command line scripts may still require a re-installation.

Support for Python 3.12#

Meeko runs on Python 3.12 as long as Prody is not installed. To run on 3.12, install all dependencies except Prody and install Meeko from source.

Meeko uses Prody to parse PDB and mmCIF files. Without prody, PDB files can be parsed with the command line option --read_pdb and with the Python method Polymer.from_pdb_string(). However, without ProDy it won’t be possible to read mmCIF files or use tethered docking. Prody developers are working to support Python 3.12, so it is possible that Prody will work on Python 3.12 soon.

Support for Python 3.8#

As of v0.6.1, Meeko starts to use features that are only available in Python 3.9 or later. These features are:

  • Dictionary Union Operators

  • Py39 Type Hints

  • importlib.resources.files (Details in PR #223)

However, they are not essential for the code structure or function. To adapt Meeko to a Python 3.8 environment, consider the respective workarounds, such as:

  • Replace dictionary union operators with dictionary unpacking ({**dict1, **dict2}), or the update() method.

  • Use List, Set, Dict, and Tuple from typing for type hints.

  • Use Path from pathlib, or importlib_resources backport package for importlib.resources.files.

See a diff report of these changes in Issue #313.