Resume a popgenVCF analysis pipeline from its last execution checkpoint
Source:R/pipeline.R
run_pipeline_resume.Rd`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.
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.