Conversation
Important! Template update for nf-core/tools v3.3.2
Massive linting fixes and other minor changes
Added new module and subworkflow for opt, Ci fix changes
…apshots nf-test's FileUtil.getMd5() decompresses .gz files before hashing. When the UNTAR stub used `touch foo.gz` (0-byte file), GZIPInputStream threw EOF; the exception handler in PathConverter.java fell through to dumping raw File metadata (path, absolutePath, freeSpace, ...) into the JSON snapshot, causing machine-dependent dict-form entries. Fix: `: | gzip -n > file.gz` produces a 20-byte deterministic empty gzip (magic + empty deflate block, no embedded mtime/filename). Decompressed md5 is d41d8cd98f00b204e9800998ecf8427e on every machine, so snapshots are stable across local and CI runners. All 5 mode tests pass twice locally (regen + validate-without-update).
The original justifications for ignoring MULTIQC failures are gone: 1. `ext.args` title-flag bug (exit 2) — fixed; modules.config now emits `--title "..."` correctly for both PRE_XR and POST_XR variants. 2. `.map().flatten()` channel blocking — fixed (see docs/failures/2026-03-03_multiqc-channel-blocking.md). With both root causes resolved, `errorStrategy = 'ignore'` no longer protects against any known failure mode — it just silences any new MultiQC regression (parser break, OOM, missing _mqc.yml, etc.), letting the pipeline report success without a rendered report. Removing the directive restores a real CI signal for MultiQC failures.
…rams-strict fix(modules): address awgymer review comments on PR #139 (strict nf-core compliance)
…er-untar fix: validate Xenium bundle after UNTAR (drop test-profile skip-validation guard)
|
@awgymer comments are solved. |
There was a problem hiding this comment.
Looking much better. Just one small change needed here.
Just to note that after this I am going to hold off on approval and green-lighting this release due to the pending decision on the potential re-scoping of this pipeline to support other spatial data as a name change of the pipeline would be more easily facilitated if there hasn't yet been a release. Hopefully a decision is made on that quickly.
|
Yes, that it ok. We try to clarify as fast as possible. I agree that a potential name change should be done before the release. |
|
Renaming of the pipeline is complete |
Bug 2 from the Atera compatibility report: 19 modules using
python3 ${moduleDir}/templates/<script>.py
fail on Tower / AWS Batch with
python3: can't open file '/.nextflow/assets/an-altosian/spatialaxe/modules/local/<x>/templates/<script>.py': [Errno 2] No such file or directory
because ${moduleDir} interpolates the head-node path into .command.sh,
but the templates aren't staged at that absolute path on AWS Batch
workers. The path resolves to /.nextflow/... (leading slash) because
HOME is empty inside the worker container.
This regressed in PR nf-core#154 (commits 4f21dd2 -> ea46ad0 -> dbd7a35) which
moved the scripts from bin/ into per-module templates/ folders to
satisfy PR nf-core#139's no-module-level-bin review. The follow-up dbd7a35
switched from the 'template <file>.py' directive (which broke eval() in
non-Bash interpreters) to the shell-call invocation above -- which
works in local nf-test but breaks on Tower.
Fix: move the 20 scripts from modules/local/<x>/templates/ back to the
top-level bin/ directory, and invoke them by name. Nextflow auto-adds
bin/ to PATH on workers, so this works on Tower (and matches the
nf-core canonical pattern used by most pipelines). PR nf-core#139's review was
specifically about MODULE-level bin (modules/local/<x>/bin/) -- top-level
bin/ remains permissible.
Also cleans up 3 pre-existing unused imports in spatialdata_{merge,meta,write}.py
that ruff flagged once the scripts moved into the linted bin/ path.
Affected (19 modules, 20 scripts):
- baysor/{create_dataset,preprocess}
- ficture/preprocess
- segger/{create_dataset,predict}
- spatialdata/{merge,meta,write}
- utility/{convert_mask_uint32,downscale_morphology,extract_dapi,
extract_preview_data,get_coordinates,parquet_to_csv,
resize_tif,segger2xr,split_transcripts,upscale_mask}
- xenium_patch/stitch (2 scripts: stitch_transcripts + stitch_postprocess)
The orphaned pre-refactor bin/stitch_transcripts.py is overwritten by
the canonical templates/ version (sopa-based solve_conflicts() impl).
awgymer
left a comment
There was a problem hiding this comment.
Do these need to be changed:
docs/images/spatialaxe-logo.svg:10: sodipodi:docname="spatialxe-logo.svg"
docs/images/spatialaxe-logo.svg:12: inkscape:export-filename="spatialxe-logo.png"
docs/images/spatialaxe-metromap.svg:12: sodipodi:docname="spatialxe-metromap.svg"
docs/images/spatialaxe-metromap.svg:13: inkscape:export-filename="spatialxe-metromap.png"
Just minor change to rename stuff in the svgs
|
Fixed the issues commented before |
|
You still need a 2nd approving review from someone else who hasn't worked on the code. |
The first release version of spatialxe. During the developemnt many tools were debugged, and new tools were added.
Since it is a first release thorough review is required.
PR checklist
nf-core lint).nextflow run . -profile test,docker --outdir <OUTDIR>).docs/usage.mdis updated.docs/output.mdis updated.CHANGELOG.mdis updated.README.mdis updated (including new tool citations and authors/contributors).