Skip to content
Data & utilitieslatest-release

demultiplex

nf-core/demultiplex

Demultiplexing pipeline for Illumina sequencing data

version1.8.0daade37c4aSep 15, 2026 Upstream Usage docs

Key tools

fastpFalcoMultiQCCheckQCsamshee

Run it

nfclaw
nfclaw run demultiplex --input samplesheet.csv --outdir results -profile docker
raw nextflow
nextflow run pipelines/demultiplex/upstream -profile docker --input samplesheet.csv --outdir results
demo · bundled test profile
nfclaw run demultiplex --demo --outdir results # adds the upstream test profile (-profile test,docker)

Inputs

columntyperequiredallowed valuesconstraints
idstringyesmatches ^\S+$
samplesheetstring (file path)yesmatches ^\S+\.csv$
laneintegerno≥ 1; ≤ 8
flowcellstring (file or directory path)yes
per_flowcell_manifeststring (file path)no

--input must match ^\S+\.csv$.

The samplesheet is a CSV with this header (the columns the schema requires); fill each value per the table above and reference.md (no example value is invented here):

csv
id,samplesheet,flowcell

Any of the optional columns above may be appended to the header when your data needs them: lane, per_flowcell_manifest.

From data files. --input may also be the data files — a directory (searched recursively), a quoted glob, or files (--input once per file) — from which nfclaw writes this samplesheet: id from file names; samplesheet from files matching their patterns, by sample name. Set the required columns no file determines with --sheet-set COLUMN=VALUE (a constant or a {sample}/{lane} template): flowcell (string). Preview it with --check; a run records it in <outdir>/provenance/ for replay.

Resources

Resource requests follow the pipeline's configs and selected profiles. nf-core's resource labels often assume a server — a single step can request far more memory than a workstation has, and retry rules can increase requests. If a run fails with Process requirement exceeds available memory (or CPUs), cap every request, and every retry, at what this machine actually has:

bash
nfclaw run demultiplex --input samplesheet.csv --outdir results -profile docker \
--limit-cpus 4 --limit-memory 15.GB

nfclaw turns those into Nextflow's process.resourceLimits and passes them as a -c config — the mechanism nf-core prescribes for exactly this (docs). Set them to the machine's real capacity. --limit-time DURATION also caps how long any one task may run: a task that needs longer is stopped, and so is every retry, so set it only as a deliberate ceiling, never as a guess at how long the analysis takes. The generated config is kept in <outdir>/provenance/, so commands.sh replays the run under the same ceiling.

Nextflow engine

This release declares nextflowVersion = '!>=25.10.4'.

To pin this release's declared minimum engine — useful when a newer Nextflow has incompatible config parsing:

bash
nfclaw run demultiplex ... --nxf-ver 25.10.4

--nxf-ver is recorded in <outdir>/provenance/, so the replay uses the same engine. See known-issues.

Demo

bash
nfclaw run demultiplex --demo --outdir results # adds the upstream test profile (-profile test,docker)
<!-- Generated from nf-core/demultiplex@daade37c4a75a4c1709ccf12434deb3424141319. Do not edit by hand. -->

Samplesheet

A CSV with this header (the columns the schema requires). Fill each value per the constraints below; optional columns from the table may be appended.

samplesheet.csv header
id,samplesheet,flowcell
ColumnTypeRequiredAllowed / constraints
idstringrequiredmatches ^\S+$
samplesheetstring (file path)requiredmatches ^\S+\.csv$
laneintegeroptional≥ 1; ≤ 8
flowcellstring (file or directory path)required—
per_flowcell_manifeststring (file path)optional—

Required parameters

--outdirstring (directory path)

The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure.

--demultiplexerstring

Demultiplexer to use.

bases2fastqbcl2fastqbclconvertfqtksgdemuxmkfastqmgikit

Parameter explorer

44 parameters · 7 groups

Every parameter from the pinned nextflow_schema.json. nfclaw checks explicit values before launch; complex rules use the pinned pipeline's runtime validation. Search, filter by group, and expand any parameter for its default, allowed values and constraints.

27 parameters · 17 hidden

Checkqc options1

Path to the checkqc config yml file.

Demultiplex options1

Demultiplexer to use.

Downstream Csv options1

