Ă—

nf-seqlab-progress @ 0.2.0

Provider: standardmodelbio
Claimed: 15 Jul 2026 13:17:48 (UTC)
Description: The `nf-seqlab-progress` Nextflow plugin integrates with nf-seqlab pipelines to display an automatic, hierarchical progress dashboard that combines Nextflow task lifecycle events with native tool progress snapshots, showing pipeline stages, file completion status, and per-file phase percentages. It solves the problem of opaque long-running bioinformatics workflows by providing real-time visibility into progress across multiple files and processing stages. Bioinformaticians and pipeline developers using nf-seqlab would use this plugin to monitor pipeline execution with minimal configuration—just registering inputs and mapping processes to stages.
Latest version: 0.2.0
Total downloads: 7.7K View trends

Summary

nf-seqlab-progress adds an automatic, hierarchical progress dashboard to nf-seqlab. It combines Nextflow task lifecycle events with structured progress snapshots from native tools to show:

  • the current pipeline stage;
  • completed source files and total source files;
  • active files, phases, and within-file percentages;
  • cached, retried, failed, and indeterminate work.

The compact nf-seqlab wordmark and dashboard appear automatically in an interactive terminal. Redirected output, CI, and agent environments receive immutable plain-text status lines instead of cursor control sequences.

Get Started

Pin the plugin in nextflow.config:

plugins {
    id 'nf-seqlab-progress@0.2.0'
}

Import its registration functions in the pipeline entry point:

include {
    registerProgressInputs
    registerProgressStages
} from 'plugin/nf-seqlab-progress'

No wrapper command or separate progress process is required. A normal nextflow run uses the animated dashboard when the terminal supports it.

Examples

Register the complete source-file set before launching tasks, then map process names to user-facing stages:

workflow {
    registerProgressInputs([
        [file_id: 'chr1', path: '/data/chr1.vcf.gz'],
        [file_id: 'chr22', path: '/data/chr22.vcf.gz'],
    ])

    registerProgressStages(
        [
            [id: 'build_svar2', label: 'Build SVAR2', file_ids: ['chr1', 'chr22']],
            [id: 'build_gvl', label: 'Build GVL', file_ids: ['chr22']],
        ],
        [
            [process: 'SEQLAB_BUILD_SVAR2', stage: 'build_svar2', completion_boundary: true],
            [process: 'SEQLAB_NORMALIZE', stage: 'build_gvl', completion_boundary: 'parent'],
            [process: 'SEQLAB_BUILD_GVL', stage: 'build_gvl', completion_boundary: true],
        ],
    )
}

Normal nf-seqlab modules participate automatically when their TaskRun context contains a meta map. File identity resolves from meta.file_id ?: meta.id, and parent identity resolves from meta.parent_file_id ?: meta.parent_id ?: fileId. Optional managed environment inputs remain authoritative when a process provides them directly.

Native snapshot producers export managed values inside their scripts. These shell-local exports are consumed by the producer, while the observer derives the same task ID from the Nextflow work directory:

script:
"""
export NF_SEQLAB_PROGRESS_FILE_ID="${meta.file_id}"
export NF_SEQLAB_PROGRESS_PARENT_FILE_ID="${meta.parent_file_id ?: meta.file_id}"
export NF_SEQLAB_PROGRESS_TASK_ID="\$(basename "\$(dirname "\$PWD")")/\$(basename "\$PWD")"
export NF_SEQLAB_PROGRESS_ATTEMPT="${task.attempt}"
"""

Native tools atomically replace .nf-seqlab-progress.json in the task work directory. A valid snapshot uses the versioned protocol:

{
  "schema": "nf-seqlab.progress/v1",
  "run_id": "focused-curie",
  "stage_id": "build_svar2",
  "process": "SEQLAB_BUILD_SVAR2",
  "file_id": "chr22",
  "parent_file_id": "chr22",
  "task_id": "ed/89cec8...",
  "attempt": 1,
  "state": "running",
  "phase": "read",
  "completed": 4409063557,
  "total": 44090635573,
  "unit": "compressed_bytes",
  "percent": 10.0,
  "message": "Reading variants",
  "updated_at": "2026-07-15T03:34:00Z"
}

Within one nonblank phase, counters may not regress and the denominator and unit may not change. The first snapshot for a new phase may reset all three, allowing transitions such as 80/100 records in phase A to 0/4 chunks in phase B. Once a task has advanced, snapshots from an earlier observed phase are stale and ignored. Snapshot states may be terminal, but only the corresponding Nextflow lifecycle completion or cache event marks a source file complete for stage accounting.

Stage percentages are based on completed source files. When a stage declares file_ids, only that subset contributes to its expected and completed counts; omitting file_ids retains the full registered input set. A source file counts only when its configured completion-boundary task succeeds or is restored from cache. completion_boundary: 'parent' counts unsharded work where file_id == parent_file_id, while true always counts and false never does. Partial byte, record, region, and chunk progress is shown only on the active file row and never inflates the completed-file count. Concurrent snapshots with different phases or units render as indeterminate rather than being summed.

License

Apache License 2.0. See COPYING.

Nextflow version >=25.10.4
Depends On -
Release Date 05 Sep 2026 23:33:29 (UTC)
Release Notes -
Download URL https://registry.nextflow.io/api/v1/plugins/nf-seqlab-progress/0.2.0/download/nf-seqlab-progress-0.2.0.zip
Store URL https://public.cr.seqera.io/v2/nextflow/plugin/nf-seqlab-progress/blobs/sha256:8648cf039415c3f77f8768cbef2c9d72648b41fdfce272cd13a16a096ef1be2b
Size 199.5 KB
Checksum 30352c34557d2a97b45ca8169e5261bcd1608a2d51222c6b61ddf04f2ccf87c0d3cd90d6852457eb088c505f2ebf5f16e51d679a1d147f8a67a4dd947b484d3f
Total downloads 2.2K View trends
Security Scan
Version Nextflow version Date Status Downloads
0.2.0 >=25.10.4 05 Sep 2026 23:33:29 (UTC) 2.2K
0.1.0 >=25.10.4 21 Jul 2026 20:48:29 (UTC) 5.5K