Hotfix neoantigen-editing:1.1 -- fix PATH/exec bit for bundled scripts - #77
Merged
Conversation
NEOANTIGENEDITING_ALIGNTOIEDB and NEOANTIGENEDITING_COMPUTEFITNESS invoke align_neoantigens_to_IEDB.py / compute_fitness.py as bare commands, relying on PATH: .command.sh: line 3: compute_fitness.py: command not found .command.sh: line 3: align_neoantigens_to_IEDB.py: command not found Root cause: `cp -r /tmp/NeoantigenEditing/ /usr/bin` copies the whole git checkout in as a subdirectory, /usr/bin/NeoantigenEditing/, rather than flattening its contents onto /usr/bin -- so the scripts never actually land on PATH (which is just /usr/bin, /usr/local/bin, etc.). Separately, the checked-out files also aren't executable (-rw-r--r--), so even a full-path invocation fails with "Permission denied". (This previously worked because these two modules carried their own executable copies of these scripts as local nf-core module resources under resources/usr/bin/, which Nextflow stages onto PATH regardless of what's in the container. mskcc-omics-workflows/modules#258 removed those local copies in favor of the ones baked into this image.) Fix: add /usr/bin/NeoantigenEditing to PATH via ENV, and chmod +x the checkout's *.py scripts, instead of relying on flattening everything into /usr/bin (which would also dump the checkout's README, Dockerfile, ACRRI_TERMS_OF_USE, .git/, data/, and Results/ directly into /usr/bin). The scripts take all their inputs as explicit CLI args (verified no hardcoded relative-path defaults), so relocating them onto PATH this way doesn't change their behavior. Hotfixing 1.1 in place rather than cutting a new version, following the precedent set by PR #71 and the neoantigen-utils-base:1.6.1 unzip hotfix -- modules#258 already pins both modules to neoantigen-editing:1.1. Verified: rebuilt the image and confirmed both scripts now resolve on PATH, are executable, and run successfully via bare invocation (`compute_fitness.py --help`, `align_neoantigens_to_IEDB.py --help`), matching exactly how the modules' .command.sh scripts call them.
Updated Dockerfile to modify PATH for NeoantigenEditing scripts.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
NEOANTIGENEDITING_ALIGNTOIEDB and NEOANTIGENEDITING_COMPUTEFITNESS invoke align_neoantigens_to_IEDB.py / compute_fitness.py as bare commands, relying on PATH:
.command.sh: line 3: compute_fitness.py: command not found
.command.sh: line 3: align_neoantigens_to_IEDB.py: command not found
Root cause:
cp -r /tmp/NeoantigenEditing/ /usr/bincopies the whole git checkout in as a subdirectory, /usr/bin/NeoantigenEditing/, rather than flattening its contents onto /usr/bin -- so the scripts never actually land on PATH (which is just /usr/bin, /usr/local/bin, etc.). Separately, the checked-out files also aren't executable (-rw-r--r--), so even a full-path invocation fails with "Permission denied".(This previously worked because these two modules carried their own executable copies of these scripts as local nf-core module resources under resources/usr/bin/, which Nextflow stages onto PATH regardless of what's in the container. mskcc-omics-workflows/modules#258 removed those local copies in favor of the ones baked into this image.)
Fix: add /usr/bin/NeoantigenEditing to PATH via ENV, and chmod +x the checkout's *.py scripts, instead of relying on flattening everything into /usr/bin (which would also dump the checkout's README, Dockerfile, ACRRI_TERMS_OF_USE, .git/, data/, and Results/ directly into /usr/bin). The scripts take all their inputs as explicit CLI args (verified no hardcoded relative-path defaults), so relocating them onto PATH this way doesn't change their behavior.
Hotfixing 1.1 in place rather than cutting a new version, following the precedent set by PR #71 and the neoantigen-utils-base:1.6.1 unzip hotfix -- modules#258 already pins both modules to neoantigen-editing:1.1.
Verified: rebuilt the image and confirmed both scripts now resolve on PATH, are executable, and run successfully via bare invocation (
compute_fitness.py --help,align_neoantigens_to_IEDB.py --help), matching exactly how the modules' .command.sh scripts call them.