Available Pipelines
The installed catalog is built from whatever is found under pipelines/ in the
application directory — or wherever SEQDESK_PIPELINES_DIR points, which
matters on clusters whose compute nodes do not share the app’s filesystem. Each
subdirectory holding a valid manifest.json becomes one catalog entry;
directories whose names start with . or _ are skipped, which is why the
pipelines/_example/ scaffold never appears.
Eleven packages ship with SeqDesk today:
| Package id | Name in the UI | Version | Target | Category |
|---|---|---|---|---|
mag | MAG Pipeline | 3.0.0 | study | analysis |
submg | Submit to ENA | 1.0.0 | study | submission |
reads-qc | Quality Overview | 0.1.0 | study | qc |
multiqc | Study MultiQC | 0.1.1 | study | qc |
study-demo-report | Study Demo Report | 0.1.0 | study | analysis |
kraken2-bracken | Taxonomic Profiling (Kraken2 + Bracken) | 0.1.0 | study and order | analysis |
simulate-reads | Simulate Reads | 0.2.0 | order | qc |
fastq-checksum | FASTQ Checksum | 0.1.0 | order | qc |
fastqc | FastQC | 0.1.0 | order | qc |
read-cleaning | Read Cleaning | 0.1.0 | order | qc |
nanoplot | NanoPlot (Long-read QC) | 0.1.0 | order | qc |
Category decides where a package appears, not just how it is sorted. The
submission category is shown under Publishing on a study; everything else
is shown under Analysis. That is why Submit to ENA is not in the
Analysis list even though it is a perfectly ordinary study pipeline.
Two further visibility flags come from each package’s registry.json:
visibility.showToUser decides whether researchers see the pipeline’s status at
all, and visibility.userCanStart decides whether they may launch it. Every
shipped package sets userCanStart: false — launching is always a facility
admin action. Independently of both flags, a run’s results stay private until an
admin marks it Use as final; see
Publishing a run.
Study pipelines
MAG Pipeline
Wraps: nf-core/mag v3.0.0 · Target: study · Requires: paired-end
reads on every selected sample
The reference metagenomics workflow: quality control, host removal, assembly,
binning, bin refinement, bin QC and taxonomic classification, ending in a
MultiQC report. It is also the pipeline that produces the Assembly and Bin
records the ENA submission path depends on.
MAG is the only shipped package with a hard compatibility gate. Its samplesheet requires paired short reads, and metadata validation refuses an order whose sequencing technology is long-read or single-end-only:
Sequencing technology "…" incompatible with MAG.
MAG requires short-read technologies that support paired reads.Steps (from definition.json, in dependency order): Input Validation, Raw
Read QC, Read Trimming, Host Removal, Trimmed Read QC, Assembly, Assembly QC,
Binning Prep, Genome Binning, Bin Refinement, Bin Quality, Taxonomy, Annotation,
MultiQC Report.
Configuration
| Parameter | Default | Nextflow flag | Description |
|---|---|---|---|
stubMode | false | -stub | Stub run — fast, no real analysis |
skipMegahit | false | --skip_megahit | Skip the MEGAHIT assembler |
skipSpades | true | --skip_spades | Skip SPAdes (off by default) |
skipProkka | true | --skip_prokka | Skip gene annotation |
skipBinQc | false | --skip_binqc | Skip bin quality control |
skipConcoct | true | --skip_concoct | Skip the CONCOCT binning branch (off by default as a stability workaround) |
skipBusco | false | --skip_binqc | Compatibility switch for nf-core/mag 3.0.0 — disables bin QC to avoid BUSCO summary failures |
skipCheckm | false | — | No-op at current defaults; CheckM is not used unless bin QC mode changes |
skipGunc | false | — | No-op at current defaults; GUNC is off in nf-core/mag 3.0.0 |
skipQuast | false | --skip_quast | Skip the QUAST bin summary (auto-skipped when bin QC is skipped) |
skipGtdb | false | --skip_gtdbtk | Skip GTDB-Tk classification and its database download |
runAt | all | — | all, or selected-technologies to narrow which sequencing technologies may run MAG |
allowedSequencingTechnologies | [] | — | The allowlist used when runAt is selected-technologies |
gtdbDb | — | --gtdb_db | Path to a GTDB-Tk database directory or .tar.gz |
Two conditional rules apply on top of the flag mapping: enabling skipBinQc or
skipBusco also adds --skip_quast --skip_gtdbtk, because those stages depend
on bin QC.
Narrowing with runAt: selected-technologies produces its own launch errors:
MAG is restricted to selected sequencing technologies. Found disallowed technology IDs: … Allowed: …
MAG is restricted to selected sequencing technologies in pipeline settings.
Some selected samples are missing order/technology selection metadata.Outputs
| Output | Pattern under output/ | Becomes |
|---|---|---|
assemblies | Assembly/*/*.contigs.fa.gz | Assembly rows, matched to samples by filename |
bins | GenomeBinning/DASTool/bins/**/*.fa, falling back to GenomeBinning/{MetaBAT2,MaxBin2}/**/*.fa | Bin rows, matched by parent directory |
taxonomy | Taxonomy/GTDB-Tk/*.summary.tsv | GTDB-Tk classification as sample metadata |
multiqc_report | multiqc/multiqc_report.html | the study report |
Bin completeness and contamination are parsed from
GenomeBinning/QC/checkm_summary.tsv and joined on the bin name. If that file
is absent the bins are still created — with empty quality columns.
Submit to ENA
Wraps: submg v1.0.0 via a custom runner · Target: study · Category: submission (appears under Publishing)
Builds the submg manifests from SeqDesk’s own records, submits reads, assemblies and — optionally — bins to the European Nucleotide Archive, then parses the receipts and writes the accessions back onto the sample, read and assembly records.
Steps: Validate Inputs → Generate Config → Submit to ENA → Parse Accessions.
Prerequisites. This is the pipeline with the longest list of preconditions, and all of them are checked before a run is created:
- the study has an ENA study accession (
PRJ…), registered on the same server the submission targets; - on the ENA test server, that registration must be less than 24 hours old;
- every sample has a
taxIdand the checklist fields submg requires; - every sample has paired reads with MD5 checksums — run FASTQ Checksum first if they are missing;
- every sample resolves to an assembly file.
Configuration
| Parameter | Default | Description |
|---|---|---|
skipChecks | true | Passes --skip_checks to submg submit |
submitBins | true | Include genome bins when available |
condaEnv | submg | Conda environment holding the submg CLI |
assemblySoftware | MEGAHIT | Written into the submg assembly manifest |
completenessSoftware | CheckM | Written into the submg bins manifest |
binningSoftware | MetaBAT2 | Written into the submg bins manifest |
Outputs. Two run artifacts — the submission logs (logging*/**/*) and
submg-metadata.json. The real result is in the database: sample accessions
(ERS/SAMEA), run and experiment accessions (ERR/ERX) and assembly accessions
(ERZ), rendered as an ENA submission results table on the pipeline page with
links into the ENA browser.
See ENA Submission for the full flow.
Quality Overview
Package: reads-qc v0.1.0 · Target: study · Runtime: seqkit 2.8.0
plus Python via conda; runs locally on Apple Silicon
Per-sample FASTQ statistics rolled up into a study-level HTML overview: read count, total bases, average quality and GC content. It is the lightweight alternative to running FastQC on every sample when all you want is a comparison across a study.
Steps: Compute statistics → Collect statistics → Generate report.
Configuration: none.
Outputs
| Output | Pattern | Becomes |
|---|---|---|
sample_stats | per_sample/*.tsv | run artifacts |
sample_reads_writeback | per_sample/*.tsv | writes readCount1/2 and avgQuality1/2 onto the Read rows |
summary_tsv | summary/reads-qc-summary.tsv | run artifact |
summary_report | report/reads-qc-report.html | run artifact (previewable) |
Note the writeback: although Quality Overview is study-scoped, it updates the
same canonical Read fields that the order-side QC pipelines write. Scope
governs which target a run belongs to, not whether reads may be touched.
Study MultiQC
Package: multiqc v0.1.1 · Wraps: bioconda::multiqc=1.21 ·
Target: study
Runs a single MultiQC pass over verified QC artifacts produced by earlier runs in the same study — FastQC archives and NanoPlot NanoStats tables — and produces one consolidated report. It re-analyses nothing; it only aggregates.
The report is written as study-multiqc.html rather than MultiQC’s default
multiqc_report.html, so it can never collide with the report MAG emits in the
same study.
Configuration
| Parameter | Default | Description |
|---|---|---|
reportTitle | Study MultiQC report | Title at the top of the aggregate report |
Outputs
| Output | Pattern | Becomes |
|---|---|---|
multiqc_report | multiqc/study-multiqc.html | the study report, marked as the primary preview |
multiqc_data | multiqc/multiqc_data/* | run artifacts (downloadable data tables) |
Prior-run gathering is automatic. SeqDesk stages matching FastQC and NanoPlot artifacts from completed runs in the same study, preserving their run and sample provenance. The workflow fails instead of reporting success when MultiQC parses no supported module data.
Study Demo Report
Package: study-demo-report v0.1.0 · Target: study · Runtime: none
— a single awk-based process with no conda profile at all
A deterministic, hermetic pipeline that produces an HTML report, a Markdown summary and a per-sample TSV without doing any bioinformatics. Its purpose is to prove that execution, monitoring, output discovery, preview handling and the results UI all work end to end on a given installation.
This is the right first run on a new install. It needs no reference data, no reads and no network, and it finishes in seconds — so if it fails, the problem is the environment, not the data.
Configuration
| Parameter | Default | Description |
|---|---|---|
report_title | SeqDesk demo pipeline report | Title of the generated report |
Outputs: report/demo-report.html (study report), report/demo-report.md
and tables/sample-summary.tsv (run artifacts).
Taxonomic Profiling (Kraken2 + Bracken)
Package: kraken2-bracken v0.1.0 · Target: study and order ·
Wraps: kraken2 2.1.3, bracken 2.9, krakentools 1.2 + krona 2.8.1
Classifies each sample’s short reads against a Kraken2 database, re-estimates abundances with Bracken at a configurable rank, and renders an interactive Krona chart per sample. The top taxon and its fraction are parsed out of each Bracken table and shown in the sample result column.
This is the only shipped package that declares both targets, so it appears in both the study and the sequencing-order catalogs.
Steps: Classify Reads (Kraken2) → Estimate Abundance (Bracken) → Visualize (Krona) → Collect Summary.
Configuration
| Parameter | Default | Placement | Description |
|---|---|---|---|
kraken2Db | — | basic | Kraken2 database directory, which must also contain the Bracken kmer distributions. Hidden from the run form when the facility has configured it centrally. |
confidence | 0.0 | advanced | Kraken2 confidence threshold, 0.0–1.0; 0.0 disables filtering |
brackenReadLength | 150 | advanced | Selects which databaseXXmers.kmer_distrib Bracken uses |
brackenLevel | S | advanced | Bracken rank: S species, G genus, F family |
krona | true | basic | Render a Krona chart per sample |
The database is not bundled and is never downloaded automatically.
kraken2Db must point at a Kraken2 database directory that also contains
databaseXXmers.kmer_distrib files, built once with bracken-build for the
read length you configure. Admins pin this centrally through the installation
profile rather than per run.
Outputs
| Output | Pattern | Becomes |
|---|---|---|
kraken2_report | kraken2/*.kraken2.report.txt | per-sample run artifact |
bracken_abundance | bracken/*.bracken.tsv | per-sample run artifact; top taxon parsed into metadata |
krona_html | krona/*.krona.html | per-sample run artifact, marked as the primary preview |
summary_tsv | summary/kraken2-bracken-summary.tsv | run artifact — top taxon per sample |
No Read writeback: everything stays as artifacts.
Sequencing Order pipelines
Simulate Reads
Package: simulate-reads v0.2.0 · Target: order
Generates FASTQ files for the samples of a sequencing order and links them to
the canonical Read records. It is the one order pipeline that does not
require existing reads — it produces them. Use it for demos, smoke tests, and to
give the rest of the order-side chain something to work on.
It can either synthesise reads or replay real template FASTQ pairs that the facility has staged, which produces far more realistic input for downstream QC.
Configuration
| Parameter | Default | Description |
|---|---|---|
simulationMode | auto | auto (use templates when available, otherwise synthesise), synthetic, or template |
mode | shortReadPaired | shortReadPaired, shortReadSingle, or longRead |
readCount | 1000 | Reads per sample (long reads, in long-read mode) |
readLength | 150 | Read length, or target mean length in long-read mode |
qualityProfile | standard | Synthetic only: standard, highAccuracy, or noisy |
insertMean | 350 | Synthetic paired-end mean insert size |
insertStdDev | 30 | Synthetic paired-end insert size standard deviation |
seed | — | Makes synthetic output and template selection reproducible |
replaceExisting | true | Delete the sample’s existing linked read files and replace them |
templateDir | — | Admin-only: directory of template FASTQ pairs |
replaceExisting defaults to true, and it deletes files. Running Simulate
Reads on an order that already has real data will overwrite it.
Writes back: file1, file2, checksum1, checksum2, readCount1,
readCount2.
Also produces: summary/simulation-summary.tsv as a run artifact.
FASTQ Checksum
Package: fastq-checksum v0.1.0 · Target: order · Requires: linked
reads
Computes MD5 checksums for the FASTQ files already linked to the order’s samples and stores them on the canonical read record. ENA submission validation refuses to proceed without them, so this is worth running as soon as data arrives.
Configuration: none.
Writes back: checksum1, checksum2 (from checksums/*.json).
Also produces: summary/checksum-summary.tsv.
The sample result column shows the first 8 characters of each checksum, or Not computed.
FastQC
Package: fastqc v0.1.0 · Wraps: bioconda::fastqc=0.12.1 ·
Target: order · Requires: linked reads
Runs FastQC per sample, publishes the HTML reports and zip archives, and extracts read counts and mean quality back onto the read record.
Configuration: none.
Outputs
| Output | Pattern | Becomes |
|---|---|---|
sample_qc_reports | fastqc_reports/*_fastqc.html | per-sample run artifacts (previewable) |
sample_qc_data | fastqc_reports/*_fastqc.zip | per-sample run artifacts |
sample_fastqc_reads | fastqc_reports/*_R1_fastqc.html | writeback |
summary | summary/fastqc-summary.tsv | run artifact |
Writes back: fastqcReport1, fastqcReport2, readCount1, readCount2,
avgQuality1, avgQuality2. The sample result column shows the report links
and the average quality per read direction.
Read Cleaning
Package: read-cleaning v0.1.0 · Wraps: nf-core/detaxizer v1.3.0 ·
Target: order · Requires: active reads whose dataClass is raw or
unknown
Screens reads for host or contaminant sequences — by default Homo sapiens — filters them out, and writes per-sample cleaned FASTQ files. Those files are staged as candidates, not applied: they become run artifacts and wait for an admin to review the evidence and promote them. See Read writeback and candidate review.
Samples whose active reads are already cleaned are reported as
Needs raw or unknown reads and skipped, so the pipeline cannot be run twice
over its own output by accident.
Configuration
| Parameter | Default | Placement | Description |
|---|---|---|---|
tax2filter | Homo sapiens | basic | Taxon name or ID passed to detaxizer |
classificationKraken2 | true | basic | Use Kraken2 to identify contaminant reads |
kraken2Db | — | basic | Kraken2 database path (hidden when configured centrally) |
classificationBbduk | false | advanced | Use BBDuk k-mer matching against a contaminant FASTA |
bbdukReference | — | advanced | Contaminant reference FASTA for BBDuk |
filteringTool | seqkit | advanced | Filtering backend: seqkit or bbmap |
readType | auto | advanced | Map single-file samples to detaxizer’s short- or long-read columns: auto, short, long |
outputRemovedReads | false | advanced | Also write the removed contaminant reads |
Outputs
| Output | Pattern | Becomes |
|---|---|---|
cleaned_read_candidates | filter/filtered/*_filtered.fastq.gz | staged read candidates awaiting admin review |
removed_reads | filter/removed/*_removed.fastq.gz | run artifacts (only when outputRemovedReads is on) |
multiqc_report | multiqc/multiqc_report.html | run artifact, marked as the primary preview |
summary | summary/summary.tsv | run artifact |
pipeline_info | pipeline_info/* | run artifacts |
NanoPlot (Long-read QC)
Package: nanoplot v0.1.0 · Wraps: bioconda::nanoplot=1.42.0 ·
Target: order · Requires: a linked read file per sample
Computes long-read quality metrics — read count, total bases, mean/median/N50 read length, mean Phred quality — and an interactive self-contained HTML report per sample.
Configuration: none.
Outputs
| Output | Pattern | Becomes |
|---|---|---|
sample_report | nanoplot/*_NanoPlot-report.html | per-sample run artifact (previewable) |
sample_stats | nanoplot/*_NanoStats.txt | per-sample run artifact |
sample_reads_writeback | nanoplot/*_NanoStats.txt | writes readCount1 and avgQuality1 |
summary_tsv | summary/nanoplot-summary.tsv | run artifact |
Read-length N50 and mean length are kept in the artifact metadata rather than on
the Read record, because there are no canonical read columns for them.
The package declares sequencingCompatibility as long-read, single-layout,
Oxford Nanopore or PacBio. That declaration is descriptive today — the
catalog is not filtered by it, so NanoPlot is offered on every sequencing
order regardless of platform. Running it against short Illumina reads will
produce a report, just not a useful one. No long-read demo dataset ships with
SeqDesk, so this package has not been exercised against bundled demo data.
Beyond the bundled catalog
The pipeline store
SeqDesk hosts a curated store that facilities can browse in the application or from the server shell. Under Admin → Pipelines, the Per-Sample Pipelines and Per-Study Pipelines tabs each offer three views — Installed, Needs setup and Available — and Available is the store catalog filtered to packages this deployment does not have yet, with an Install action per entry.
The same catalog is available through the operator CLI:
seqdesk pipelines list
seqdesk pipelines list --catalog order
seqdesk pipelines list --catalog study
seqdesk pipelines install <name>Both surfaces use the same installation, readiness, and activation services. See Installing & Setting Up Pipelines for states, guided setup, and automation.
The store’s catalog is versioned independently of the application, which is what
makes a pipeline installable into an existing deployment without shipping a new
release. It is a subset of the bundled packages plus private entries — today it
carries mag, submg, reads-qc, read-cleaning, simulate-reads,
fastq-checksum, fastqc and the private metaxpath, so a package can ship in
the repository without yet being offered in the store.
To propose a package for the store, see Contributing to the Official Pipeline Store.
MetaxPath — private add-on
Not part of the bundled catalog. MetaxPath
(hzi-bifo/MetaxPath-Nextflow, v0.1.6) is a private, study-scoped package for
long-read clinical metagenomics: host filtering, taxonomic profiling, assembly,
virulence-factor prediction, AMR detection and reporting. Operators with access
install it separately; nothing in the public catalog references it.
Two of its properties are worth knowing because they shaped SeqDesk’s own monitoring logic:
- It ships no step definitions, so trace progress cannot prove completion — which is why SeqDesk finalizes such runs only from a positive exit marker or a terminal scheduler state. See How a run is finalized.
- Its profiling processes request 20 CPUs by default, which a small SLURM allocation rejects pre-flight. See Execution modes.
Your own package
Any directory under pipelines/ with a valid manifest is picked up at startup —
no registration step, no code change. See
Adding Custom Pipelines.
Related pages
- Study vs Sequencing Order Pipelines — what each target means.
- Running a Pipeline — launching any of the above.
- Results & Outputs — what the outputs above turn into.
- Adding Custom Pipelines — writing your own package.