diff --git a/conf/containers.config b/conf/containers.config index ea228832..de0b9702 100755 --- a/conf/containers.config +++ b/conf/containers.config @@ -85,7 +85,7 @@ container = "cmopipeline/strelka2-manta-bcftools-vt:2.0.1" } withName: '.*RunSvABA' { - container = "cmopipeline/svaba:0.0.1" + container = "cmopipeline/svaba:0.0.2" } withName: 'runBRASS.*' { container = "cmopipeline/brass:0.0.2" diff --git a/containers/svaba/Dockerfile b/containers/svaba/Dockerfile index 16172fe5..bdf9a1c1 100644 --- a/containers/svaba/Dockerfile +++ b/containers/svaba/Dockerfile @@ -1,38 +1,56 @@ -# adapted from https://bitbucket.org/weischenfeldt/svaba/src/master/Dockerfile -# they use SvABA version 134 (4a0606eba1bfd43c3d38433b27ac7f5e4887bc1e) but that is outdated at this point so start with latest commit -FROM centos:7.3.1611 +# Start with an Ubuntu image +FROM ubuntu:20.04 LABEL maintainer="Anne Marie Noronha (noronhaa@mskcc.org)" \ - version.image="0.0.1" + version.image="0.0.2" -RUN yum install -y epel-release -RUN yum install -y \ - git \ - zlib-devel \ - gcc gcc-c++ \ - gcc-gfortran \ +# Avoid prompts with tzdata (timezones) +ENV DEBIAN_FRONTEND=noninteractive + +# Install dependencies for htslib and svaba +RUN apt update && apt install -y \ + autoconf \ + automake \ make \ - wget \ - bzip2-devel.x86_64 \ - xz-devel \ - bcftools - -# original commit for pcawg -ENV SVABA_COMMIT 4a0606eba1bfd43c3d38433b27ac7f5e4887bc1e -# latest release commit -#ENV SVABA_COMMIT d12cf224f7a488b913eabbcf54a215e17238032c - -# SvABA Version: 1.1.3 (4d7b57); -# Submodule path 'SeqLib': checked out 'f7a89a127409a3f52fdf725fa74e5438c68e48fb' -# Submodule path 'SeqLib/bwa': checked out 'c02766e3c34ac3f4af9842e20a54b7f9f4b36d0b' -# Submodule path 'SeqLib/fermi-lite': checked out '5bc90f8d70e2b66184eccbd223a3be714c914365' -# Submodule path 'SeqLib/htslib': checked out '49fdfbda20acbd73303df3c7fef84f2d972c5f8d' -RUN git clone https://github.com/walaj/svaba && \ -cd svaba && \ -git checkout ${SVABA_COMMIT} && \ -git submodule update --init --recursive && \ -./configure && \ -make && \ -make install - -ENV PATH=/svaba/bin/:$PATH + gcc \ + g++ \ + git \ + perl \ + zlib1g-dev \ + libbz2-dev \ + liblzma-dev \ + libcurl4-gnutls-dev \ + libssl-dev \ + cmake \ + bcftools \ + && rm -rf /var/lib/apt/lists/* + +# Clone and install htslib +WORKDIR /opt +RUN git clone --recursive https://github.com/samtools/htslib.git && \ + cd htslib && \ + autoheader && \ + autoconf && \ + ./configure && \ + make && \ + make install + +# Ensure shared libraries are noticed +RUN ldconfig + +# Clone svaba +ENV SVABA_COMMIT ab39e3f656ccf34a985c4ac632426bb4be744e15 +WORKDIR /opt +RUN git clone --recursive https://github.com/walaj/svaba.git && cd svaba && mkdir build && \ + git checkout ${SVABA_COMMIT} && \ + git submodule update --init --recursive + +# Compile svaba with htslib +WORKDIR /opt/svaba/build +RUN cmake .. \ + -DHTSLIB_DIR=/usr/local && \ + make + +# Default command can be your application run command or just an interactive shell for testing +ENV PATH "$PATH:/opt/svaba/build" +