Skip to content

Resolve the BWA index prefix without find(1) - #95

Closed
BenjaminWehnert1008 wants to merge 1 commit into
devfrom
fix/singularity-findutils
Closed

BenjaminWehnert1008 wants to merge 1 commit into
devfrom
fix/singularity-findutils

Conversation

@BenjaminWehnert1008

Copy link
Copy Markdown
Contributor

MERGE_ALIGN failed with exit 127 and ".command.sh: line 2: find: command not found" on both real-data shards of -profile singularity, the first time that leg has ever run (conda and singularity are excluded from the matrix unless a PR targets master, so #54 is the first PR to exercise them).

Seqera Containers builds the two variants of the same conda spec on different userlands: the Docker image of bwa_samtools_vsearch is Ubuntu 24.04 based and carries /usr/bin/find, while the Singularity image is built from mambaorg/micromamba:2-amazon2023, whose base ships no findutils. Wave's own build script already patches around the same gap for which. Of everything this module calls, only find is affected - sed, awk, cat, mv and head are all present in that base, which is also why BWA_INDEX (mkdir) succeeded.

Globbing with bash parameter expansion needs no external binary, and this was the only find(1) call site in the repository. The leading ./ is kept deliberately: find printed ./bwa/.amb, so $INDEX was ./bwa/, and bwa records that string in the BAM's @pg header. Dropping it would change every sorted BAM's md5 and move the nf-test snapshot for no reason. Verified against the old command: both yield ./bwa/GID1A. An empty index directory now fails with a clear message instead of passing a literal glob to bwa mem.

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/dmscore branch on the nf-core/test-datasets repository.
  • 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>).
  • 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).

MERGE_ALIGN failed with exit 127 and ".command.sh: line 2: find: command not
found" on both real-data shards of -profile singularity, the first time that
leg has ever run (conda and singularity are excluded from the matrix unless a
PR targets master, so #54 is the first PR to exercise them).

Seqera Containers builds the two variants of the same conda spec on different
userlands: the Docker image of bwa_samtools_vsearch is Ubuntu 24.04 based and
carries /usr/bin/find, while the Singularity image is built from
mambaorg/micromamba:2-amazon2023, whose base ships no findutils. Wave's own
build script already patches around the same gap for `which`. Of everything
this module calls, only find is affected - sed, awk, cat, mv and head are all
present in that base, which is also why BWA_INDEX (mkdir) succeeded.

Globbing with bash parameter expansion needs no external binary, and this was
the only find(1) call site in the repository. The leading ./ is kept
deliberately: find printed ./bwa/<prefix>.amb, so $INDEX was ./bwa/<prefix>,
and bwa records that string in the BAM's @pg header. Dropping it would change
every sorted BAM's md5 and move the nf-test snapshot for no reason. Verified
against the old command: both yield ./bwa/GID1A. An empty index directory now
fails with a clear message instead of passing a literal glob to bwa mem.
@BenjaminWehnert1008
BenjaminWehnert1008 deleted the fix/singularity-findutils branch October 28, 2026 15:48
@github-actions

Copy link
Copy Markdown

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

Posted for pipeline commit b8b1f3f

+| ✅ 241 tests passed       |+
#| ❔   4 tests were ignored |#
!| ❗   3 tests had warnings |!
Details

❗ Test warnings:

  • nextflow_config - Config variable not found: manifest.diagram
  • nextflow_config - Config manifest.version should end in dev: 1.0.0
  • readme - README contains the placeholder zenodo.XXXXXXX. This should be replaced with the zenodo doi (after the first release).

❔ Tests ignored:

  • files_exist - File is ignored: conf/igenomes.config
  • files_exist - File is ignored: conf/igenomes_ignored.config
  • files_unchanged - File ignored due to lint config: assets/nf-core-deepmutscan_logo_light.png
  • files_unchanged - File ignored due to lint config: docs/images/nf-core-deepmutscan_logo_dark.png

✅ Tests passed:

Run details

  • nf-core/tools version 4.2.1
  • Run at 2026-10-28 15:48:31

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.

2 participants