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"]