Skip to content

Add WDL implementation for Salmon - #326

Merged
adthrasher merged 27 commits into
stjudecloud:mainfrom
PriyankaaXD:add-salmon-wdl
Sep 15, 2026
Merged

adthrasher merged 27 commits into
stjudecloud:mainfrom
PriyankaaXD:add-salmon-wdl

Conversation

@PriyankaaXD

@PriyankaaXD PriyankaaXD commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Adds a WDL implementation for Salmon (mapping-mode only), per the "tool wishlist" issue #228.

Tasks added in tools/salmon.wdl:

  • index — wraps salmon index
  • quant — wraps salmon quant

All "important options" from Salmon's docs are exposed as inputs, with defaults verified against salmon quant --help-reads output on Salmon 2.6.0. Parameter documentation is copied from Salmon's official docs, per guidance in the issue. Scoped to mapping-mode only (FASTQ input) — no BAM/alignment-mode support, as requested.

Tests added in tools/salmon.yml using the new Sprocket test framework, covering both tasks with real output assertions. Verified locally: sprocket lint passes cleanly, sprocket dev test passes both tests.

This is my first contribution to this project — happy to make any adjustments you'd like!

Before submitting this PR, please make sure:

  • You have added a few sentences describing the PR here.
  • The code passes all CI tests without any errors or warnings.
  • You have added tests (when appropriate).
  • You have added an entry in any relevant CHANGELOGs (when appropriate).
  • If you have made any changes to the scripts/ or docker/ directories, please ensure any image versions have been incremented accordingly!
  • You have updated the README or other documentation to account for these changes.

@stjudecloud-cloudy

stjudecloud-cloudy commented Aug 13, 2026

Copy link
Copy Markdown

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

Comment thread test/fixtures/salmon/reads_R1.fastq.gz Outdated
Comment thread tools/test/salmon.yaml
Comment thread tools/salmon.wdl Outdated
Comment thread tools/salmon.wdl Outdated
Comment thread tools/salmon.wdl Outdated
Comment thread tools/salmon.wdl Outdated
Comment thread tools/salmon.wdl Outdated
Comment thread tools/test/salmon.yaml
Comment thread test/fixtures/salmon/salmon_index.tar.gz
Comment thread tools/salmon.wdl Outdated
@adthrasher

Copy link
Copy Markdown
Member

This also needs a CHANGELOG entry.

@a-frantz a-frantz 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.

This is looking really great! Left some comments to address, but this is close to the finish line 🚀

Comment thread test/fixtures/salmon/README.md Outdated
Comment thread tools/test/salmon.yaml
Comment thread tools/salmon.wdl Outdated
Comment thread tools/salmon.wdl Outdated
Comment thread tools/salmon.wdl Outdated
Comment thread tools/salmon.wdl
@a-frantz a-frantz mentioned this pull request Aug 25, 2026
6 tasks
a-frantz added a commit that referenced this pull request Aug 25, 2026
_Describe the problem or feature in addition to a link to the issues._

This is needed for writing decent tests in #326 

BCR and ABL1 were chosen somewhat arbitrarily. We do have other test
fixtures referencing these genes specifically (tests are for Arriba),
but this doesn't interact with those tests

v50 release chosen as its latest. Other fixtures use v31; I could use
that release if we want

Before submitting this PR, please make sure:

- [x] You have added a few sentences describing the PR here.
- [x] The code passes all CI tests without any errors or warnings.
- [ ] You have added tests (when appropriate).
- [ ] You have added an entry in any relevant CHANGELOGs (when
appropriate).
- [ ] If you have made any changes to the `scripts/` or `docker/`
directories, please ensure any image versions have been incremented
accordingly!
- [x] You have updated the README or other documentation to account for
these changes (when appropriate).
@PriyankaaXD
PriyankaaXD requested a review from a-frantz August 31, 2026 07:26

@a-frantz a-frantz 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.

looking really good 🚂

Comment thread tools/salmon.wdl Outdated
Comment thread tools/salmon.wdl
@PriyankaaXD

Copy link
Copy Markdown
Contributor Author

since I iterated on the index fixture several times (custom → v1 → v2 → reverted → BCR/ABL1), my branch's LFS history now carries a few superseded large blobs (~1.3GB total across old versions) even though the current file is tiny. If you squash-merge, this shouldn't carry into main's history — let me know if you'd prefer I try to clean this up

@PriyankaaXD
PriyankaaXD requested a review from a-frantz September 4, 2026 05:49
@a-frantz

a-frantz commented Sep 4, 2026

Copy link
Copy Markdown
Member

If you squash-merge, this shouldn't carry into main's history — let me know if you'd prefer I try to clean this up

we'll do a squash-merge 👍 no action needed on your end

@a-frantz a-frantz 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.

Good news: we're at the nitpicking stage of the review 🤣 Left a bunch of comments, but all of them are about very minor things. This looks great 🚀

Comment thread test/fixtures/salmon/README.md Outdated
Comment thread tools/CHANGELOG.md Outdated
Comment thread tools/salmon.wdl Outdated
Comment thread tools/salmon.wdl Outdated
Comment thread tools/salmon.wdl Outdated
Comment thread tools/salmon.wdl Outdated
Comment thread tools/salmon.wdl Outdated
Comment thread tools/salmon.wdl Outdated
Comment thread tools/salmon.wdl Outdated
@PriyankaaXD

Copy link
Copy Markdown
Contributor Author

Just a quick note - builds_index_with_decoys fails locally for me on Windows with Unsupported reparse point type when reading back a symlink created inside the container. Manually confirmed the symlink itself is created correctly on the Linux side (via docker run ... ln -sf ...), so this looks like a Windows-host/Docker-volume limitation on my end, not an actual bug — should be fine in your CI, but flagging in case you want to verify.

@PriyankaaXD
PriyankaaXD requested a review from a-frantz September 9, 2026 05:26
@a-frantz

Copy link
Copy Markdown
Member

@PriyankaaXD I just pushed some small nits I wanted in before merge but didn't want to force us through another round of back and forth for such minor points. Hope you don't mind!

@adthrasher could you give this an additional review?

Comment thread tools/salmon.wdl Outdated
@adthrasher
adthrasher self-requested a review September 11, 2026 15:58
adthrasher
adthrasher previously approved these changes Sep 11, 2026
@PriyankaaXD

Copy link
Copy Markdown
Contributor Author

Thanks for testing at production scale — good catch that decoys need to factor into the memory calc more heavily. Happy to update the formula to include decoys_fasta_size once you've got final numbers, or if you'd rather just push the tuned value yourself given you already have the real data, that works too!

a-frantz
a-frantz previously approved these changes Sep 14, 2026

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

Finished quant runs for reference with and without decoys.

    #0   completed wall  338m00s  queued    30.6s  4 cpu, 31.7 GiB  peak 10.9 GiB, cpu 1337m03s
    #0   completed wall  360m59s  queued    31.5s  4 cpu, 10.2 GiB  peak 4.3 GiB, cpu 1432m16s

@adthrasher
adthrasher merged commit 78bdbec into stjudecloud:main Sep 15, 2026
5 checks passed
@adthrasher

Copy link
Copy Markdown
Member

Thanks @PriyankaaXD for implementing this!

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.

4 participants