#################################################################
# Dockerfile
#
# Software:         Gene body tag density plot
# Software Version: v0.0.4
# Description:      R script to plot gene body tag density plot
# Website:          https://github.com/Barski-lab/workflows
# Provides:         plugin_plot_rna.R script
# Base Image:       r-base:4.0.4
# Build Cmd:        docker build --no-cache --rm -t biowardrobe2/plugin-plot-rna:v0.0.4 -f plugin-plot-rna-Dockerfile .
# Pull Cmd:         docker pull biowardrobe2/plugin-plot-rna:v0.0.4
# Run Cmd:          docker run --rm -ti biowardrobe2/plugin-plot-rna:v0.0.4 plot_rna.R --help
#################################################################


#################################################################
# Updates
#
# v0.0.4 - support --stranded yes/no/reverse
#          reverse corresponds to the original dUTP mode
# v0.0.3 - Refactored. Use r-base:4.0.4
# v0.0.2 - Export correct RPKM distribution histogram data
# v0.0.1 - Generate plots, export data to text files
#
#################################################################


### Base Image
FROM r-base:4.0.4
LABEL maintainer="misha.kotliar@gmail.com"
ENV DEBIAN_FRONTEND noninteractive


################## BEGIN INSTALLATION ######################

WORKDIR /tmp

ENV VERSION_BIOCMANAGER 1.30.12
ENV URL_BIOCMANAGER "https://cran.r-project.org/src/contrib/BiocManager_${VERSION_BIOCMANAGER}.tar.gz"

ENV VERSION_HTSLIB 1.12
ENV URL_HTSLIB "https://github.com/samtools/htslib/releases/download/${VERSION_HTSLIB}/htslib-${VERSION_HTSLIB}.tar.bz2"

ENV VERSION_SAMTOOLS 1.12
ENV URL_SAMTOOLS "https://github.com/samtools/samtools/releases/download/${VERSION_SAMTOOLS}/samtools-${VERSION_SAMTOOLS}.tar.bz2"


COPY ./scripts/install_from_source.R /tmp/install_from_source.R
COPY ./scripts/plugin_plot_rna.R /usr/local/bin/plot_rna.R

### Installing plot_rna.R R script

RUN apt-get update && \
    apt-get install -y gcc-10-base libgcc-10-dev python3-dev python3-pip libxml2-dev libcurl4-openssl-dev libssl-dev pandoc libgtextutils-dev libncurses5-dev libbz2-dev liblzma-dev && \
### Install htslib
    wget -q -O - $URL_HTSLIB | tar -jxv && \
    cd htslib-${VERSION_HTSLIB} && \
    ./configure --prefix=/usr/local/ && \
    make -j 4 && \
    make install && \
    cd .. && \
### Install samtools
    wget -q -O - $URL_SAMTOOLS | tar -jxv && \
    cd samtools-${VERSION_SAMTOOLS} && \
    ./configure --prefix=/usr/local/ && \
    make -j 4 && \
    make install && \
    cd .. && \
### Installing R dependencies
    Rscript /tmp/install_from_source.R "${URL_BIOCMANAGER}" && \
    R -e "BiocManager::install(c('BiocParallel', 'GenomicRanges', 'Rsamtools'), update=TRUE, ask=FALSE)" && \
    R -e 'install.packages("argparse", repo = "https://cloud.r-project.org/")' && \
    R -e 'install.packages("ggplot2", repo = "https://cloud.r-project.org/")' && \
    R -e 'install.packages("sqldf", repo = "https://cloud.r-project.org/")' && \
### Installing plot_rna.R script
    chmod +x /usr/local/bin/plot_rna.R && \    
### Cleaning
    apt-get clean && \
    apt-get purge && \
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* && \
    strip /usr/local/bin/*; true
