Navigator

Run the Workflow

Drive the resumable propose → dock → ingest loop — the fast path with the worked examples, or the manual loop by hand.

Suggest an edit

Fastest path — the worked examples

examples/run_navigator.sh drives the whole resumable propose → dock → ingest loop for you against Freedom Space, docking each batch with your own Glide, for three ready-made targets (KIF11, PYRD, TGFR1). After installing a database:

export SCHRODINGER=/opt/schrodinger2026-1        # your install
examples/run_navigator.sh TGFR1                  # gamma, 100k budget, 10 rounds, Glide
examples/run_navigator.sh KIF11 --budget 10k --gpu     # quick run, GPU surrogate
examples/run_navigator.sh PYRD  --scorer mock --budget 200 --iters 2   # smoke, no Schrödinger

It is resumable (re-run the same command to continue), writes a compiled runs/<run>/pipeline.log, and lets you pick the strategy (--method gamma|alpha|beta|analog|all) and budget (--budget 10k|100k|1m). See Worked examples for all options.

Manual loop

To drive the steps yourself, put your target config and reaction/synthon inputs under ./inputs, then:

navigator init  --run-dir runs/hk --config-json inputs/HK.json --overwrite
proposals="$(navigator propose --run-dir runs/hk)"
# stdout: runs/hk/proposals/iteration_0000_proposals.parquet
# also writes:
#   runs/hk/proposals/iteration_0000_proposals.csv
#   runs/hk/scores/iteration_0000_scores_template.csv

# Copy the template, set each row's status and score externally, then ingest it.
cp runs/hk/scores/iteration_0000_scores_template.csv \
   runs/hk/scores/iteration_0000_scores.csv
navigator ingest  --run-dir runs/hk --scores runs/hk/scores/iteration_0000_scores.csv
navigator propose --run-dir runs/hk           # next batch
navigator status  --run-dir runs/hk

To screen an installed database instead of your own inputs, point init at it with --database (and a target):

navigator init --run-dir runs/freedom --database freedom-space-5@2026-03-296b.2 \
  --target inputs/my_target.json --overwrite
navigator propose --run-dir runs/freedom

Path mapping

Paths are relative to the container's working directory: runs/… maps to ./runs, inputs/… to ./inputs, and installed databases live in ./databases.

The image's self-contained example target is named examples/configs/HK.json (not examples/targets/HK.json). Target configs use space.reactions_path and space.synthons_path; the install smoke-test notebook shows how to copy and adapt that example.

Append --help to any workflow command for its options (navigator status --help).

Score handoff contract

propose writes iteration_NNNN_proposals.parquet (+ .csv) and a iteration_NNNN_scores_template.csv, plus a per-batch JSON manifest under checkpoints/. You return a file with these columns:

ColumnMeaning
product_idmust exist exactly once in the pending batch
statusvalid, failed, timeout, filtered, or cancelled
scorenumeric only for valid rows
batch_id(optional) must match the pending batch if present

Ingestion rejects unknown/duplicate/wrong-batch rows, verifies returned SMILES canonicalize to the proposed structure, counts failed docks toward the budget but excludes them from the regression target, is idempotent for byte-identical re-ingestion, and checkpoints atomically.

On this page