×

nf-fl86 @ 0.6.1

Provider: Quotient Therapeutics (fl86)
Claimed: 14 Aug 2026 15:45:13 (UTC)
Description: `nf-fl86` is a Nextflow plugin that integrates with S3, Fusion, Seqera Platform, and Notion to enforce safe output directory handling and automate workflow metadata management. It prevents accidental overwrites of existing results, preserves file tags during S3 copies, automatically tags resources with project and run information, and can trigger follow-up actions or update external trackers upon workflow completion. Bioinformatics teams and research organizations using Nextflow on cloud infrastructure would use this plugin to ensure reproducible runs, maintain audit trails, and streamline multi-step analysis pipelines.
Latest version: 0.6.4
Total downloads: 996 View trends

Summary

nf-fl86 is a Nextflow plugin that prevents a fresh workflow run from using an output directory that already exists. It uses the legacy params.outdir value when one is provided and otherwise falls back to Nextflow's session.outputDir. The check is skipped only when Nextflow is actually resuming a previous run.

At startup, the plugin also copies the CSV referenced by params.sample_sheet to <outdir>/pipeline_info/sample_sheet.csv. If params.sample_sheet is not set, it falls back to params.input.

If params.benchling is supplied, its JSON file is also copied unchanged to <outdir>/pipeline_info/benchling.json at startup. For example, pass --benchling ./benchling.json. The file must exist and be a regular file; resumed runs replace the saved copy. If the parameter is omitted, no copy is made.

Before tasks begin, the plugin saves the resolved workflow parameters to <outdir>/pipeline_info/params.json as pretty-printed JSON with top-level keys sorted alphabetically. Resumed runs replace the file with the current parameters.

When params.mproj is provided, the plugin sets Fusion tags to [*](MatrixProject=${params.mproj}). If it is missing or blank, Fusion tagging defaults to disabled unless fusion.tags is explicitly configured. Fusion must be enabled separately. This tag gets set in all s3 files created by the workflow.

S3-to-S3 publishDir copies (mode: 'copy') now preserve source object tags, including Fusion tags on large files copied using multipart transfers.

The plugin also sets dynamic process.resourceLabels with the Platform run ID, process name, task tag and hash, pipeline run and manifest names, and MatrixProject from params.mproj. Missing values are omitted.

After a successful run, the plugin writes workflow metadata to <outdir>/pipeline_info/workflow.json and creates pipeline.complete in the Nextflow work directory.

An optional seqera_action {} block can launch a follow-up Seqera Action after a successful run, using an access token resolved from AWS Secrets Manager.

The plugin can also send non-fatal lifecycle updates to an HTTP endpoint for a Notion-backed run tracker. It sends one update when the workflow begins and a second update only after successful completion.

Get Started

nf-fl86 requires Nextflow 25.10.0 or later. Enable a published release in your pipeline's nextflow.config:

plugins {
    id 'nf-fl86@0.5.0'
}

Run the pipeline with a new output directory. The optional sample sheet is copied into the pipeline metadata directory:

nextflow run hello \
    --outdir 's3://scratch/TEST' \
    --sample_sheet ./sample_sheet.csv

If the output directory belongs to an earlier run that should be resumed, use Nextflow's -resume option. The plugin permits an existing output directory only when the Nextflow session is running in resume mode.

Examples

S3 metadata output

Use an S3 output prefix and optionally S3 input files:

nextflow run your-pipeline \
    --outdir 's3://example-results/runs/run-123' \
    --sample_sheet 's3://example-inputs/samples.csv' \
    --benchling 's3://example-inputs/benchling.json'

The plugin writes sample_sheet.csv, benchling.json, params.json, and workflow.json under s3://example-results/runs/run-123/pipeline_info/, following the timing and optional-input rules described above. params.input can also reference an S3 sample sheet when params.sample_sheet is omitted.

The Nextflow launch environment needs AWS access to read the input objects and write to the output prefix. These metadata operations use Nextflow's S3 filesystem support through nf-amazon; Fusion is not required. Use a new prefix for a fresh run, or -resume when reusing an existing run's output directory.

Fusion project tags

Pass --mproj PROJECT_ID to set Fusion tags automatically at startup:

nextflow run hello --outdir results --mproj PROJECT_ID

This sets fusion.tags = "[*](MatrixProject=PROJECT_ID)", replacing any configured tag pattern. When mproj is missing or blank, tagging defaults to disabled (fusion.tags = false); an explicitly configured fusion.tags value is preserved. Other Fusion settings are preserved, and Fusion must be enabled separately.

Process resource labels

The plugin automatically configures process.resourceLabels with these values, evaluated separately for each task:

Label Source
uniqueRunId TOWER_WORKFLOW_ID environment variable
pipelineProcess task.process
pipelineTag task.tag
taskHash task.hash
pipelineRunName workflow.runName
pipelineName workflow.manifest.name
MatrixProject params.mproj

