Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
144 commits
Select commit Hold shift + click to select a range
f911ef4
feat: minimap2 tool wrapper
adthrasher Dec 3, 2025
fd2bca4
refactor: handle optionally gzipped reference
adthrasher Dec 3, 2025
1ebe2a0
chore: fill in options
adthrasher Dec 3, 2025
9533656
chore: add samtools to minimap2 image and convert to BAM
adthrasher Dec 3, 2025
1b28075
chore: lint
adthrasher Dec 3, 2025
0ac46db
chore: add disk specification
adthrasher Dec 3, 2025
5161669
feat: add bwa-mem2 task
adthrasher Dec 3, 2025
af994e2
chore: lint
adthrasher Dec 4, 2025
00deed4
feat: add hisat2 task
adthrasher Dec 4, 2025
4434666
chore: change base image as other segfaults
adthrasher Dec 4, 2025
b07d769
feat: add `vg` indexing
adthrasher Dec 5, 2025
cb47772
chore: localize fasta for indexing
adthrasher Dec 5, 2025
39ca901
feat: add vg giraffe task
adthrasher Dec 5, 2025
a921e17
chore: avoid writing intermediate SAM to disk
adthrasher Dec 9, 2025
733368e
Merge branch 'feat/minimap2' of https://github.com/stjudecloud/workfl…
adthrasher Dec 9, 2025
2dc478a
chore: use database prefix
adthrasher Dec 12, 2025
1c832fc
chore: bump resources for azure
adthrasher Dec 12, 2025
bd84132
chore: format+lint
adthrasher Dec 12, 2025
8abaf9c
chore: remove memory oversubscribe
adthrasher Dec 18, 2025
d42fbfb
feat: add strelka and manta wrappers
adthrasher Dec 18, 2025
589190d
feat: add clair3 wrapper
adthrasher Dec 18, 2025
efb1d50
chore: fix invocation
adthrasher Dec 18, 2025
25681c7
feat: add NGSEP wrapper
adthrasher Dec 18, 2025
1083326
feat: add deepsomatic and deepvariant wrappers with GPU support
adthrasher Dec 18, 2025
30d1159
chore: change hisat2 output to BAM
adthrasher Dec 19, 2025
e58c2ed
chore: write to stdout instead of fifo
adthrasher Dec 19, 2025
e680a5b
chore: add undocumented FAI requirement
adthrasher Dec 22, 2025
60dce46
chore: add error checking to minimap2
adthrasher Dec 23, 2025
f614485
chore: cleanup reference files
adthrasher Jan 15, 2026
352fa6f
chore: minimum cores to 1
adthrasher Jan 20, 2026
339f20a
chore: update danio rerio url and add memory request
adthrasher Feb 2, 2026
df13caf
chore: scale memory with threads
adthrasher Feb 2, 2026
8ca1901
chore: update disk specification and memory requests
adthrasher Feb 2, 2026
a37db77
chore: add missing bam index
adthrasher Feb 2, 2026
5badc77
chore: update danio rerio url
adthrasher Feb 2, 2026
fb1ed43
chore: fix bad merge
adthrasher Feb 2, 2026
b8411d5
feat: add readgroup to array conversion for addreplacerg
adthrasher Feb 2, 2026
f749a6c
chore: bump disk requirements
adthrasher Feb 2, 2026
b2659f4
chore: bump requirements
adthrasher Feb 17, 2026
6bf5936
chore: correct container
adthrasher Feb 17, 2026
c17a874
feat: add samtools calmd implementation
adthrasher Feb 17, 2026
31d32b1
chore: eclipse 8 -> 21
adthrasher Feb 17, 2026
bc6af62
chore: add index files
adthrasher Feb 17, 2026
d53e15c
Merge remote-tracking branch 'refs/remotes/origin/feat/minimap2' into…
adthrasher Feb 17, 2026
fe34740
chore: address lint
adthrasher Mar 3, 2026
3afa3e0
feat: add samtools sort implementation
adthrasher Mar 3, 2026
e0e602d
Merge branch 'main' into feat/minimap2
adthrasher Mar 3, 2026
a9948bd
chore: address lint
adthrasher Mar 3, 2026
81224cf
chore: unify docker image version
adthrasher Mar 3, 2026
455f4d7
chore: GiB -> GB for new tools
adthrasher Mar 3, 2026
f197aef
chore: update outputs
adthrasher Mar 3, 2026
56328f2
chore: update sorting disk requirements
adthrasher Mar 4, 2026
174703f
chore: updates for somatic calling
adthrasher Mar 10, 2026
fd50c7e
feat: add octopus wrapper
adthrasher Mar 10, 2026
34e808e
chore: fixes for clair3
adthrasher Mar 10, 2026
c084df7
chore: update deepvariant to 1.10 plus fixes
adthrasher Mar 10, 2026
c6fdb1a
chore: cleanup FAI
adthrasher Mar 10, 2026
6b6b92e
chore: update sort memory
adthrasher Mar 10, 2026
f7b7fb1
chore: cleanup FAI
adthrasher Mar 10, 2026
664a0d1
chore: add BAM indices
adthrasher Mar 10, 2026
f470afa
chore: add octopus warning
adthrasher Mar 10, 2026
fcafe1e
chore: add FASTA index to manta
adthrasher Mar 10, 2026
b4621c3
chore: localize BAM and index
adthrasher Mar 10, 2026
dd35f36
chore: add index file
adthrasher Mar 11, 2026
ab2496a
chore: fix deepsomatic arguments
adthrasher Mar 11, 2026
5ba4e5a
chore: check
adthrasher Mar 11, 2026
99d645e
Merge branch 'feat/minimap2' of https://github.com/stjudecloud/workfl…
adthrasher Mar 11, 2026
7ab7375
feat: clairS wrapper
adthrasher Mar 12, 2026
cda5a4a
chore: lint and format
adthrasher Mar 12, 2026
e579d69
chore: add region filtering to manta
adthrasher Mar 13, 2026
9d07e09
chore: update tools
adthrasher Mar 17, 2026
810cbe6
chore: add outputs for strelka and manta somatic
adthrasher Mar 17, 2026
a8e2148
feat: mutect2 wrapper
adthrasher Mar 19, 2026
db57b47
chore: add dictionary because of course GATK needs that
adthrasher Mar 19, 2026
707b702
chore: ensure names match GATK's expectations
adthrasher Mar 19, 2026
0bb848a
chore: clean up mutect output
adthrasher Mar 20, 2026
ff82245
chore: localize files for Haplotype Caller
adthrasher Mar 20, 2026
9adf2f5
chore: localize inputs for deepvariant
adthrasher Mar 20, 2026
2efd098
chore: localize inputs for clair3 and strelka
adthrasher Mar 20, 2026
9f62956
chore: lint
adthrasher Mar 20, 2026
0929b67
feat: add mutect2 filtering
adthrasher Mar 23, 2026
211ba8e
feat: add mutect2 filtering
adthrasher Mar 25, 2026
d002e55
chore: clarify workflow name
adthrasher Mar 25, 2026
7ef3492
feat: add germline variant calling best practices workflow
adthrasher Mar 25, 2026
95a075d
chore: localize vcf
adthrasher Mar 25, 2026
5862a97
chore: cp instead of ln since tool resolves symlinks
adthrasher Mar 25, 2026
95d08cd
chore: add vcf index to output
adthrasher Mar 27, 2026
e5b5695
chore: add localization to base recalibrator and revert image version
adthrasher Mar 27, 2026
89882df
chore: redirect /tmp in SortSam
adthrasher Mar 27, 2026
4aeb876
chore: add index files to output
adthrasher Mar 27, 2026
5e29fb6
chore: add undocumented input to FilterMutectCalls and tweak resources
adthrasher Mar 30, 2026
942e51e
chore: set mode to gVCF
adthrasher Mar 30, 2026
ddf2f9d
chore: more updates for GATK
adthrasher Mar 30, 2026
af86744
chore: override /tmp
adthrasher Mar 30, 2026
b8ad722
chore: fix extension for output
adthrasher Mar 30, 2026
8edb6c8
chore: more undocumented dependencies
adthrasher Mar 30, 2026
6b3fc73
chore: add exome mode to manta
adthrasher Mar 31, 2026
be50eb5
Merge branch 'main' into feat/minimap2
adthrasher Apr 17, 2026
b709ccf
chore: fix bad merge
adthrasher Apr 17, 2026
f12b66b
chore: address lints
adthrasher Apr 17, 2026
7c5e9e6
chore: picard lints
adthrasher Apr 17, 2026
ee107bd
test: add bwamem2 index fixture for GRCh38 chrY/chrM
adthrasher Apr 24, 2026
ab4fb5b
test: write tests for bwamem2 align and index tasks
adthrasher Apr 24, 2026
6f610cf
test: add fixture symlinks for bwamem2 tests
adthrasher Apr 24, 2026
ee5657e
test: add minimap2 .mmi index fixture for GRCh38 chrY/chrM
adthrasher Apr 24, 2026
955451c
test: write tests for minimap2 align and index tasks
adthrasher Apr 24, 2026
1e9c395
test: add FASTA-reference and boolean flag tests for minimap2 align
adthrasher Apr 24, 2026
941f101
test: add vg giraffe index fixtures for GRCh38 chrY/chrM
adthrasher Apr 24, 2026
2e414ab
test: write tests for vg giraffe task covering output formats and pre…
adthrasher Apr 24, 2026
91ec9ab
test: split vg presets test — chaining presets require unpaired reads
adthrasher Apr 24, 2026
9c56c03
test: add tests for clair, deepvariant, strelka, and manta
adthrasher Apr 24, 2026
633286f
chore: reorg fixtures to match #263
adthrasher Apr 24, 2026
ba51f9c
chore: add @ prefix for json files
adthrasher Apr 24, 2026
62556c5
chore: disable pytest
adthrasher Apr 24, 2026
8183ac3
chore: remove LineWidth exceptions
adthrasher Apr 30, 2026
dbb89bd
chore: merge main
adthrasher Apr 30, 2026
85e3f23
chore: correct param
adthrasher May 6, 2026
21c4f6d
chore: link inputs
adthrasher May 6, 2026
e671287
Merge branch 'feat/minimap2' of https://github.com/stjudecloud/workfl…
adthrasher May 6, 2026
9b5cffd
chore: fix clair tests
adthrasher May 6, 2026
94b9583
chore: resolve bad merge
adthrasher May 6, 2026
2dd4880
chore: fix strelka tests
adthrasher May 8, 2026
264575f
chore: fix clair test
adthrasher May 8, 2026
313f38c
chore: fix deepsomatic tests
adthrasher May 8, 2026
4c76f80
chore: fix manta tests
adthrasher May 8, 2026
7399793
chore: add exception
adthrasher May 11, 2026
f294f8d
chore: run tests verbosely to get failure information
adthrasher May 11, 2026
0ae6503
chore: bulk output test stderr and stdout for debugging
adthrasher May 11, 2026
eb57f9a
chore: drop verbose, write to stderr
adthrasher May 11, 2026
2a268c3
chore: cat if test fails
adthrasher May 11, 2026
2b5baa3
chore: roll back container in mark_duplicates_spark to address JVM de…
adthrasher May 11, 2026
de11d2c
chore: use bgzipped files
adthrasher May 11, 2026
0222220
chore: drop CPU requirements for GATK4 tasks to 1
adthrasher May 11, 2026
af74388
chore: try JVM argument to test
adthrasher May 11, 2026
a9b5492
ci: install sprocket from binary for speed
adthrasher May 11, 2026
8c4c535
chore: disable Java overriding memory in container
adthrasher May 11, 2026
6c86f5f
ci: install sprocket from binary for speed
adthrasher May 11, 2026
d53c1b8
chore: remove debug logging
adthrasher May 11, 2026
9604f07
chore: move except to ignore lint issue
adthrasher May 11, 2026
f48596d
chore: sprocket format
adthrasher May 11, 2026
7c7a3c2
chore: fix paramter_meta after format
adthrasher May 11, 2026
f214124
chore: mutect2 tests
adthrasher May 12, 2026
14f3e5b
chore: ngsep test
adthrasher May 12, 2026
5a596c1
chore: add AGENTS file for AI tools
adthrasher May 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,8 @@ bin/check-job-alive !text !filter !merge !diff
*.conf !text !filter !merge !diff
.fa filter=lfs diff=lfs merge=lfs -text
*.fa filter=lfs diff=lfs merge=lfs -text
*.mmi filter=lfs diff=lfs merge=lfs -text
*.gbz filter=lfs diff=lfs merge=lfs -text
*.dist filter=lfs diff=lfs merge=lfs -text
*.min filter=lfs diff=lfs merge=lfs -text
*.zipcodes filter=lfs diff=lfs merge=lfs -text
8 changes: 4 additions & 4 deletions .github/workflows/sprocket-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ jobs:
- uses: actions/checkout@v4
with:
lfs: true
- name: Update Rust
run: rustup update stable && rustup default stable
- name: Build Sprocket
- name: Install Sprocket
run: |
cargo install sprocket --locked
SPROCKET_URL=$(curl -sSL https://api.github.com/repos/stjude-rust-labs/sprocket/releases/latest \
| jq -r '.assets[] | select(.name | test("x86_64-unknown-linux-gnu.tar.gz")) | .browser_download_url')
curl -sSL "$SPROCKET_URL" | tar -xz -C /usr/local/bin sprocket
- name: Update containers
run: |
./developer_scripts/update_container_tags.sh ${GITHUB_REF##*/}
Expand Down
141 changes: 141 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
# AGENTS.md

Agent guidance for the St. Jude Cloud bioinformatics workflows repository.

## What this repo is

A collection of WDL 1.1 pipelines and tool wrappers for genomic analysis. Primary artifacts are `.wdl` files; there is no traditional build step. Python and R exist only as scripts embedded in Docker images under `scripts/`.

## Layout

```
workflows/ # End-to-end pipelines (rnaseq/, dnaseq/, chipseq/, methylation/, etc.)
tools/ # Individual WDL task wrappers (one tool per file)
data_structures/ # WDL struct definitions
docker/ # Dockerfiles + package.json version metadata per image
scripts/ # Python and R scripts (not standalone; embedded in Docker images)
tests/ # pytest-workflow YAML test definitions
tools/ # Per-tool test YAMLs
workflows/ # Per-workflow test YAMLs
input_json/ # Input JSON fixtures
input/ # Binary fixtures (BAMs, FASTQs, etc.) — tracked via git-lfs
template/ # task-examples.wdl (canonical patterns) + common-parameter-meta.txt
developer_scripts/
run_sprocket_or_miniwdl.sh # Unified test runner
update_container_tags.sh # Rewrites container tags for branch testing (do not commit)
```

## Developer commands

### Setup

```bash
uv sync # Python deps (canonical; use this, not pip)
git lfs pull # Required after clone to get test fixture files
```

### WDL lint / format / check (Sprocket)

```bash
sprocket lint . # Lint all WDL
sprocket format tools/bwa.wdl # Format a file
sprocket check . # Thorough check (validates inputs, etc.)
sprocket validate <wdl> <inputs> # Validate inputs against a workflow
```

`sprocket.toml` disables the `ContainerUri` rule and sets `deny_notes = true` (notes in WDL cause check failure).

### Python (scripts/ only)

```bash
uv run ruff format --check --diff scripts/
uv run ruff format scripts/
uv run ruff check scripts/
```

### R (scripts/ only)

```r
styler::style_dir() # format
lintr::lint_dir() # lint
```

### Tests

```bash
# All tests
uv run pytest --kwdof --wt $(nproc)

# Single test by tag
pytest --tag bwa

# Single test by name
pytest -k bwa_aln

# Choose runner (defaults to sprocket)
RUNNER=miniwdl pytest --tag bwa
```

`pytest.ini` always injects `--git-aware --symlink`. Use `--kwdof` to keep outputs on failure.

Every test calls `./developer_scripts/run_sprocket_or_miniwdl.sh` internally — do not call runners directly in test commands.

### Run a WDL task directly (outside pytest)

```bash
# sprocket
sprocket run --output-dir output --target bwa_aln tools/bwa.wdl <input_file>

# miniwdl
miniwdl run --task bwa_aln --verbose --dir output/. -i tests/tools/input_json/bwa_aln.json tools/bwa.wdl
```

## CI pipeline

All jobs trigger on push. Key facts:
- `reference` and `slow` tags are **excluded** from the CI test matrix.
- CI deletes `slow`-tagged tests from YAML files in-place before running — do not replicate this destructively locally.
- CI builds Docker images and runs `update_container_tags.sh` to rewrite tags before pytest — do not commit the rewritten WDL files.
- Every test runs against both `sprocket` and `miniwdl` runners as a matrix.
- `sprocket` is built from source (`cargo install sprocket --locked`) in CI.
- `requirements-ci.txt` pins older versions than `pyproject.toml`; use `uv` locally.

## WDL conventions (non-obvious)

- All WDL files must be `version 1.1`.
- All tasks must include `set -euo pipefail` when using pipes or multiple commands.
- Multi-core tasks: accept `use_all_cores: Boolean = false` and `ncpu: Int = 2`; use `$(nproc)` when `use_all_cores` is true. `use_all_cores` must be the last Boolean in the input block; `ncpu` precedes memory/disk inputs.
- Resource inputs (`ncpu`, `modify_memory_gb`, `modify_disk_size_gb`) must be overridable.
- Single output → `outfile_name`; multiple outputs or extension matters → `prefix`.
- BAM/BAI companion pairs must be localized via `ln -s` to CWD and cleaned up with `rm` at task end.
- Scripts go in `scripts/`; never embed Python/R directly in WDL `command` blocks.
- Imports within the repo must use **relative paths**. External imports must pin a **tagged release** (not `main`/`master`) — enforced by `pull-check.yaml`.
- Deprecated tasks: add `deprecated: true` and `warning: "**[DEPRECATED]**..."` to `meta`. Never add `deprecated: false`.
- Update the relevant `CHANGELOG.md` when modifying any WDL under a subdirectory.

## Parameter meta conventions

Prefer names from `template/common-parameter-meta.txt`. Key ones:
- `bam` (not `input_bam`, `in_bam`)
- `bam_index` (not `bai`)
- `read_one_fastq_gz` / `read_two_fastq_gz` (not `read1`/`read2`)
- `paired_end` (not `paired`)

## Docker image versioning

Each image lives in `docker/<tool>/` with `Dockerfile` and `package.json`. `version` = underlying tool version; `revision` starts at `0`, increments for image-only changes, resets to `0` on tool version upgrades. Prefer BioContainers images over creating new custom images.

## Testing quirks

- Binary fixtures in `tests/input/` are in **git-lfs** — run `git lfs pull` before testing.
- Test files prefixed with `_` (e.g., `_test_methylation-preprocess.yaml`) are disabled.
- Sprocket outputs land in `output/runs/*/_latest/outputs.json`, then get copied to `output/outputs.json`. miniwdl outputs go directly to `output/`. Test YAMLs reference `output/outputs.json`.
- Fixture inputs are downsampled to small chromosomes (chrY/chrM, chr9/chr22) for speed.

## Existing instruction sources

- `.github/instructions/wdl.instructions.md` — applies to `**/*.wdl`; references CONTRIBUTING.md, best-practices.md, template/task-examples.wdl, and template/common-parameter-meta.txt.
- `template/task-examples.wdl` — canonical WDL task patterns; read before writing new tasks.
- `template/common-parameter-meta.txt` — required/banned parameter_meta strings.
- `CONTRIBUTING.md` — general coding style.
- `best-practices.md` — WDL-specific best practices.
47 changes: 47 additions & 0 deletions data_structures/read_group.wdl
Original file line number Diff line number Diff line change
Expand Up @@ -425,3 +425,50 @@ task inner_read_group_to_string {
maxRetries: 1
}
}

