Skip to content

feat: add hlahd-tools 1.0.0 container - #85

Open
johnoooh wants to merge 2 commits into
developfrom
feature/hlahd-tools
Open

feat: add hlahd-tools 1.0.0 container#85
johnoooh wants to merge 2 commits into
developfrom
feature/hlahd-tools

Conversation

@johnoooh

@johnoooh johnoooh commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds containers/hlahd-tools/1.0.0 — a Python + bowtie2/samtools runtime for HLA-HD post-processing modules, with mskcc/hla-annotate installed on top (companion PR: mskcc-omics-workflows/modules#260).

Unlike containers/hlahd/, this image's business logic comes from a dedicated package repo rather than being copied in at build time — mskcc/hla-annotate is cloned at a pinned tag (v1.0.0) and installed, with its test suite run during the build so a broken release fails the image build rather than a pipeline run.

Runtime deps: python 3.11, bowtie2 2.5.5, samtools 1.21, pysam, matplotlib, requests, weasyprint (via conda-forge/bioconda) + whatever hla-annotate pulls in (pandas, jinja2).

Verification

  • hadolint --config .hadolint.yml containers/hlahd-tools/1.0.0/Dockerfile — clean
  • Built locally for linux/amd64; install + hla-annotate's 83 tests pass, and the annotate_hlahd module's nf-test suite (real-data + --skip_html + stub) passes end-to-end against the built image

Generic Python/bowtie2/samtools runtime for HLA-HD post-processing
modules (e.g. modules/msk/annotate_hlahd in the modules repo). Module
scripts are bundled in the module's resources/usr/bin/ and staged onto
PATH by Nextflow -- this image supplies only the interpreter, system
libraries, and third-party packages they depend on (pandas, jinja2,
pysam, matplotlib, requests, weasyprint).

Verified: hadolint clean; built for linux/amd64 and exercised via the
annotate_hlahd module's nf-test suite (real-data + skip_html + stub),
all passing.
Clones mskcc/hla-annotate@v1.0.0 (private repo -- needs an MSK_GH_TOKEN
secret, a fine-grained PAT scoped read-only to that repo, added to this
repo's CI) and installs it, running its test suite at build time so a
broken release fails the image build rather than a pipeline run.

Verified locally: install + 83 tests pass (using a local copy in place
of the token-based clone, since I can't write a token to disk in this
sandbox -- the clone step itself is the same pattern already used for
JFrog downloads in this repo).
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.

1 participant