Changelog
All notable changes to nf-cellbender. The format follows Keep a Changelog. Releases are tagged YY-DDD: the year and the day of the year.
- Unreleased
- 26-295 - 2026-10-22
- 26-294 - 2026-10-21
- 25-274 - 2025-10-01
- 25-056 - 2025-02-25
- 23-314 - 2023-11-10
- 23-190 - 2023-09-13
- 23-103 - 2023-04-13
Unreleased
26-295 - 2026-10-22
Added
- QC report (
cellgeni/cellbender/qc@0.2.0): a PCA of CellBender’s latent gene expression of cells, coloured by soup fraction; a soup fraction histogram, overlaid for all samples in MultiQC; a per-gene raw vs corrected plot that lists the features that lost the most UMIs; and atop_ambient_genessummary column.
Changed
- The iRODS download module is now a registry module,
cellgeni/irods/loadcatalog. It skips nothing when no extensions are given, matches extensions literally after a dot (fastq.gzno longer matchesfastqXgz), no longer fails when every file in a collection is skipped but does fail on any othergreperror, and callsils2paths.awkthroughawk -f, so it works even when the executable bit is lost on install. --ignore_extensionsaccepts only letters, digits,_,.and-in each extension.- The QC cell probability plot is now CellBender’s own: the UMI curve by barcode rank with the cell probability on a second axis. In MultiQC it replaces the cell probability line graph.
--qc_mode 3now reads every sample’s CellBender input, not only the 0.2 ones, for the UMI curve and the gene removal plot. It reads 10x.h5and.mtxinputs in chunks.- CellBender reserves more GPU memory on each retry (8 GB times the attempt), so a sample that ran out of GPU memory moves to a larger card.
- Temporarily, CellBender jobs avoid the host
farm-gpu0203, whose GPU 3 fails every job with CUDA errors. - The work folder
nf-work/is kept after a successful run (no morecleanup = true), so a finished run can be resumed. Delete it yourself once the results are checked.
Fixed
- The QC cell probability plot and
Top-10 min cell prob(mode 3) rank barcodes by their raw UMI count. They used CellBender’s stored barcode order, which is not exactly the UMI order, and drew a solid black block for samples with many intermediate probabilities.
26-294 - 2026-10-21
Breaking
- Nextflow 26.04 or later is required (was
>=25.04.4, <25.10.0). --sample_tableis renamed--samples, and--output_diris renamed--outdir. The example tables are nowexamples/samples*.csv.- Combinations that used to be silently ignored now fail validation:
--costcodewith thegpuqueue;--estimator,--force_empty_umi_prioror--mapper_presetwith CellBender 0.2;--exclude_featuresother thanAllwith 0.2, orAllwith 0.3;- only one of
--cells/--dropletswith 0.2; --ignore_extensionswithout--on_irods.
- The QC report is a summary TSV, one PDF and a MultiQC HTML report, replacing
train.pdf,prob.pdf,soup.pdfand the per-sample.rdsfiles. - Process names changed:
CELLBENDER_REMOVEBACKGROUNDis nowCELLBENDER:CELLBENDER_REMOVEBACKGROUND_V02or_V03, andQualityControlis nowCELLBENDER_QCplusMULTIQC. Custom configs that select processes by name need updating.
Added
--gpuqueue(gpu,cub22-inference,tiger22-inference; defaultgpu) and--costcode, which is required oncubandtigerqueues, then trimmed, lowercased and passed to LSF as-G.- Parameter and samples table validation with nf-schema 3.0.0.
--help,--help <param>and--helpFullare generated fromnextflow_schema.json, and running without--samplesprints a short usage message. - Separate CellBender 0.2 and 0.3 modules, each pinned to its container, published to the Nextflow registry as
cellgeni/cellbender/removebackground_v02and_v03. - A Python QC module,
cellgeni/cellbender/qc, and a MultiQC module,cellgeni/multiqc, both published to the registry. index/cellbender.csvandindex/raw.csvin the output, in the samples table format, and aversions.ymlfor the whole run.- This documentation site.
Changed
- Outputs are published through Nextflow workflow outputs instead of per-process
publishDir. - Per-process settings live in
configs/<process>.config. The pipeline is split intomain.nfand aCELLBENDERsubworkflow inworkflow/main.nf. - On retry only memory grows; CPUs stay fixed.
--ignore_failednow drops a sample only after its final attempt. It used to give up one attempt early.--estimatorand--ignore_extensionsdefault to unset. CellBender 0.3 still usesmckp, and the iRODS skip list is unchanged.- The CellBender GPU request is 8,000 MB of GPU memory (was 6,000 MB).
- QC soup fraction statistics are computed over called cells for both CellBender versions.
- MultiQC keeps its temporary files in the work folder, which avoids “Disk quota exceeded” from files copied out of
/tmpwith the wrong group.
Fixed
--ignore_failedhad no effect because the parameter was misspelt (ingore_failed).- The QC now reads the 0.2 log’s “Prior on counts in empty droplets”.
- The manifest’s home page and description no longer point to nf-irods-to-fastq.
Removed
.nf-core.yml: the pipeline no longer follows nf-core conventions.bin/cellbender_qc.R, replaced by the Python QC module.
25-274 - 2025-10-01
Added
- An nf-core style CellBender module that recognises CellRanger count, multi, ARC and ATAC, STARsolo,
.h5and.mtxinputs by their folder structure, including CellRanger folders withoutouts/. - A mapper preset that estimates expected cells, total droplets and the low-count threshold from the mapper output (
preset.sh,count_cells.awk,sort_cells.awk). --starsolo_mapperto choose the STARsolo matrix type, and--force_empty_umi_prior.- Several
--exclude_featurestypes at once. IRODS_LOADCATALOG, which downloads whole iRODS collections with retries and restart files and skips unwanted extensions (--ignore_extensions).- An nf-test suite with snapshots,
meta.ymlfiles for the modules, and an LSF script that runs the tests in parallel. - New example tables and scripts, and an updated
resume/script.
Changed
- The estimator parameter and argument handling of the CellBender process.
25-056 - 2025-02-25
Added
--exclude_features, to exclude feature types from the analysis.--min_umi, to set the empty-droplet UMI threshold.- Separate Dockerfiles for CellBender 0.2 and 0.3, with
gawk. - New example scripts and samples tables for CellRanger and STARsolo outputs.
- The project licence.
Changed
- The samples table is a
.tsvfile, and input and output are carried in a single channel so samples cannot be mixed up. - Execution reports go to
execution-reports/, and the work folder is callednf-work. - The help message, parameter handling and resources of the CellBender process were reworked.
Removed
- Obsolete container parameters and example scripts.
23-314 - 2023-11-10
Added
- CellBender 0.3.0 support, with QC parsing updated for the 0.3.0 output format.
23-190 - 2023-09-13
Changed
- Clearer handling of the samples file, file permissions, and a re-enabled work folder cleanup.
- README and
RESUME-cellbenderupdates, including the missing-rflag.
23-103 - 2023-04-13
Added
- First release: CellBender on farm22 through Nextflow for a table of samples, with the R QC script, a Dockerfile, a resume script and example tables.