Skip to content

Release version 1.0.0#139

Open
heylf wants to merge 450 commits into
masterfrom
dev
Open

Release version 1.0.0#139
heylf wants to merge 450 commits into
masterfrom
dev

Conversation

@heylf

@heylf heylf commented Apr 28, 2026

Copy link
Copy Markdown
Collaborator

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

  • This comment contains a description of changes (with reason).
  • If you've fixed a bug or added code that should be tested, add tests!
  • If you've added a new tool - have you followed the pipeline conventions in the contribution docs- [ ] If necessary, also make a PR on the nf-core/spatialxe branch on the nf-core/test-datasets repository.
  • Make sure your code lints (nf-core lint).
  • Ensure the test suite passes (nextflow run . -profile test,docker --outdir <OUTDIR>).
  • Usage Documentation in docs/usage.md is updated.
  • Output Documentation in docs/output.md is updated.
  • CHANGELOG.md is updated.
  • README.md is updated (including new tool citations and authors/contributors).

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
an-altosian and others added 4 commits May 18, 2026 22:12
…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)
@heylf

heylf commented May 20, 2026

Copy link
Copy Markdown
Collaborator Author

@awgymer comments are solved.

@awgymer awgymer left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread workflows/spatialxe.nf Outdated
@heylf

heylf commented May 21, 2026

Copy link
Copy Markdown
Collaborator Author

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.

@heylf

heylf commented May 28, 2026

Copy link
Copy Markdown
Collaborator Author

Renaming of the pipeline is complete

an-altosian added a commit to an-altosian/spatialaxe that referenced this pull request May 28, 2026
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 awgymer left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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"

@heylf

heylf commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator Author

Fixed the issues commented before

@awgymer

awgymer commented Jun 15, 2026

Copy link
Copy Markdown

You still need a 2nd approving review from someone else who hasn't worked on the code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants