From 6f5f693120a8cc371c624fa2a8d39f3a7b399804 Mon Sep 17 00:00:00 2001 From: Johan Dahlberg Date: Mon, 3 Aug 2026 16:44:10 +0200 Subject: [PATCH 1/4] Document DuckDB temporary storage environment variables. Co-authored-by: Cursor --- CHANGELOG.md | 1 + docs/usage.md | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f033df6..e9ab8e3e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Enhancements & fixed - Automate release creation. By @Aratz [#235](https://github.com/nf-core/pixelator/pull/235) +- Document how to configure DuckDB temporary storage environment variables. By @johandahlberg ## [[5.0.0](https://github.com/nf-core/pixelator/releases/tag/5.0.0)] - 2026-07-13 diff --git a/docs/usage.md b/docs/usage.md index 08d60fd6..11f70a7f 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -310,6 +310,27 @@ Specify the path to a specific config file (this is a core Nextflow command). Se ## Custom configuration +### DuckDB temporary storage + +When Pixelator runs memory-constrained DuckDB work (for example `denoise` or component filtering), it can spill +temporary data to disk. For container profiles, nf-core/pixelator sets +`PIXELATOR_DUCKDB_TEMP_DIR` to `${TMPDIR:-/tmp}` so spill files land on local disk rather than next to the +`.pxl` file (which may live on networked storage such as S3/Fusion). + +That default works on most systems. Override it when it does not — for example if `/tmp` or `TMPDIR` is too +small, is on a networked or otherwise unsuitable filesystem, or is not writable inside the container. +You can also set `PIXELATOR_DUCKDB_MAX_TEMP_DIR_SIZE` to cap how much disk DuckDB may use for spill files +(unset means no limit). Values use DuckDB size syntax (for example `"10GB"`). + +Set either variable in a Nextflow config passed with `-c`: + +```groovy +env { + PIXELATOR_DUCKDB_TEMP_DIR = '/path/to/local/tmp' + PIXELATOR_DUCKDB_MAX_TEMP_DIR_SIZE = '10GB' +} +``` + ### Resource requests Whilst the default requirements set within the pipeline will hopefully work for most people and with most input data, you may find that you want to customise the compute resources that the pipeline requests. Each step in the pipeline has a default set of requirements for number of CPUs, memory and time. For most of the pipeline steps, if the job exits with any of the error codes specified [here](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/base.config#L18) it will automatically be resubmitted with higher resources request (2 x original, then 3 x original). If it still fails after the third attempt then the pipeline execution is stopped. From 217ac6142c8aa548f2f773b2ffcb8c36a324e01d Mon Sep 17 00:00:00 2001 From: Johan Dahlberg Date: Mon, 3 Aug 2026 16:48:53 +0200 Subject: [PATCH 2/4] Update changelog with pr nbr --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e9ab8e3e..a2c4f26a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Enhancements & fixed - Automate release creation. By @Aratz [#235](https://github.com/nf-core/pixelator/pull/235) -- Document how to configure DuckDB temporary storage environment variables. By @johandahlberg +- Document how to configure DuckDB temporary storage environment variables. By @johandahlberg [#238](https://github.com/nf-core/pixelator/pull/238/) ## [[5.0.0](https://github.com/nf-core/pixelator/releases/tag/5.0.0)] - 2026-07-13 From deaaa26c78082c9398cfb2c1bc28e5e886e43262 Mon Sep 17 00:00:00 2001 From: Johan Dahlberg Date: Tue, 4 Aug 2026 08:10:40 +0200 Subject: [PATCH 3/4] Update docs/usage.md Co-authored-by: Adrien Coulier --- docs/usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage.md b/docs/usage.md index 11f70a7f..53c7f237 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -314,7 +314,7 @@ Specify the path to a specific config file (this is a core Nextflow command). Se When Pixelator runs memory-constrained DuckDB work (for example `denoise` or component filtering), it can spill temporary data to disk. For container profiles, nf-core/pixelator sets -`PIXELATOR_DUCKDB_TEMP_DIR` to `${TMPDIR:-/tmp}` so spill files land on local disk rather than next to the +`PIXELATOR_DUCKDB_TEMP_DIR` to `TMPDIR` if it is set, otherwise to `/tmp`, so spill files land on local disk rather than next to the `.pxl` file (which may live on networked storage such as S3/Fusion). That default works on most systems. Override it when it does not — for example if `/tmp` or `TMPDIR` is too From 1d7ba642041fc01c4ea59d6780e620e89f4c6b09 Mon Sep 17 00:00:00 2001 From: Johan Dahlberg Date: Tue, 4 Aug 2026 16:00:36 +0200 Subject: [PATCH 4/4] Fix formatting --- docs/usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage.md b/docs/usage.md index 53c7f237..d85c8223 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -314,7 +314,7 @@ Specify the path to a specific config file (this is a core Nextflow command). Se When Pixelator runs memory-constrained DuckDB work (for example `denoise` or component filtering), it can spill temporary data to disk. For container profiles, nf-core/pixelator sets -`PIXELATOR_DUCKDB_TEMP_DIR` to `TMPDIR` if it is set, otherwise to `/tmp`, so spill files land on local disk rather than next to the +`PIXELATOR_DUCKDB_TEMP_DIR` to `TMPDIR` if it is set, otherwise to `/tmp`, so spill files land on local disk rather than next to the `.pxl` file (which may live on networked storage such as S3/Fusion). That default works on most systems. Override it when it does not — for example if `/tmp` or `TMPDIR` is too