Development#
Installation#
For package development, the installation procedure is more complex than the one for the end user
Getting plinder#
For development you need a clone of the official GitHub repository.
$ git clone https://github.com/plinder-org/plinder.git
Creating the Conda environment#
The data generation pipeline (plinder.data) and evaluation require a few tools
that are only available via Conda (mmseqs2, foldseek, OpenStructure).
If you have not Conda installed yet, we recommend its installation via
miniforge.
$ mamba env create -f environment.yml
$ mamba activate plinder
Installing plinder#
All Python dependencies are declared in pyproject.toml.
With uv, install plinder in editable mode with the
complete dev dependency group (all extras used in CI, including CPU-only pytorch
on Linux and the git-only pipeline packages) into the active Conda environment:
$ UV_PROJECT_ENVIRONMENT="$CONDA_PREFIX" uv sync --inexact
CI runs the same command. Without the Conda environment, a plain uv sync
installs into .venv; tests that need the Conda-only tools will then fail.
With pip, the base install covers data generation and the core library:
$ pip install -e ".[dev]"
Evaluation scoring (optional)#
plinder.eval runs the OpenStructure command-line
actions for ligand and protein-interface evaluation. OpenStructure 2.12.0 or
newer is installed from Bioconda by the repository’s environment.yml; it is
not a PyPI dependency. Install the optional evaluation dependencies with:
$ pip install -e ".[eval]"
Note
The eval extra installs PoseBusters. OpenStructure is Conda-only and
is installed by mamba env create -f environment.yml above.
Data generation (plinder.data) does not require OpenStructure and
works with numpy 2.
The full data pipeline also needs the git-only packages in the dev
dependency group, which only uv sync installs.
Enabling Pre-commit hooks#
Please install pre-commit hooks, that will run the same code quality checks as the CI:
$ pre-commit install
Testing and linting#
plinder uses tox for running tests, type checks and code linting
(with ruff).
$ tox -e test
$ tox -e type
$ tox -e lint
See tox.ini and .pre-commit-config.yaml for details.
Debugging#
In order to change log levels in plinder, please set:
export PLINDER_LOG_LEVEL=10