task read_group_to_array {
meta {
description: "Converts a `ReadGroup` struct to a `Array[String]` **without any validation**."
outputs: {
converted_read_group: "Input `ReadGroup` as a `Array[String]`",
}
}

parameter_meta {
read_group: "`ReadGroup` struct to convert to array"
}

input {
ReadGroup read_group
}

String delimiter = "\n"

command <<<
{
echo -n "~{"ID:" + read_group.ID}" # required field. All others optional
echo -n "~{delimiter + "BC:" + read_group.BC}"
echo -n "~{delimiter + "CN:" + read_group.CN}"
echo -n "~{delimiter + "DS:" + read_group.DS}"
echo -n "~{delimiter + "DT:" + read_group.DT}"
echo -n "~{delimiter + "FO:" + read_group.FO}"
echo -n "~{delimiter + "KS:" + read_group.KS}"
echo -n "~{delimiter + "LB:" + read_group.LB}"
echo -n "~{delimiter + "PG:" + read_group.PG}"
echo -n "~{delimiter + "PI:" + read_group.PI}"
echo -n "~{delimiter + "PL:" + read_group.PL}"
echo -n "~{delimiter + "PM:" + read_group.PM}"
echo -n "~{delimiter + "PU:" + read_group.PU}"
echo "~{delimiter + "SM:" + read_group.SM}"
} >> out.txt
>>>

output {
Array[String] converted_read_group = read_lines("out.txt")
}

runtime {
container: "ghcr.io/stjudecloud/util:3.0.3"
maxRetries: 1
}
}
8 changes: 8 additions & 0 deletions docker/bwamem2/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM quay.io/biocontainers/samtools:1.17--h00cdaf9_0 AS samtools
FROM quay.io/biocontainers/bwa-mem2:2.3--he70b90d_0

