Skip to content

1.0.1 hotfix - #193

Open
heylf wants to merge 59 commits into
masterfrom
dev
Open

1.0.1 hotfix#193
heylf wants to merge 59 commits into
masterfrom
dev

Conversation

@heylf

@heylf heylf commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator

1.0.1 - Hotfix to solve some intitial bugs and template update

Added

  • Template update for nf-core/tools version 4.0.3

Fixed

  • Only pass --expansion-distance to xeniumranger import-segmentation for nuclei-based imports. It was applied to every import, but xeniumranger rejects it for transcript-assignment imports (proseg/baysor/segger) and cells-only imports with ERROR: --expansion-distance requires --nuclei.
  • Preserve the URI scheme (e.g. s3://) when building Xenium bundle child paths, so bundle validation works when the work directory is on object storage (S3/GCS/Azure). Previously Path.toString() dropped the scheme and the resulting path was resolved on the local filesystem, causing Xenium bundle does not exist / NoSuchFileException failures on AWS Batch.

Dependencies

None

Deprecated

None

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!
  • Make sure your code lints (nf-core pipelines lint).
  • Ensure the test suite passes (nextflow run . -profile test,docker --outdir <OUTDIR>).
  • Check for unexpected warnings in debug mode (nextflow run . -profile debug,test,docker --outdir <OUTDIR>).
  • CHANGELOG.md is updated.

nf-core-bot and others added 30 commits November 20, 2025 09:32
Co-authored-by: khersameesh24 <58815690+khersameesh24@users.noreply.github.com>
This reverts commit f5def52, reversing
changes made to 2ef69a3.

Co-authored-by: khersameesh24 <58815690+khersameesh24@users.noreply.github.com>
dev branch version bump to 1.1.0dev
Important! Template update for nf-core/tools v4.0.2
…e-4.0.2

Revert "Important! Template update for nf-core/tools v4.0.2"
Template merge - `nf-core v4.0.2`
Bundle validation built child paths from `Path.toString()`, which drops
the URI scheme (e.g. `s3://`) for remote filesystems. On object-storage
work dirs (S3 on AWS Batch) the scheme-less path was resolved on the
local filesystem, so every child-file check failed with
`Xenium bundle does not exist` / `NoSuchFileException`, even though the
UNTAR step succeeded.

Use scheme-preserving `Path.resolve()` / `toUriString()` instead of
`toString()` at all bundle-path construction sites. This fixes both the
`-profile test` staging path (UNTAR output) and production runs where the
samplesheet supplies an object-storage bundle. No change on local /
shared-filesystem executors.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
xeniumranger import-segmentation was given --expansion-distance on every
invocation, but the tool only accepts it for nuclei-based imports
(it expands nuclei into cell boundaries). Transcript-assignment imports
(proseg/baysor/segger) and cells-only imports fail with
`ERROR: --expansion-distance requires --nuclei`.

Gate the flag on the module's `nuclei` input so it is emitted only when a
nuclei segmentation is being imported.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ndle-paths

Preserve URI scheme when resolving Xenium bundle child paths
…lei-only

Only pass --expansion-distance for nuclei-based xeniumranger imports
@heylf heylf mentioned this pull request Jul 28, 2026
@github-actions

github-actions Bot commented Jul 28, 2026

Copy link
Copy Markdown

Warning

Newer version of the nf-core template is available.

Your pipeline is using an old version of the nf-core template: 4.0.3.
Please update your pipeline to the latest version.

For more documentation on how to update your pipeline, please see the Synchronisation documentation.

heylf and others added 6 commits July 28, 2026 16:14
Merging from dev to 1.0.1
Fixing a mistake in solving the merge conflict
Co-authored-by: Matthias Hörtenhuber <mashehu@users.noreply.github.com>
Important! Template update for nf-core/tools v4.0.3
@github-actions

github-actions Bot commented Jul 31, 2026

Copy link
Copy Markdown

nf-core pipelines lint overall result: Passed ✅ ⚠️

Posted for pipeline commit 4985a57

+| ✅ 284 tests passed       |+
#| ❔   8 tests were ignored |#
!| ❗   7 tests had warnings |!
Details

❗ Test warnings:

  • files_exist - File not found: conf/igenomes.config
  • files_exist - File not found: conf/igenomes_ignored.config
  • pipeline_todos - TODO string in main.nf: Optionally add in-text citation tools to this list.
  • pipeline_todos - TODO string in main.nf: Optionally add bibliographic entries to this list.
  • pipeline_if_empty_null - ifEmpty(null) found in /home/runner/work/spatialaxe/spatialaxe/lint_results.md: _* pipeline_if_empty_null - No ifEmpty(null) strings found
    _
  • schema_lint - Schema 'description' should be 'A pipeline for spatialomics 10x Xenium In Situ data.'
    Found: 'A pipeline to process spatialomics data from 10x Xenium In Situ or 10x Atera.'
  • included_configs - Pipeline config does not include custom configs. Please add the includeConfig line.

❔ Tests ignored:

  • files_exist - File is ignored: .github/workflows/awsfulltest.yml
  • files_exist - File is ignored: .github/workflows/awstest.yml
  • files_exist - File is ignored: .github/workflows/linting_comment.yml
  • files_unchanged - File ignored due to lint config: .github/PULL_REQUEST_TEMPLATE.md
  • files_unchanged - File ignored due to lint config: assets/nf-core-spatialaxe_logo_light.png
  • files_unchanged - File ignored due to lint config: docs/images/nf-core-spatialaxe_logo_light.png
  • files_unchanged - File ignored due to lint config: docs/images/nf-core-spatialaxe_logo_dark.png
  • files_unchanged - File ignored due to lint config: .gitignore or .prettierignore

✅ Tests passed:

Run details

  • nf-core/tools version 4.0.3
  • Run at 2026-07-31 10:22:35

Comment thread CHANGELOG.md Outdated

@FriederikeHanssen FriederikeHanssen 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.

looks good to me. We can't test on AWS at the moment (see #pipeline-maintainers) channel. Do you have an AWS CE available to test your fix on?

@heylf

heylf commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator Author

Unfortuantely not

Add missing date in CHANGELOG.md

@erikrikarddaniel erikrikarddaniel left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

No test seems to cover the bug you fixed. In the words of my coworker Claude (modules/nf-core/xeniumranger/importsegmentation/tests/main.nf.test, lines 28–61): "Both test cases here (nuclei + stub) set nuclei to bundle + "/cells.zarr.zip" and expansion_distance to 5 — so they only exercise the branch in main.nf:37 that already worked before this fix (nuclei truthy → include --expansion-distance).

Neither case covers the actual bug: nuclei empty/falsy (transcript-assignment or cells-only import) with expansion_distance still set, which is exactly the scenario that used to error out with --expansion-distance requires --nuclei. Could you add a third case with nuclei: [] and expansion_distance: 5 that asserts the resulting command does not include --expansion-distance? As it stands, this fix could regress silently and the test suite wouldn't catch it."

And another note on tests from the same source (workflows/spatialaxe.nf, around line 148): "This fix (and the toUriString() calls at lines 227/244/264/350) is specifically about object-storage work dirs — the commit message itself notes "No change on local / shared-filesystem executors." Since our test suite runs on local storage, toString() and toUriString() produce identical results there, so the existing tests can't actually distinguish the buggy behavior from the fixed one — this could regress again without CI noticing.

Was this verified against a real S3 (or other object-storage) work directory, e.g. via an AWS full-test run on Seqera Platform? Not asking for a new automated test necessarily (that'd need real cloud infra in CI), just want to confirm it's been exercised somewhere before we ship it as a fix, and maybe note in the PR how it was checked."

Claude also discovered some meta.yml mistakes that should be easy to fix: "8 subworkflows still reference the old module name in their meta.yml (xeniumranger/import-segmentation) after the module was renamed to xeniumranger/importsegmentation — a mechanical follow-up that got missed: baysor_run_prior_segmentation_mask, baysor_run_transcripts_parquet, cellpose_baysor_import_segmentation, cellpose_resolift_morphology_ome_tif, proseg_preset_proseg2baysor, segger_create_train_predict, xeniumranger_import_segmentation_redefine_bundle, xeniumranger_resegment_morphology_ome_tif."

include { BAYSOR_PREPROCESS_TRANSCRIPTS } from '../../../modules/local/baysor/preprocess/main'
include { BAYSOR_RUN } from '../../../modules/local/baysor/run/main'
include { XENIUMRANGER_IMPORT_SEGMENTATION } from '../../../modules/nf-core/xeniumranger/import-segmentation/main'
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'

include { XENIUM_PATCH_STITCH } from '../../../modules/local/xenium_patch/stitch/main'
include { RECONSTRUCT_PATCHES } from '../../../modules/local/utility/reconstruct_patches/main'
include { XENIUMRANGER_IMPORT_SEGMENTATION } from '../../../modules/nf-core/xeniumranger/import-segmentation/main'
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'

include { BAYSOR_RUN } from '../../../modules/local/baysor/run/main'
include { XENIUM_PATCH_STITCH } from '../../../modules/local/xenium_patch/stitch/main'
include { XENIUMRANGER_IMPORT_SEGMENTATION } from '../../../modules/nf-core/xeniumranger/import-segmentation/main'
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'

include { RESIZE_TIF } from '../../../modules/local/utility/resize_tif/main'
include { GET_TRANSCRIPTS_COORDINATES } from '../../../modules/local/utility/get_coordinates/main'
include { XENIUMRANGER_IMPORT_SEGMENTATION } from '../../../modules/nf-core/xeniumranger/import-segmentation/main'
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'

include { STARDIST as STARDIST_NUCLEI } from '../../../modules/nf-core/stardist/main'
include { CONVERT_MASK_UINT32 } from '../../../modules/local/utility/convert_mask_uint32/main'
include { XENIUMRANGER_IMPORT_SEGMENTATION } from '../../../modules/nf-core/xeniumranger/import-segmentation/main'
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'

include { PROSEG2BAYSOR } from '../../../modules/local/proseg/proseg2baysor/main'
include { XENIUM_PATCH_STITCH } from '../../../modules/local/xenium_patch/stitch/main'
include { XENIUMRANGER_IMPORT_SEGMENTATION } from '../../../modules/nf-core/xeniumranger/import-segmentation/main'
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'

include { SEGGER_PREDICT } from '../../../modules/local/segger/predict/main'
include { SEGGER_CREATE_DATASET } from '../../../modules/local/segger/create_dataset/main'
include { XENIUMRANGER_IMPORT_SEGMENTATION } from '../../../modules/nf-core/xeniumranger/import-segmentation/main'
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'

include { STARDIST as STARDIST_NUCLEI } from '../../../modules/nf-core/stardist/main'
include { CONVERT_MASK_UINT32 } from '../../../modules/local/utility/convert_mask_uint32/main'
include { XENIUMRANGER_IMPORT_SEGMENTATION } from '../../../modules/nf-core/xeniumranger/import-segmentation/main'
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'


include { XENIUMRANGER_RESEGMENT } from '../../../modules/nf-core/xeniumranger/resegment/main'
include { XENIUMRANGER_IMPORT_SEGMENTATION } from '../../../modules/nf-core/xeniumranger/import-segmentation/main'
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'
include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main'

"meta": {
"nf-test": "0.9.5",
"nextflow": "25.10.4"
"nextflow": "26.04.6"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is this needed for the pipeline or an accident? I try to avoid upgrading this unless it's needed. Just close the comment if it's needed.

@heylf

heylf commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator Author

And another note on tests from the same source (workflows/spatialaxe.nf, around line 148): "This fix (and the toUriString() calls at lines 227/244/264/350) is specifically about object-storage work dirs — the commit message itself notes "No change on local / shared-filesystem executors." Since our test suite runs on local storage, toString() and toUriString() produce identical results there, so the existing tests can't actually distinguish the buggy behavior from the fixed one — this could regress again without CI noticing.

Was this verified against a real S3 (or other object-storage) work directory, e.g. via an AWS full-test run on Seqera Platform? Not asking for a new automated test necessarily (that'd need real cloud infra in CI), just want to confirm it's been exercised somewhere before we ship it as a fix, and maybe note in the PR how it was checked."

It is beeing tested. The fix which is already implement was defintily tested by seqera on their platform. Yet all the new implementation as whole (inclduing template updates) were not tested on seqara platform or similar. Will be done! Coming back to that with an update to this comment.

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.

8 participants