Installation#

PlayMolecule is one pip install away. The package itself is small — what you also need is a registry of apps to call (a Docker registry, an HTTP backend, or a local on-disk install) and a container runtime to execute them.

This page covers the end-user setup. If you’re rolling PlayMolecule out for a multi-user cluster, see Install apps for a cluster.

1. Install the Python package#

pip install playmolecule

The package requires Python 3.10+. For an isolated environment, create one with venv, conda, or uv first:

python -m venv .venv
source .venv/bin/activate
pip install playmolecule

2. Pick a container runtime#

PlayMolecule apps run as containers. Set PM_RUNTIME to one of:

Runtime

When to use

docker

Default. You have Docker installed and your user can run docker without sudo.

apptainer

HPC / shared cluster nodes where Docker isn’t available.

export PM_RUNTIME=docker     # or apptainer

See Switch between Docker and Apptainer for the practical differences.

3. Choose a registry#

The registry is where PlayMolecule finds apps. By default, PlayMolecule points at Acellera’s GCloud-hosted Docker registry:

docker://europe-southwest1-docker.pkg.dev/repositories-368911

You authenticate to that registry the same way you would for any private Docker registry — usually gcloud auth configure-docker. Acellera provides a service-account JSON to customers; see Install apps for a cluster for the full handshake.

To override the default registry set PM_REGISTRIES:

export PM_REGISTRIES=http://playmolecule.example.com  # remote HTTP backend
export PM_REGISTRIES=local:/path/to/my-apps           # developer use: iterate on your own app manifests on disk

See Environment variables for the full list of PM_* settings.

4. (Optional) Log in to a remote backend#

If your PM_REGISTRIES is an http:// URL, you also need to authenticate before running jobs:

playmolecule login --email you@example.com

This stores a cookie under ~/.cache/playmolecule/cookies/ and is reused on every subsequent call. See Log in to the HTTP backend.

5. Verify#

from playmolecule import describe_apps

describe_apps()

You should see a list of available apps and a one-line description for each. If the list is empty, the registry is either unreachable or empty — check that PM_REGISTRIES points where you expect and that you can docker pull an image from it manually.

Licensing#

The playmolecule Python package on PyPI is free to install. The apps it runs — ProteinPrepare, DeepSite, Parameterize, and the rest of Acellera’s container catalogue — are commercial software and require an Acellera licence to execute. Without a valid licence file (or floating-licence server), the containers will refuse to run.

PlayMolecule® is a virtual environment for drug discovery where simulations, AI, and data are integrated to uncover new insights. Contact Acellera to book a demo and obtain a quote tailored to your needs.

Contributors: working from a checkout#

If you’re developing PlayMolecule itself, uv is the recommended tool:

uv sync --group dev      # install dev + test deps
uv sync --group docs     # add doc-build deps
uv run pytest            # run the test suite

See the [dependency-groups] table in pyproject.toml for the full list of optional groups.