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 |
|---|---|
|
Default. You have Docker installed and your user can run |
|
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.