Specifies the strandedness of RNA-Seq data for downstream sample sheet generation. This parameter does not affect the demultiplexing process but is used to generate the appropriate field in the nf-core/rnaseq samplesheet

Generic options5

Display the help message.

Display the full detailed help message.

Custom MultiQC yaml file containing HTML including a methods description.

Boolean whether to remove adapter information from Illumina samplesheet. If adapter information is present, the various bcl conversion tools will perform adapter trimming already at the demultiplexing step.

Display hidden parameters in the help message (only works when --help or --help_full are provided).

Input Output options10

Email address for completion summary.

Flowcell ID for single-flowcell runs.

Lane number for single-flowcell runs.

Run directory (or tar.gz) for single-flowcell runs.

Per-flowcell manifest file for fqtk single-flowcell runs.

Path to the flowcell SampleSheet.csv for single-flowcell runs.

Path to comma-separated file containing information about the samples in the experiment.

MultiQC report title. Printed as page header, used for filename if not otherwise specified.

Whether to publish optional outputs such as undertermined files.

The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure.

Workflow options9

Local JSON file to be passed to samshee module for samplesheet validation

String in JSON format to be passed to samshee module for samplesheet validation

Path to Kraken2 DB to use for screening

Schema name to be passed to samshee module for samplesheet validation

Whether or not to publish raw (untrimmed) FASTQ files alongside trimmed FASTQs. When false, only trimmed FASTQs are published.

Number of reads to subsample for contamination detection.

Comma-separated list of tools to skip (fastp,fastqc,kraken,multiqc,checkqc,falco,md5sum,samshee)

Whether or not to skip trimming

Whether or not illumina samplesheet is v1

Outputs

Results land in --outdir; the files and directory layout depend on the selected workflow, parameters and publication settings. Run metadata is normally placed in <outdir>/pipeline_info/ (execution report, software versions), when those outputs are enabled. The pinned tree includes MultiQC support; a report is produced only when its workflow step runs. nfclaw run also writes <outdir>/provenance/ with the exact params file and the run log, <outdir>/provenance/logs/run.log — the whole launch, whose last line states the outcome (Nextflow's own log is <outdir>/.nextflow.log); unless --no-provenance it adds a run manifest (pinned version, commit and exact command), input/output SHA-256 checksums, and a replayable commands.sh. The exact output files and directory layout for this release are documented upstream: github.com/nf-core/demultiplex/blob/1.8.0/docs/output.md Check a run — in the foreground or the background — with nfclaw status <outdir>: success, still running, how it ended (with the error), or stopped without an outcome; exit 0 success, 3 running, 1 otherwise.

Chaining

Run demultiplex as one stage of a chain: nfclaw chain run starts each stage only after the one before it succeeded, and prepares its inputs from that stage's outputs. Every rule is checked against both pinned schemas.

Feeds into

  • atacseq — demultiplex writes samplesheet/atacseq_samplesheet.csv (every sample as replicate 1) for its demultiplexed FastQ files; a single-end run's sheet lacks the fastq_2 column, which atacseq's own sheet check requires, so it is added empty.
  • methylseq — demultiplex writes samplesheet/methylseq_samplesheet.csv for its demultiplexed FastQ files.
  • rnaseq — demultiplex writes samplesheet/rnaseq_samplesheet.csv for its demultiplexed FastQ files (strandedness from its --strandedness, default auto).
  • sarek — demultiplex writes samplesheet/sarek_samplesheet.csv with an empty patient; each sample is made its own patient (set it per sample yourself if several samples share one); sarek reads paired-end FastQ only, so every row needs a fastq_2. No status or sex column is written: sarek treats every sample as normal tissue (status 0, sex NA) and runs germline analyses only; a tumour/normal design needs its own sarek samplesheet (a handoff's set gives every row the same value).
  • seqinspector — demultiplex writes samplesheet/seqinspector_samplesheet.csv for its demultiplexed FastQ files.
  • taxprofiler — demultiplex writes samplesheet/taxprofiler_samplesheet.csv without run_accession or instrument_platform; each sample becomes its own run, sequenced on ILLUMINA (bcl2fastq/bclconvert data — use an inline handoff for other platforms).
nfclaw
nfclaw chain edges demultiplex