Docker Installation

July 16, 2026 ยท View on GitHub

Use Docker for GPU inference on a Linux host with an NVIDIA GPU. All examples below are one-shot docker run commands executed from the host. For non-Docker installation, see inference_instructions.md.

1. Verify Docker GPU support

Install Docker and the NVIDIA Container Toolkit, then verify that containers can see the GPU:

docker run --rm --gpus all nvidia/cuda:12.6.3-base-ubuntu24.04 nvidia-smi

2. Get the image

Pull the prebuilt image:

docker pull aurekaresearch/opendde:v1

The Docker v1 tag is maintained separately from the Python package version.

Or build from the repository root:

bash scripts/build_docker_image.sh

The helper performs one local build tagged opendde:local, targeting linux/amd64 by default. It does not inspect Git state, attach repository release metadata, push an image, or run from CI. Use --tag, --platform, --pull, or --no-cache as needed; run it with --help for the complete interface. If you use the locally built image, replace aurekaresearch/opendde:v1 with opendde:local in the examples below.

3. Prepare runtime data

OpenDDE reads checkpoints and runtime data from OPENDDE_ROOT_DIR:

export OPENDDE_ROOT_DIR="$PWD/opendde_data"
mkdir -p "$OPENDDE_ROOT_DIR/checkpoint"

Released checkpoints keep the public filenames opendde.pt and opendde_abag.pt. Their authoritative download links and digests are listed in supported_models.md.

Download or verify the released checkpoint and remaining runtime files with Docker. The helper validates official checkpoints against the bundled manifest before atomically installing them:

docker run --rm \
  -v "$OPENDDE_ROOT_DIR":/opendde_data \
  aurekaresearch/opendde:v1 \
  bash scripts/download_opendde_data.sh \
    --root /opendde_data

To download only the released ABAG checkpoint:

docker run --rm \
  -v "$OPENDDE_ROOT_DIR":/opendde_data \
  aurekaresearch/opendde:v1 \
  bash scripts/download_opendde_data.sh \
    --root /opendde_data \
    --skip-common \
    --skip-search-database \
    --checkpoint opendde_abag.pt

Select that released checkpoint explicitly for an ABAG run:

--load_checkpoint_path /opendde_data/checkpoint/opendde_abag.pt

If you already have a custom checkpoint, keep its own descriptive filename and copy it into the mounted checkpoint directory. Prepare only the remaining runtime files with --skip-model, so the helper neither validates the custom file as a released asset nor installs the unrelated default checkpoint:

cp /absolute/path/to/my_checkpoint.pt \
  "$OPENDDE_ROOT_DIR/checkpoint/my_checkpoint.pt"

docker run --rm \
  -v "$OPENDDE_ROOT_DIR":/opendde_data \
  aurekaresearch/opendde:v1 \
  bash scripts/download_opendde_data.sh \
    --root /opendde_data \
    --skip-model

Select the custom checkpoint explicitly during inference:

--load_checkpoint_path /opendde_data/checkpoint/my_checkpoint.pt

For protein-only smoke tests that disable MSA/template/RNA-MSA preprocessing, you can skip search databases:

docker run --rm \
  -v "$OPENDDE_ROOT_DIR":/opendde_data \
  aurekaresearch/opendde:v1 \
  bash scripts/download_opendde_data.sh \
    --root /opendde_data \
    --skip-search-database

4. Run inference

The command below assumes tiny.json exists in the current host directory. See ../README.md for the minimal input example.

mkdir -p output

docker run --rm --gpus all --shm-size=4g \
  -e OPENDDE_ROOT_DIR=/opendde_data \
  -v "$OPENDDE_ROOT_DIR":/opendde_data:ro \
  -v "$PWD":/workspace \
  -v "$PWD/output":/output \
  aurekaresearch/opendde:v1 \
  opendde pred \
    -i /workspace/tiny.json \
    -o /output \
    -n opendde_v1 \
    --use_msa false \
    --use_template false \
    --use_rna_msa false \
    --sample 1 \
    --step 200 \
    --cycle 10

For production inference options, MSA/template preprocessing, and checkpoint configuration, see inference_instructions.md.