COPY --from=samtools /usr/local/bin/ /usr/local/bin/
COPY --from=samtools /usr/local/lib/ /usr/local/lib/
COPY --from=samtools /usr/local/libexec/ /usr/local/libexec/

ENTRYPOINT [ "bwa-mem2" ]
5 changes: 5 additions & 0 deletions docker/bwamem2/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"name": "bwamem2",
"version": "2.3",
"revision": "0"
}
8 changes: 8 additions & 0 deletions docker/hisat2/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM quay.io/biocontainers/samtools:1.17--h00cdaf9_0 AS samtools
FROM quay.io/biocontainers/hisat2:2.2.1--hdbdd923_7

COPY --from=samtools /usr/local/bin/ /usr/local/bin/
COPY --from=samtools /usr/local/lib/ /usr/local/lib/
COPY --from=samtools /usr/local/libexec/ /usr/local/libexec/

ENTRYPOINT [ "hisat2" ]
5 changes: 5 additions & 0 deletions docker/hisat2/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"name": "hisat2",
"version": "2.2.1",
"revision": "0"
}
8 changes: 8 additions & 0 deletions docker/minimap2/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM quay.io/biocontainers/samtools:1.17--h00cdaf9_0 AS samtools
FROM quay.io/biocontainers/minimap2:2.30--h577a1d6_0

