×

nf-fl86 @ 0.4.0

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.

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.

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.4.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

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:

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 09 Sep 2026 14:07:16 (UTC)
Release Notes -
Download URL https://registry.nextflow.io/api/v1/plugins/nf-fl86/0.4.0/download/nf-fl86-0.4.0.zip
Store URL https://public.cr.seqera.io/v2/nextflow/plugin/nf-fl86/blobs/sha256:44b9996c4e6c93e8b7c1f6f8cb5b5262ea3766c334ad82a2e30e0d453ce24d40
Size 66.4 KB
Checksum d0b6ba27d145e5adc0f02638db7f6679afd44fa806005df03c0621a653716d7d7e5ef31bcac5acbf90ae1cd6380a3d568efb342af91dec8743355bb513dd8512
Total downloads 52 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 >=25.10.0 09 Sep 2026 14:07:16 (UTC) 52
0.3.3 >=25.10.0 23 Aug 2026 19:41:51 (UTC) 103
0.3.2 >=25.10.0 23 Aug 2026 19:10:43 (UTC) 99