Skip to main content

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)

Source distribution for dock 0.1.0
File Size Uploaded
dock-0.1.0.tar.gz 5.9 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for dock 0.1.0
File Interpreter ABI Platform
dock-0.1.0-py3-none-any.whl Python 3 none any Details

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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page