I have made the following Dockerfile to install pindel:
# Use Python base image from DockerHub
FROM python:2.7
RUN apt-get update && apt-get install -y \
bzip2 \
wget \
make \
ncurses-dev \
zlib1g-dev \
g++ \
python-pip \
git \
gcc \
liblzma-dev
RUN pip install awscli boto3
# Install htslib
WORKDIR /usr/bin
RUN wget https://github.com/samtools/htslib/releases/download/1.9/htslib-1.9.tar.bz2 \
&& tar -vxjf htslib-1.9.tar.bz2 \
&& cd htslib-1.9 \
&& make
# Install pindel
WORKDIR /usr/bin
RUN git clone git://github.com/genome/pindel.git \
&& cd pindel \
&& ./INSTALL /usr/bin/htslib-1.9/
ENV PATH="/usr/bin/:$PATH"
However, when I try building this image, I get errors such as:
^~~
make[1]: Leaving directory '/usr/bin/pindel/src'
make[1]: *** [Makefile:47: pindel.o] Error 1
make: *** [Makefile:12: pindel] Error 2
INSTALL failed
Possible reasons:
1. 'cannot cd to [path]
->the htslib path provided was incorrect
2. 'cannot find -lbam'
->htslib was not properly compiled/made, in that case, go to the htslib directory and follow the htslib installation instructions
and run 'make'.
or
compilation terminated.
In file included from output_sorter.cpp:27:
pindel.h:34:10: fatal error: htslib/khash.h: No such file or directory
#include "htslib/khash.h"
^~~~~~~~~~~~~~~~
compilation terminated.
In file included from reporter.h:27,
from search_tandem_duplications_nt.cpp:23:
pindel.h:34:10: fatal error: htslib/khash.h: No such file or directory
#include "htslib/khash.h"
^~~~~~~~~~~~~~~~
compilation terminated.
In file included from reporter.h:27,
from search_tandem_duplications.cpp:23:
pindel.h:34:10: fatal error: htslib/khash.h: No such file or directory
#include "htslib/khash.h"
^~~~~~~~~~~~~~~~
I have tried installing both htslib and samtools and referring to those directories in my ./INSTALL ...
command, but nothing is working! I even tried walking through these installation steps manually on an Amazon instance and get the following error:
mv: cannot stat ‘src/pindel’: No such file or directory
mv: cannot stat ‘src/pindel2vcf’: No such file or directory
mv: cannot stat ‘src/sam2pindel’: No such file or directory
mv: cannot stat ‘src/pindel2vcf4tcga’: No such file or directory
Help would be much appreciated :)
Thank you. I have already tried using other directories in the script besides
/usr/bin
for downloading and compiling, however I still get the same error. And the whole point of using a Docker container is to bypass any "manual" steps; I'm trying to use this Pindel program as part of a bioinformatics pipeline.This is a docker recipe. What is described in, though it could be done differently, shouldn't be as "terrible" as you think. And definitely not the reason for the errors.