COPY --from=samtools /usr/local/bin/ /usr/local/bin/
COPY --from=samtools /usr/local/lib/ /usr/local/lib/
COPY --from=samtools /usr/local/libexec/ /usr/local/libexec/

ENTRYPOINT [ "minimap2" ]
5 changes: 5 additions & 0 deletions docker/minimap2/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"name": "minimap2",
"version": "2.30",
"revision": "0"
}
5 changes: 5 additions & 0 deletions docker/ngsep/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
FROM eclipse-temurin:21

Check warning

Code scanning / Snyk Container

Low severity - Allocation of Resources Without Limits or Throttling vulnerability in binutils Medium

This file introduces a vulnerable binutils package with a low severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35371 vulnerability in rust-coreutils Warning

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35364 vulnerability in rust-coreutils Warning

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35351 vulnerability in rust-coreutils Warning

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35345 vulnerability in rust-coreutils Warning

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35360 vulnerability in rust-coreutils Warning

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35363 vulnerability in rust-coreutils Warning

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35344 vulnerability in rust-coreutils Warning

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35352 vulnerability in rust-coreutils Warning

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35359 vulnerability in rust-coreutils Warning

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35377 vulnerability in rust-coreutils Warning

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - Time-of-check Time-of-use (TOCTOU) vulnerability in sed Warning

