Skip to contents

`run_pipeline()` writes an execution checkpoint after every completed analysis-registry batch, unconditionally – not only on a graceful, cooperative stop. If a run is interrupted by any means (a crash, an out-of-memory kill, `docker stop`, a host reboot), this resumes from the last batch recorded in that checkpoint: already-completed modules are not re-run, and every stage that precedes analysis-registry execution (metadata import, VCF/GDS preparation, sample and variant QC, LD pruning) is skipped entirely, since the checkpoint already carries their validated results.

Usage

run_pipeline_resume(
  output_directory,
  registry = default_analysis_registry(),
  config = NULL
)

Arguments

output_directory

The `output.directory` of the interrupted run (the same directory passed to, or configured for, the original [run_pipeline()] call).

registry

Analysis module registry. Must match the registry the original run used – [read_execution_checkpoint()] rejects a checkpoint whose recorded plan is incompatible with the current registry.

config

Optional configuration (path or already-validated list) to verify against the checkpointed one before resuming; see Details. `NULL` (the default) skips this check entirely and reuses the checkpointed configuration unconditionally, matching every prior release's behavior.

Value

The completed `PopgenVCFAnalysis` object.

Details

By default (`config = NULL`) no configuration is re-read at all: the exact configuration frozen into the checkpoint at write time is reused unconditionally, for every remaining module. Passing `config` (a path or an already-validated config list) opts into a safety check instead: its fingerprint is compared against the one recorded when the checkpoint was written, and resuming is refused, loudly, if they differ – silently reusing checkpointed results computed under a different configuration would be scientifically wrong, and this codebase has no per-module config-key ownership metadata precise enough to safely reuse *some* completed modules while re-running only the ones a specific edit actually affects. There is currently no supported way to resume with a changed configuration; start a fresh run instead.