diff --git a/docker/sentieon/Dockerfile b/docker/sentieon/Dockerfile new file mode 100644 index 0000000..d6ec39d --- /dev/null +++ b/docker/sentieon/Dockerfile @@ -0,0 +1,69 @@ +FROM python:3.11-bookworm + +MAINTAINER Billy Rowell + +ARG IMAGE_NAME +ENV IMAGE_NAME "${IMAGE_NAME}" +ARG IMAGE_TAG +ENV IMAGE_TAG "${IMAGE_TAG}" + +RUN apt-get -qq update \ + && apt-get -qq install \ + libjemalloc2 \ + procps \ + git \ + build-essential \ + zlib1g-dev \ + liblzma-dev \ + libbz2-dev \ + libcurl4-openssl-dev \ + tabix \ + && rm -rf /var/lib/apt/lists/* + +ARG SENTIEON_VERSION +ENV SENTIEON_VERSION "${SENTIEON_VERSION}" +RUN mkdir -p /opt/sentieon/ \ + && wget "https://s3.amazonaws.com/sentieon-release/software/sentieon-genomics-${SENTIEON_VERSION}.tar.gz" \ + && tar --no-same-owner -zxf sentieon-genomics-${SENTIEON_VERSION}.tar.gz --directory /opt/sentieon/ \ + && rm sentieon-genomics-${SENTIEON_VERSION}.tar.gz + +ARG SENTIEON_PACBIO_MODEL_VERSION +ENV SENTIEON_PACBIO_MODEL_VERSION "${SENTIEON_PACBIO_MODEL_VERSION}" +RUN mkdir -p /opt/sentieon/model \ + && wget "https://s3.amazonaws.com/sentieon-release/other/${SENTIEON_PACBIO_MODEL_VERSION}.bundle" \ + && mv "${SENTIEON_PACBIO_MODEL_VERSION}.bundle" /opt/sentieon/model/ +ENV MODEL_BUNDLE="/opt/sentieon/model/${SENTIEON_PACBIO_MODEL_VERSION}.bundle" + +ARG BCFTOOLS_VERSION +RUN wget https://github.com/samtools/bcftools/releases/download/${BCFTOOLS_VERSION}/bcftools-${BCFTOOLS_VERSION}.tar.bz2 \ + && tar --no-same-owner -jxvf bcftools-${BCFTOOLS_VERSION}.tar.bz2 --directory /opt \ + && rm bcftools-${BCFTOOLS_VERSION}.tar.bz2 +RUN cd /opt/bcftools-${BCFTOOLS_VERSION} \ + && make \ + && make install + +ARG BEDTOOLS_VERSION +RUN wget https://github.com/arq5x/bedtools2/releases/download/v${BEDTOOLS_VERSION}/bedtools.static \ + -O /usr/local/bin/bedtools \ + && chmod +x /usr/local/bin/bedtools + +ARG SENTIEON_SCRIPTS_GIT_HASH +ENV SENTIEON_SCRIPTS_GIT_HASH "${SENTIEON_SCRIPTS_GIT_HASH}" +WORKDIR /opt +RUN git clone https://github.com/Sentieon/sentieon-scripts.git \ + && cd sentieon-scripts \ + && git checkout "${SENTIEON_SCRIPTS_GIT_HASH}" \ + && wget https://raw.githubusercontent.com/Sentieon/sentieon-cli/main/sentieon_cli/scripts/gvcf_combine.py \ + && mv gvcf_combine.py /opt/sentieon-scripts/dnascope_LongRead/ \ + && chmod +x /opt/sentieon-scripts/dnascope_LongRead/*.py \ + && chmod +x /opt/sentieon-scripts/dnascope_LongRead/*.sh +ENV PATH ${PATH}:/opt/sentieon-scripts/dnascope_LongRead + +ENV SENTIEON_INSTALL_DIR=/opt/sentieon/sentieon-genomics-$SENTIEON_VERSION +ENV PATH $SENTIEON_INSTALL_DIR/bin/:$PATH +ENV LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 + +# A default jemalloc configuration that should work well for most use-cases, see http://jemalloc.net/jemalloc.3.html +ENV MALLOC_CONF=metadata_thp:auto,background_thread:true,dirty_decay_ms:30000,muzzy_decay_ms:30000 + +CMD ["/bin/bash"] \ No newline at end of file diff --git a/docker/sentieon/build.env b/docker/sentieon/build.env new file mode 100644 index 0000000..fbfaa44 --- /dev/null +++ b/docker/sentieon/build.env @@ -0,0 +1,13 @@ +# Image revision +IMAGE_BUILD=3 + +# Tool versions +SENTIEON_VERSION=202308.01 +SENTIEON_PACBIO_MODEL_VERSION=DNAscopePacBio2.0 +SENTIEON_SCRIPTS_GIT_HASH=8d33f29 +BCFTOOLS_VERSION=1.16 +BEDTOOLS_VERSION=2.31.0 + +# Image info +IMAGE_NAME=sentieon +IMAGE_TAG=${SENTIEON_VERSION}_build${IMAGE_BUILD}