This file introduces a vulnerable sed package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - Directory Traversal vulnerability in tar Warning

This file introduces a vulnerable tar package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - Unrestricted Upload of File with Dangerous Type vulnerability in tar Medium

This file introduces a vulnerable tar package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - Time-of-check Time-of-use (TOCTOU) vulnerability in util-linux Warning

This file introduces a vulnerable util-linux package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - Authentication Bypass vulnerability in util-linux Medium

This file introduces a vulnerable util-linux package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - Open Redirect vulnerability in wget Medium

This file introduces a vulnerable wget package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - Heap-based Buffer Overflow vulnerability in openjdk-jre Medium

This file introduces a vulnerable openjdk-jre package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - Algorithmic Complexity vulnerability in expat Medium

This file introduces a vulnerable expat package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-4437 vulnerability in glibc Warning

This file introduces a vulnerable glibc package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-4438 vulnerability in glibc Warning

This file introduces a vulnerable glibc package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-4046 vulnerability in glibc Warning

This file introduces a vulnerable glibc package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - Algorithmic Complexity vulnerability in gnutls28 Medium

This file introduces a vulnerable gnutls28 package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Low severity - Stack-based Buffer Overflow vulnerability in gnutls28 Medium

This file introduces a vulnerable gnutls28 package with a low severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35350 vulnerability in rust-coreutils Warning

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35357 vulnerability in rust-coreutils Warning

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35374 vulnerability in rust-coreutils Warning

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35373 vulnerability in rust-coreutils Medium

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35370 vulnerability in rust-coreutils Warning

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35341 vulnerability in rust-coreutils Warning

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35367 vulnerability in rust-coreutils Warning

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35368 vulnerability in rust-coreutils Warning

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35354 vulnerability in rust-coreutils Warning

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check warning

