Skip to content
Snippets Groups Projects
Dockerfile 3.39 KiB
FROM ubuntu:16.04

RUN apt-get update -y
# basic packages

RUN apt-get install -y cmake \
                       sip-dev \
                       libtiff-dev \
                       libfftw3-dev \
                       libeigen3-dev \
                       libpng-dev \
                       python-all \
                       python2.7 \
                       python-qt4 \
                       libboost-all-dev \
                       qt4-qtconfig \
                       qt4-qmake \
                       libqt4-dev \
                       libpng-dev \
                       wget \
                       git \
                       gfortran \
                       libeigen3-dev \
                       python-pip

# Install miniconda - to get useful binaries
RUN wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh
RUN bash Miniconda2-latest-Linux-x86_64.sh -p /opt/miniconda2 -b -f
RUN rm Miniconda2-latest-Linux-x86_64.sh

# Install ClustalW and MSMS
RUN /opt/miniconda2/bin/conda install -y -c bioconda clustalw=2.1 msms=2.6.1

# Install OpenMM
RUN /opt/miniconda2/bin/conda install -y -c omnia openmm=7.1.1=py27_0

# Install DSSP
RUN /opt/miniconda2/bin/conda install -y -c salilab dssp=3.0.0

# Install some python packages
RUN pip install --upgrade pip && pip install numpy==1.14.0 \
                                             scipy==1.0.0 \
                                             pandas==0.22.0 \
                                             jupyter==1.0.0

# copy ost release
WORKDIR /opt/ost

RUN git clone https://git.scicore.unibas.ch/schwede/openstructure.git /opt/ost && git checkout -b develop origin/develop

# compile ost
RUN cmake . -DPYTHON_LIBRARIES=/usr/lib/x86_64-linux-gnu/libpython2.7.so \
            -DOPTIMIZE=ON \
            -DENABLE_MM=ON \
            -DCOMPILE_TMTOOLS=1 \
            -DUSE_NUMPY=1 \
            -DOPEN_MM_LIBRARY=/opt/miniconda2/pkgs/openmm-7.1.1-py27_0/lib/libOpenMM.so \
            -DOPEN_MM_INCLUDE_DIR=/opt/miniconda2/pkgs/openmm-7.1.1-py27_0/include/ \
            -DOPEN_MM_PLUGIN_DIR=/opt/miniconda2/pkgs/openmm-7.1.1-py27_0/lib/plugins

# Build chemdict_tool
RUN make -j4 chemdict_tool

# get the compound library
RUN wget ftp://ftp.wwpdb.org/pub/pdb/data/monomers/components.cif.gz
RUN stage/bin/chemdict_tool create components.cif.gz compounds.chemlib pdb
RUN stage/bin/chemdict_tool update modules/conop/data/charmm.cif compounds.chemlib charmm

# Reconfigure OST
RUN cmake . -DPYTHON_LIBRARIES=/usr/lib/x86_64-linux-gnu/libpython2.7.so \
            -DOPTIMIZE=ON \
            -DENABLE_MM=ON \
            -DOPEN_MM_LIBRARY=/opt/miniconda2/pkgs/openmm-7.1.1-py27_0/lib/libOpenMM.so \
            -DOPEN_MM_INCLUDE_DIR=/opt/miniconda2/pkgs/openmm-7.1.1-py27_0/include/ \
            -DOPEN_MM_PLUGIN_DIR=/opt/miniconda2/pkgs/openmm-7.1.1-py27_0/lib/plugins \
            -DCOMPOUND_LIB=/opt/ost/compounds.chemlib

# Build OST
RUN make -j4
#RUN make check

# go back home
WORKDIR /home

# Get the example
RUN wget https://files.rcsb.org/view/5X28.pdb

# Set the environment
# - for GUI
ENV QT_X11_NO_MITSHM 1
# - for Python
ENV PYTHONPATH="/opt/ost/stage/lib64/python2.7/site-packages:${PYTHONPATH}"
# - for PATH
ENV PATH="/opt/ost/stage/bin:${PATH}"

# Link binaries
RUN ln -s /opt/miniconda2/pkgs/clustalw*/bin/* /usr/bin
RUN ln -s /opt/miniconda2/pkgs/dssp*/bin/* /usr/bin
RUN ln -s /opt/miniconda2/pkgs/msms*/bin/* /usr/bin

ENTRYPOINT ["ost"]
CMD ["-i"]