diff --git a/docker/Dockerfile b/docker/Dockerfile index 87b715240d9818827ff46b1632ee6f621886ba6c..6f6b71e600b231c4255c602a3f5208b483725f05 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,24 +1,79 @@ -# Recommended build process - -#get CUDA - getting an older version for compatibility, recommend changing to newer -FROM nvidia/cuda:12.6.0-devel-ubuntu22.04 - -# get packages -WORKDIR /root -ARG DEBIAN_FRONTEND="noninteractive" -RUN apt-get update -y -RUN apt-get install build-essential -y wget -y libboost-all-dev -y libeigen3-dev -y libgoogle-glog-dev -y libprotobuf-dev -y protobuf-compiler -y libhdf5-dev -y libatlas-base-dev -y python3-dev -y librdkit-dev -y python3-numpy -y python3-pip -y python3-pytest -y swig -y -RUN apt update ; apt upgrade -y ; apt-get -y install build-essential git wget libboost-all-dev libeigen3-dev libgoogle-glog-dev libprotobuf-dev protobuf-compiler libhdf5-dev libatlas-base-dev python3-dev librdkit-dev python3-numpy python3-pip python3-pytest libjsoncpp-dev -RUN apt-get update -y && apt-get install git-all -y curl && apt-get update -y -RUN rm -rf /var/lib/apt/lists/* -RUN pip3 install cmake scikit-image pyquaternion google-api-python-client six -RUN pip3 install torch torchvision torchaudio - -RUN git clone https://github.com/openbabel/openbabel.git && cd openbabel && git checkout openbabel-3-1-1 && mkdir build && cd build && cmake -DWITH_MAEPARSER=OFF -DWITH_COORDGEN=OFF -DPYTHON_BINDINGS=ON -DRUN_SWIG=ON .. && make -j4 && make install - -ADD "https://github.com/gnina/gnina/commits?per_page=1" latest_commit - -RUN git clone https://github.com/gnina/gnina.git; \ - cd gnina; mkdir build; cd build; \ - cmake .. ;\ - make -j4 ; make install \ No newline at end of file +FROM ubuntu:18.04 + +LABEL maintainer="Your Name <your.email@example.com>" + +ENV DEBIAN_FRONTEND=noninteractive + +# ----------- Install Core System Dependencies ----------- +RUN apt-get update && apt-get install -y \ + git build-essential cmake g++ \ + zlib1g-dev libncurses5-dev libbz2-dev liblzma-dev \ + libcurl4-openssl-dev libssl-dev \ + python2.7 python-pip python-numpy python-scipy \ + libboost-all-dev curl unzip wget parallel \ + libtbb-dev samtools locales \ + perl curl \ + unzip \ + x11-utils xorg-dev libx11-dev \ + libxpm-dev libxft-dev libxext-dev && \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +# Set Python 2 as default +RUN update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 + +# Install Python modules +RUN pip install pysam==0.8.4 + +# Set UTF-8 locale +RUN locale-gen en_US.UTF-8 +ENV LANG en_US.UTF-8 +ENV LANGUAGE en_US:en +ENV LC_ALL=en_US.UTF-8 + +# ----------- Clone and Build SpeedSeq ----------- +WORKDIR /opt +RUN git clone --recursive https://github.com/hall-lab/speedseq.git +WORKDIR /opt/speedseq +RUN make + +ENV SPEEDSEQ_DIR=/opt/speedseq +ENV PATH="$SPEEDSEQ_DIR/bin:$PATH" + +# ----------- OPTIONAL: Install CNVnator and ROOT ----------- +# Toggle these installs with --build-arg flags +ARG INSTALL_CNVNATOR=true + +RUN if [ "$INSTALL_CNVNATOR" = "true" ]; then \ + curl -OL ftp://root.cern.ch/root/root_v5.34.20.source.tar.gz && \ + tar -zxvf root_v5.34.20.source.tar.gz && \ + cd root && \ + ./configure --prefix=/opt/root && \ + make -j4 && \ + echo "source /opt/root/bin/thisroot.sh" >> /etc/bash.bashrc && \ + cd $SPEEDSEQ_DIR && \ + source /opt/root/bin/thisroot.sh && \ + make cnvnator; \ + fi + +ENV ROOTSYS=/opt/root +ENV PATH="$ROOTSYS/bin:$PATH" +ENV LD_LIBRARY_PATH="$ROOTSYS/lib:$LD_LIBRARY_PATH" +ENV DYLD_LIBRARY_PATH="$ROOTSYS/lib:$DYLD_LIBRARY_PATH" + +# ----------- OPTIONAL: Install VEP ----------- +ARG INSTALL_VEP=true + +RUN if [ "$INSTALL_VEP" = "true" ]; then \ + mkdir -p $SPEEDSEQ_DIR/annotations/vep_cache && \ + curl -OL https://github.com/Ensembl/ensembl-tools/archive/release/76.zip && \ + unzip 76.zip && \ + perl ensembl-tools-release-76/scripts/variant_effect_predictor/INSTALL.pl \ + -c $SPEEDSEQ_DIR/annotations/vep_cache \ + -a ac -s homo_sapiens -y GRCh37 && \ + cp ensembl-tools-release-76/scripts/variant_effect_predictor/variant_effect_predictor.pl $SPEEDSEQ_DIR/bin && \ + cp -r ensembl-tools-release-76/scripts/variant_effect_predictor/Bio $SPEEDSEQ_DIR/bin; \ + fi + +# ----------- Final Touches ----------- +WORKDIR /data +ENTRYPOINT ["speedseq"] \ No newline at end of file