Skip to content

VEPPLUGIN_REVEL fails: grep -oP in the tabix version eval does not work in the bcftools:1.24 container (BusyBox grep) #217

Closed

Description

@laulambr

VEPPLUGIN_REVEL fails: grep -oP in the tabix version eval does not work in the bcftools:1.24 container (BusyBox grep)

Description

VEPPLUGIN_REVEL crashes with exit status 2 ("Unable to evaluate output") because the versions_tabix output evaluates

tabix -h 2>&1 | grep -oP 'Version:\s*\K[^\s]+'

inside the bcftools:1.24--h118bc1c_2 container, whose grep is BusyBox and has no -P. (modules/local/vepplugin/eve/main.nf:15 has the identical line and image; I did not run EVE.)

REVEL is on by default for --genome GRCh38 (plugins are on by default there), so a default GRCh38 run reaches this and the pipeline stops (Pipeline failed).

Where

modules/local/vepplugin/revel/main.nf:15 (dev, commit f590906, PR #212 merge).

Error

ERROR ~ Error executing process > 'INTGENOMICSLAB_LRSOMATIC:LRSOMATIC:PREPARE_VEP_PLUGINS:VEPPLUGIN_REVEL (revel)'

Caused by:
  Unable to evaluate output

Command executed:
  tabix -h 2>&1 | grep -oP 'Version:\s*\K[^\s]+'

Command exit status:
  2

Command output:
  grep: invalid option -- 'P'
  BusyBox v1.36.1 (2024-06-02 11:42:27 UTC) multi-call binary.
  Usage: grep [-HhnlLoqvsrRiwFE] [-m N] [-A|B|C N] { PATTERN | -e PATTERN... | -f FILE... } [FILE]...

Reproduce (outside Nextflow)

Both images the module can resolve to behave the same:

# depot.galaxyproject.org singularity image (default branch of the container ternary)
apptainer exec depot.galaxyproject.org-singularity-bcftools-1.24--h118bc1c_2.img \
  sh -c "tabix -h 2>&1 | grep -oP 'Version:\s*\K[^\s]+'"
# -> grep: invalid option -- 'P'   (BusyBox v1.36.1)

# docker/quay biocontainer (ext.singularity_pull_docker_container = true branch)
apptainer exec quay.io-biocontainers-bcftools-1.24--h118bc1c_2.img \
  sh -c "tabix -h 2>&1 | grep -oP 'Version:\s*\K[^\s]+'"
# -> same error

Suggested fix

Use a portable extraction that works with BusyBox, GNU grep and others. Verified in both images above (prints 1.24):

eval("tabix -h 2>&1 | sed -n 's/^Version: *\\([^ ]*\\).*/\\1/p' | head -n 1")

Applied to the REVEL module in a local clone (and to EVE, untested); with it VEPPLUGIN_REVEL completed (exit 0) and the full pipeline ran to completion (7 PacBio clones, GRCh38). Alternative: awk '/^Version:/{print $2; exit}'.

Environment

  • lrsomatic: dev @ f59090672113939acf3b9d36c1bc3584511f3eb8 (2026-10-02)
  • Nextflow 26.04.3, Java 17
  • Apptainer 1.4.4 (singularity engine), profile vsc_kul_uhasselt,mindwell (KU Leuven VSC)
  • --genome GRCh38, VEP plugins left at default (on)

What I did not verify

  • Other container engines (Docker, Podman) were not tested; this may only affect images where grep is BusyBox.
  • Whether other modules use grep -oP inside minimal images (grep -rn "grep -oP" modules/ also matches modules/nf-core/ensemblvep/vep/main.nf; that process ran fine here, so its image has GNU grep).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions