#FROM nvidia/cuda:11.2.0-cudnn8-runtime-ubuntu20.04
FROM ubuntu:latest
RUN useradd --create-home --shell /bin/bash zim-gast 
RUN apt-get update -y
RUN apt-get install -y --no-install-recommends apt-utils
RUN apt-get install python3-dev -y
RUN apt-get install python3-pip -y
RUN apt-get install python3-venv -y
RUN apt-get install git -y
RUN apt-get install libhdf5-dev -y
RUN apt-get install curl -y
RUN apt-get install wget -y
RUN apt install nano vim emacs -y
RUN apt-get autoremove -y

ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Berlin
# --- prep for hdf5 for HelixerPost --- #
WORKDIR /tmp/
RUN curl -L https://github.com/h5py/h5py/releases/download/3.2.1/h5py-3.2.1.tar.gz --output h5py-3.2.1.tar.gz
RUN tar -xzvf h5py-3.2.1.tar.gz
RUN cd h5py-3.2.1/lzf/ && gcc -O2 -fPIC -shared -Ilzf -I/usr/include/hdf5/serial/ lzf/*.c lzf_filter.c  -lhdf5_cpp -L/lib/x86_64-linux-gnu/hdf5/serial -o liblzf_filter.so
RUN mkdir /usr/lib/x86_64-linux-gnu/hdf5/plugins && mv h5py-3.2.1/lzf/liblzf_filter.so /usr/lib/x86_64-linux-gnu/hdf5/plugins
RUN rm -r /tmp/h5py*

# --- rust install for HelixerPost --- # 
RUN curl https://sh.rustup.rs -sSf > rustup.sh
RUN chmod 755 rustup.sh
RUN ./rustup.sh -y
RUN rm rustup.sh
ENV PATH="/root/.cargo/bin:${PATH}"

# --- Helixer and HelixerPost --- #

WORKDIR /home/zim-gast/
RUN mkdir /home/zim-gast/repos
WORKDIR /home/zim-gast/repos
RUN git clone -b v0.3.0a0 https://github.com/weberlab-hhu/Helixer.git Helixer
RUN pip install --no-cache-dir -r /home/zim-gast/repos/Helixer/requirements.txt
RUN cd Helixer && pip install --no-cache-dir .

WORKDIR /home/zim-gast/repos
RUN git clone https://github.com/TonyBolger/HelixerPost.git
RUN cd HelixerPost && git checkout d180ad8b353fa8da69342bdb924ecfaeea9464af
RUN mkdir /home/zim-gast/bin
ENV PATH="/home/zim-gast/bin:${PATH}"
RUN cd HelixerPost/helixer_post_bin && cargo build --release
RUN mv /home/zim-gast/repos/HelixerPost/target/release/helixer_post_bin /home/zim-gast/bin/
RUN rm -r /home/zim-gast/repos/HelixerPost/target/release/


# 
RUN apt install r-base-core  -y
#RUN apt install rstudio  -y
RUN apt install libncurses5-dev zlib1g-dev libbz2-dev liblzma-dev cmake jellyfish python-tk libcurl4-openssl-dev libgit2-dev libssl-dev -y

WORKDIR /home/zim-gast/repos
RUN git clone https://github.com/alisandra/RNAseq_workshop_helpers.git
RUN find RNAseq_workshop_helpers . -maxdepth 2 -type f -executable|xargs -I% cp % /home/zim-gast/bin/

#echo "please add the following lines to your ~/.bashrc file"
#echo 'export PATH=$PATH:'$SOFTWAREDIR'/bin'
#echo 'export AUGUSTUS_CONFIG_PATH='$SOFTWAREDIR'/downloads/augustus.2.5.5/config/'

WORKDIR /home/zim-gast/bin
RUN wget http://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/faToTwoBit
RUN wget http://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/blat/blat
RUN chmod +x blat
RUN chmod +x faToTwoBit 


# --- classic bioinf --- #
WORKDIR /home/zim-gast/
RUN apt install hisat2 -y
RUN apt install bowtie2 -y
RUN apt install augustus -y
RUN apt install gffread -y
RUN apt install fastqc -y
RUN apt install salmon -y
RUN apt install samtools -y
RUN apt install trinityrnaseq -y
RUN apt install minimap2 -y
RUN apt install mash -y
RUN apt install cd-hit -y

# --- used to be conda, now binaries... --- #

RUN pip install HTSeq 
RUN apt install wget tar bzip2 -y
RUN wget https://anaconda.org/bioconda/isoseq3/3.7.0/download/linux-64/isoseq3-3.7.0-h9ee0642_0.tar.bz2
RUN tar xvf isoseq3-3.7.0-h9ee0642_0.tar.bz2
RUN wget https://anaconda.org/bioconda/lima/2.6.0/download/linux-64/lima-2.6.0-h9ee0642_0.tar.bz2
RUN tar xvf lima-2.6.0-h9ee0642_0.tar.bz2
RUN wget https://anaconda.org/bioconda/pbccs/6.4.0/download/linux-64/pbccs-6.4.0-h9ee0642_0.tar.bz2
RUN tar xvf pbccs-6.4.0-h9ee0642_0.tar.bz2
RUN wget https://anaconda.org/bioconda/bax2bam/0.0.11/download/linux-64/bax2bam-0.0.11-0.tar.bz2
RUN tar xvf bax2bam-0.0.11-0.tar.bz2

# kallisto
RUN apt install libhdf5-dev m4 -y
WORKDIR /home/zim-gast/repos
RUN curl -O -L http://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz
RUN tar -xzf autoconf-2.69.tar.gz
WORKDIR /home/zim-gast/repos/autoconf-2.69
RUN ./configure
RUN make
RUN make install
WORKDIR /home/zim-gast/repos
RUN git clone https://github.com/pachterlab/kallisto.git
RUN mkdir kallisto/build
WORKDIR /home/zim-gast/repos/kallisto/build
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu/hdf5/serial/lib
RUN cmake -DCMAKE_INSTALL_PREFIX=/home/zim-gast/ -DUSE_HDF5=ON ..
RUN make
RUN make install
# python
COPY python_installs.sh ./
RUN ./python_installs.sh
RUN rm python_installs.sh 

# for virtualenv intro
RUN pip install virtualenv
ENV PATH="/home/zim-gast/.local/bin:${PATH}"

# jars
RUN mkdir /home/zim-gast/sw
WORKDIR /home/zim-gast/sw
RUN wget http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/Trimmomatic-0.39.zip
RUN unzip Trimmomatic-0.39.zip
RUN rm Trimmomatic-0.39.zip

# cleanup
WORKDIR /home/zim-gast/
RUN rm *.bz2
RUN rm -r info


# shared folder
RUN mkdir /home/zim-gast/rnaseq-workshop

RUN apt purge gmap -y
RUN apt install gmap -y

EXPOSE 8889
USER zim-gast
RUN echo "alias gmap='/usr/bin/gmap'" >> .bashrc

CMD ["bash"]