Values are converted to strings; missing or blank values are omitted. These labels are independent of Fusion and apply to compute resources on executors that support resource labels.

Existing labels in the global process.resourceLabels map or closure are merged with these defaults, with explicit values taking precedence. Process definitions and withName/withLabel selectors can override the entire directive using Nextflow's usual precedence rules. Other process settings are preserved.

Follow-up Seqera Action

Configure a follow-up workflow launch directly in nextflow.config. The plugin resolves the access token from AWS Secrets Manager and launches the specified Seqera Action only after the current workflow succeeds and its run name contains an uppercase NGSRUN or QENGSRUN identifier followed by one or more digits (for example, NGSRUN123 or QENGSRUN123):

seqera_action {
    aws_token_name = 'nextflow/secret'
    aws_region = 'us-east-1'
    run_name_suffix = '_quilt'
    action = '123456'
    workspace = '123456'
    params = '{"input":"s3://example-bucket/results"}'
}

No workflow.onComplete handler or script-level plugin import is required. The follow-up run name is the completed workflow's run name plus run_name_suffix. Set run_name instead when a fixed name is required.

params must be a JSON object string and is passed to Seqera as the follow-up workflow's parameters. If it is omitted, the plugin defaults to [input_dir: params.outdir]; if params.outdir is not set, it uses Nextflow's resolved output directory. For example:

seqera_action {
    // Required settings omitted for brevity.
    params = '{"input":"s3://example-bucket/results","priority":"high"}'
}

The optional api_base setting selects an HTTPS Seqera Enterprise API origin. Missing configuration, AWS failures, and Seqera API failures are logged as warnings and do not change a successful workflow into a failed one. The token, secret value, and API response body are not logged.

The AWS secret may contain either the raw access token or a JSON object with a TOWER_ACCESS_TOKEN field.

Notion lifecycle updates

Configure endpoint templates in nextflow.config to update a Notion-backed run tracker automatically:

notion {
    beginning_endpoint = 'https://example.execute-api.us-east-2.amazonaws.com/prod/update-status-to-mapping-underway?ngsrun={NGSRUN}'
    complete_endpoint = 'https://example.execute-api.us-east-2.amazonaws.com/prod/update-status-to-mapped?ngsrun={NGSRUN}&seqeraPlatformUrl={seqeraPlatformUrl}'
}

Use single-quoted endpoint templates so the plugin replaces placeholders at runtime:

  • {NGSRUN} is the first NGSRUN\d+ value in workflow.runName.
  • {seqeraPlatformUrl} is the nf-tower watch URL, or empty when monitoring is unavailable. It is a Notion endpoint placeholder, not an exported workflow function.

Placeholder values are URL-encoded. Each endpoint is optional; the beginning endpoint runs at startup, while the completion endpoint runs only after a successful workflow. Requests use POST with X-HTTP-Method-Override: PATCH. Invalid configuration, absent run IDs, timeouts, connection errors, and non-2xx responses are logged without failing the workflow.

Command-line plugin selection

The plugin can also be selected on the command line instead of in nextflow.config:

nextflow run hello \
    -plugins nf-fl86@0.3.0 \
    --outdir 's3://scratch/TEST' \
    --sample_sheet ./sample_sheet.csv

License

nf-fl86 is licensed under the Apache License 2.0.

Nextflow version >=25.10.0
Depends On -
Release Date 17 Sep 2026 14:40:32 (UTC)
Release Notes -
Download URL https://registry.nextflow.io/api/v1/plugins/nf-fl86/0.6.1/download/nf-fl86-0.6.1.zip
Store URL https://public.cr.seqera.io/v2/nextflow/plugin/nf-fl86/blobs/sha256:1439f9312d48b89ba84aca75c2f9308ec9d9e8dd04dc6abf2c09e0cf4ea87003
Size 83.2 KB
Checksum c9bd7bdb5e68e405be60302991e4d8770b3242276b52e26488525c2ab8d253094dea1c24891e92807cec3bbe63ff1b03ca854ba2aa5377dd6188a8283f3c3b1d
Total downloads 38 View trends
Security Scan
Version Nextflow version Date Status Downloads
0.6.4 >=25.10.0 18 Sep 2026 11:43:45 (UTC) 93
0.6.3 >=25.10.0 17 Sep 2026 19:58:01 (UTC) 34
0.6.2 >=25.10.0 17 Sep 2026 18:30:37 (UTC) 32
0.6.1 >=25.10.0 17 Sep 2026 14:40:32 (UTC) 38
0.6.0 >=25.10.0 17 Sep 2026 13:05:43 (UTC) 32
0.5.1 >=25.10.0 16 Sep 2026 14:24:10 (UTC) 35
0.5.0 >=25.10.0 09 Sep 2026 14:49:37 (UTC) 57
0.4.0