EukPhylo/PTL2/Dockerfile.txt
2025-03-25 17:49:21 -04:00

63 lines
2.1 KiB
Plaintext

FROM python:3.8.20-bullseye
RUN apt-get update -y && apt-get upgrade -y && \
apt-get install -y \
git wget ncbi-blast+-legacy mafft build-essential vim unzip cmake gcc g++ \
libomp-dev libboost-all-dev libeigen3-dev cpanminus && \
rm -rf /var/lib/apt/lists/*
# Install Python dependencies
RUN pip install biopython==1.75 ete3==3.1.2 tqdm==4.66.4 six==1.17.0
# Guidance installation and debug for 'guidance.pl' file existence
RUN git clone https://github.com/anzaika/guidance.git && \
cd guidance && make
# Guidance bio perl dependency
RUN apt-get update && apt-get install -y cpanminus && \
cpanm Bio::Perl
# TrimAl installation
RUN wget -O trimal-1.5.0.zip https://github.com/inab/trimal/archive/refs/tags/v1.5.0.zip && \
unzip trimal-1.5.0.zip && \
cd trimal-1.5.0/source && \
make && \
mkdir -p /usr/local/trimal && \
cp trimal /usr/local/trimal/ && \
ln -s /usr/local/trimal/trimal /usr/local/bin/trimal && \
rm -rf /trimal-1.5.0.zip /trimal-1.5.0
# Install FastTree
RUN wget http://www.microbesonline.org/fasttree/FastTree && \
chmod +x FastTree && \
mv FastTree /usr/local/bin/
# Clone IQ-TREE 2 repository and compile it
RUN git clone --recursive https://github.com/iqtree/iqtree2.git && \
cd iqtree2 && \
git checkout v2.4.0 && \
mkdir build && cd build && \
cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ .. && \
make -j$(nproc) && \
make install && \
cd ../.. && rm -rf iqtree2
# Clean the container
RUN rm -rf vsearch-2.21.0-linux-aarch64.tar.gz
# EukPhylo installation
RUN git clone -b Docker https://github.com/Katzlab/EukPhylo.git
# Add executables to PATH
ENV PATH="$PATH:/iqtree/bin/iqtree:/usr/local/vsearch/bin/vsearch:/usr/local/trimal/trimal:/usr/local/bin"
# Change executable permissions on wrapper script
RUN ["chmod", "+x", "/EukPhylo/PTL2/run_eukphylo.sh"]
# Change executable permissions on guidance.pl after confirming its existence
RUN ["chmod", "+x", "/guidance/www/Guidance/guidance.pl"]
# Change entrypoint on execution of the container
ENTRYPOINT ["bash", "/EukPhylo/PTL2/run_eukphylo.sh"]