Closed cwhelan closed 3 years ago
FWIW, I figured out that I could compile in a docker image. There must be something off about the compiler and library versions available on my login servers, but I'm still not sure what. In case it's helpful to anyone, here's a (relatively unoptimized) Dockerfile that successfully compiles SHAPEIT4:
FROM ubuntu:18.10
ARG DEBIAN_FRONTEND=noninteractive
ARG SAMTOOLS_VERSION=1.9
RUN apt-get -qqy update --fix-missing && \
apt-get -qqy dist-upgrade && \
apt-get -qqy install --no-install-recommends \
ca-certificates \
libbz2-dev \
libcurl4-openssl-dev \
liblzma-dev \
libncurses5-dev \
autoconf \
automake \
bzip2 \
gcc \
g++ \
make \
wget \
zlib1g-dev \
libboost-all-dev \
git && \
wget https://github.com/samtools/samtools/releases/download/${SAMTOOLS_VERSION}/samtools-${SAMTOOLS_VERSION}.tar.bz2 && \
tar xjf samtools-${SAMTOOLS_VERSION}.tar.bz2 && \
cd samtools-${SAMTOOLS_VERSION} && ./configure CFLAGS="-static" --without-curses && make -s all all-htslib && make install install-htslib && cd - && \
rm -rf samtools-${SAMTOOLS_VERSION}* && \
git clone https://github.com/odelaneau/shapeit4.git && \
cd shapeit4 && \
cat makefile | sed 's|HTSLIB_INC=$(HOME)/Tools/htslib-1.9|HTSLIB_INC=/usr/local/include|' | sed 's|HTSLIB_LIB=$(HOME)/Tools/htslib-1.9/libhts.a|HTSLIB_LIB=/usr/local/lib/libhts.a|' > makefile2 && \
mv makefile makefile.old && \
mv makefile2 makefile && \
make
ENV PATH="/shapeit4/bin/:${PATH}"
If you're interested in adding docker support to your project, I'd be happy to put this into a pull request.
Yes it'll be nice if we can pull this down as a docker container. Our plan is to use singularity to run this in a RedHat 6 HPC - simply don't have the required prerequisites. But I'm going to give your dockerfile a shot and see. Thanks! Dakai
I'd love to try out shapeit4, but I'm having issues compiling it on my system. When I try compiling with GCC 4.3: I get the error:
Some googling made me thing that this might be fixed with a newer GCC, but when I try with GCC 5.2, I get:
What versions of GCC, Boost, and Samtools should I be using to compile?