Code scanning / Snyk Container

Medium severity - CVE-2026-35348 vulnerability in rust-coreutils Warning

This file introduces a vulnerable rust-coreutils package with a medium severity vulnerability.

Check notice

Code scanning / Snyk Container

Low severity - Covert Timing Channel vulnerability in libgcrypt20 Note

This file introduces a vulnerable libgcrypt20 package with a low severity vulnerability.

Check notice

Code scanning / Snyk Container

Low severity - CVE-2024-56433 vulnerability in shadow Note

This file introduces a vulnerable shadow package with a low severity vulnerability.
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed
Comment thread Fixed

RUN wget https://github.com/NGSEP/NGSEPcore/releases/download/v5.1.0/NGSEPcore_5.1.0.jar -O /usr/local/bin/NGSEPcore.jar

ENTRYPOINT [ "java", "-jar", "/usr/local/bin/NGSEPcore.jar" ]
5 changes: 5 additions & 0 deletions docker/ngsep/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"name": "ngsep",
"version": "5.1.0",
"revision": "0"
}
8 changes: 8 additions & 0 deletions test/fixtures/bams/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,14 @@ Coordinate sorted BAM with 1 read group (`ID:test`). Aligned using BWA `aln` (us

BAM index corresponding to `test.bwa_aln_pe.chrY_chrM.bam`.

## test.bwa_aln_pe.with_variants.chrY_chrM.bam

Coordinate sorted BAM with 1 read group (`ID:test`). Aligned using BWA `aln` (using the `bwa.bwa_aln_pe` WDL task). 100,000 Paired-End reads mapped to GRCh38 `chrY` and `chrM` from `test_variants_R1.fq.gz` and `test_variants_R2.fq.gz`.

## test.bwa_aln_pe.with_variants.chrY_chrM.bam.bai

BAM index corresponding to `test.bwa_aln_pe.with_variants.chrY_chrM.bam`.

## test.extra_RG.bam

A duplicate of `test.bam` with an added `@RG` entry with the ID `no_match`. There are no reads corresponding to the `no_match` RG entry.
Expand Down
Git LFS file not shown
Git LFS file not shown
Binary file not shown.
8 changes: 8 additions & 0 deletions test/fixtures/fastqs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,11 @@ The following list is sorted alphabetically:
## test_R2.fq.gz

10,000 reads in FASTQ format. Can be used by itself to represent a Single-End sample or used with `test_R1.fq.gz` to represent a Paired-End sample. Generated with `fq generate`.

## test_variants_R1.fq.gz

10,000 reads in FASTQ format. Can be used by itself to represent a Single-End sample or used with `test_variants.R2.fq.gz` to represent a Paired-End sample. Generated with `fq generate` on `chrY` and `chrM`. Simulated from a reference sequence containing variants.

## test_variants_R2.fq.gz

10,000 reads in FASTQ format. Can be used by itself to represent a Single-End sample or used with `test_variants.R1.fq.gz` to represent a Paired-End sample. Generated with `fq generate` on `chrY` and `chrM`. Simulated from a reference sequence containing variants.
3 changes: 3 additions & 0 deletions test/fixtures/fastqs/test_variants_R1.fq.gz
Git LFS file not shown
3 changes: 3 additions & 0 deletions test/fixtures/fastqs/test_variants_R2.fq.gz
Git LFS file not shown
29 changes: 29 additions & 0 deletions test/fixtures/mutect2/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Mutect2 fixtures

Inputs and intermediate artifacts used by the per-task tests in `tools/test/mutect2.yaml` for `tools/mutect2.wdl`. Files are downsampled to `chrY` and `chrM` to match the reference at `test/fixtures/reference/GRCh38.chrY_chrM.fa` and the BAMs at `test/fixtures/bams/test.bwa_aln_pe*.chrY_chrM.bam`.

The following list is sorted alphabetically:

## af-only-gnomad.hg38.chrY_chrM.vcf.gz

GATK best-practices germline resource (`af-only-gnomad.hg38.vcf.gz` from the GATK resource bundle), subset to `chrY` and `chrM`. Used as the `germline_resource_vcf` input for the `mutect2` task and as both `intervals` and `variants` inputs for the `get_pileup_summaries` task.

## af-only-gnomad.hg38.chrY_chrM.vcf.gz.tbi

Tabix index for `af-only-gnomad.hg38.chrY_chrM.vcf.gz`.

## test.bwa_aln_pe.chrY_chrM_pileup_summaries.table

Output of `gatk GetPileupSummaries` run on `test/fixtures/bams/test.bwa_aln_pe.chrY_chrM.bam` (normal sample) over the sites in `af-only-gnomad.hg38.chrY_chrM.vcf.gz`. Used as the `normal_pileups` input for the `calculate_contamination` task.

## test.bwa_aln_pe.with_variants.chrY_chrM_pileup_summaries.contamination.table

Output of `gatk CalculateContamination` run on the tumor and normal pileup tables (matched-normal mode). Used as the `contamination_table` input for the `filter_mutect` task.

## test.bwa_aln_pe.with_variants.chrY_chrM_pileup_summaries.segments.table

Tumor segmentation output of the same `gatk CalculateContamination` invocation that produced the contamination table. Used as the `maf_segments` input for the `filter_mutect` task.

## test.bwa_aln_pe.with_variants.chrY_chrM_pileup_summaries.table

Output of `gatk GetPileupSummaries` run on `test/fixtures/bams/test.bwa_aln_pe.with_variants.chrY_chrM.bam` (tumor sample) over the sites in `af-only-gnomad.hg38.chrY_chrM.vcf.gz`. Used as the `tumor_pileups` input for the `calculate_contamination` task.
3 changes: 3 additions & 0 deletions test/fixtures/mutect2/af-only-gnomad.hg38.chrY_chrM.vcf.gz
Git LFS file not shown
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#<METADATA>SAMPLE=test
contig position ref_count alt_count other_alt_count allele_frequency
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
sample contamination error
test 0.0 1.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#<METADATA>SAMPLE=test
contig start end minor_allele_fraction
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#<METADATA>SAMPLE=test
contig position ref_count alt_count other_alt_count allele_frequency
3 changes: 3 additions & 0 deletions test/fixtures/reference/GRCh38.chrY_chrM.bwamem2_db.tar.gz
Git LFS file not shown
3 changes: 3 additions & 0 deletions test/fixtures/reference/GRCh38.chrY_chrM.dist
Git LFS file not shown
3 changes: 3 additions & 0 deletions test/fixtures/reference/GRCh38.chrY_chrM.giraffe.gbz
Git LFS file not shown
3 changes: 3 additions & 0 deletions test/fixtures/reference/GRCh38.chrY_chrM.mmi
Git LFS file not shown
Git LFS file not shown
3 changes: 3 additions & 0 deletions test/fixtures/reference/GRCh38.chrY_chrM.shortread.zipcodes
Git LFS file not shown
Git LFS file not shown
Binary file not shown.
Loading
Loading