spock — Standardize, Prepare, Dock
spock is a Python toolkit for structure-based drug design. It bundles a unified
molecule/protein storage layer, ligand standardization and preparation
pipelines, several docking engines, interaction-fingerprint descriptors, a
graph/GNN stack, and an interactive PyMOL GUI — so a target can go from a
raw sequence to docked, scored and visualised poses in one place.
Status: active development / beta.
Features
| Area | What's included |
|---|---|
| Storage | Unified SpockStorage for ligands, proteins and docked poses, built on the QSPRpred storage interfaces. Per-target stores, compressed pose serialization. |
| Docking engines | AutoDock Vina (CPU) — multi-core parallel; Vina (CPU, local) — lightweight single-process; Vina-GPU — via the andriusbern/vina-gpu Docker image (NVIDIA runtime). Vina scoring function. |
| Standardization | Papyrus standardizer and a permissive NaiveStandardizer, with InChI-based identifiers. |
| Ligand preparation | Dimorphite-DL protonation/tautomer enumeration; Schrödinger LigPrep wrapper. |
| Descriptors | PLIP protein–ligand interaction fingerprints (PLIPIFP) as a QSPRpred DescriptorSet. |
| Graphs / GNN | Molecular & complex graph featurizers; PyTorch-Geometric dataset bridge and models ([gnn] extra). |
| De novo generation | Target-conditioned ligand generation via PCMol from inside the GUI. |
| Data sources | One-click download of bioactivity data and targets from Papyrus; PDB structure fetching. |
| GUI | PyMOL-embedded interface for browsing targets, fetching structures, managing ligands, docking, and inspecting poses & interactions (see below). |
| Parallelism | pebble-based parallel docking, preparation and dataframe pipelines. |
Installation
Requires Python ≥ 3.10. PyMOL (open-source or incentive build) and AutoDock
Vina are expected from the environment — the recommended route is conda/micromamba:
# 1. create an environment with the native deps that don't ship cleanly on PyPI
micromamba create -y -n spock -c conda-forge \
python=3.11 pymol-open-source pyqt pyqtgraph rdkit openbabel plip
# 2. install spock (editable)
git clone https://github.com/CDDLeiden/spock.git
cd spock
micromamba run -n spock pip install -e .
Optional extras:
pip install -e ".[vina]" # AutoDock Vina Python bindings (CPU docking)
pip install -e ".[gnn]" # torch, torch_geometric, wandb, ...
pip install -e ".[pymol]" # GUI helper stack (pypdb, meeko, docker, plip, ...)
pip install -e ".[dev]" # linting / tests (pre-commit, ruff, pytest)
For Vina-GPU, an NVIDIA Docker runtime is required; see setup_nvidia_docker.sh.
The GUI
Launch the GUI (it runs on PyMOL's own Qt thread) with the installed console script:
spock
or load it as a PyMOL plugin:
pymol spock/gui/addon.py
The interface is organised around a selected target:
| Panel | Capabilities |
|---|---|
| Targets | Browse and fuzzy-search protein targets; download bioactivity data from Papyrus. |
| Structures | Fetch and load PDB structures for the active target. |
| Ligands | Add / delete / save / load ligands, download from Papyrus, hover cards with computed properties (incl. SA score). |
| Docking | Pick a binding-site box ("Get coordinates") and run docking; live progress. |
| Poses | Per-pose bar with scores, crosshair score plots, load stored poses into the viewer. |
| Interactions | PLIP protein–ligand contacts rendered directly in PyMOL with a contacts table. |
| Generator | Load a PCMol model and generate target-conditioned ligands. |
All results (structures, ligands, poses, scores) are persisted to the per-target
SpockStorage, so closing and reopening a target restores its state.
Tutorials
The tutorial/ folder contains notebooks covering storage creation, standardization,
ligand preparation and docking benchmarks.
License & citation
See pyproject.toml for authors and project metadata. Part of the CDD Leiden
software stack alongside QSPRpred.
Metadata
Release files for dock 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dock-0.1.0.tar.gz | 5.9 MB | Without provenance | Details for dock-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dock-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for dock-0.1.0-py3-none-any.whl |
Total release size: 6.3 MB
Release files / dock-0.1.0.tar.gz
| Download URL | dock-0.1.0.tar.gz |
|---|---|
| Size | 5.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
11a24d4d4998e57a07a460f50f25509f2a8e08c1df2b99f021e6695577844f7f
|
|
BLAKE2b-256 checksum How to use checksums |
e56594cff8e3e18bb3ee4deb6bac4353c8050f1b00b13f90c4869f18f45ee990
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dock-0.1.0-py3-none-any.whl
| Download URL | dock-0.1.0-py3-none-any.whl |
|---|---|
| Size | 384.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0fcd2fb113baecdfd6b12658e1a3ad9a5820f69b7783808d7c5a3486c0dbb2df
|
|
BLAKE2b-256 checksum How to use checksums |
a003179e49aa36c5e0ed85da435f585df1f0a4fb8a2142888fb1f1df36459b52
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Security for dock 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.