Skip to content

Commit 38eb5de

Browse files
committed
updated Dockerfile
1 parent 9eca9e2 commit 38eb5de

1 file changed

Lines changed: 58 additions & 25 deletions

File tree

Dockerfile

Lines changed: 58 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,54 @@
1-
FROM debian:bookworm-slim
1+
FROM debian:latest
22

3-
MAINTAINER lingminhao
3+
# install R 4.4.1 and all CLI tools
4+
ENV R_VERSION=4.4.1 \
5+
DEBIAN_FRONTEND=noninteractive
46

5-
# install all required CLI tools
67
RUN apt-get update \
78
&& apt-get install -y wget make g++ git-all zlib1g zlib1g-dev r-base python-is-python3 python3-pip software-properties-common \
8-
ca-certificates gnupg2 libssl-dev libcurl4-gnutls-dev libxml2-dev libfontconfig1-dev libharfbuzz-dev libfribidi-dev libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev
9-
10-
RUN wget -q https://cloud.r-project.org/bin/linux/debian/key_4.1.2 -O cran-key.asc \
11-
&& gpg --import cran-key.asc \
12-
&& mv cran-key.asc /etc/apt/trusted.gpg.d/cran.gpg
13-
14-
RUN add-apt-repository -y 'deb http://cloud.r-project.org/bin/linux/debian bookworm-cran40/' \
9+
ca-certificates gnupg2 libssl-dev libcurl4-gnutls-dev libxml2-dev libfontconfig1-dev libharfbuzz-dev libfribidi-dev libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev \
1510
&& apt update \
1611
&& apt-get install -y r-base
1712

13+
RUN apt-get update -qq && apt-get -y install --no-install-recommends \
14+
ca-certificates \
15+
build-essential \
16+
gfortran \
17+
libreadline-dev \
18+
xorg-dev \
19+
libbz2-dev \
20+
liblzma-dev \
21+
curl \
22+
git-all \
23+
libxml2-dev \
24+
libcairo2-dev \
25+
libsqlite3-dev \
26+
libmariadbd-dev \
27+
libpq-dev \
28+
libssh2-1-dev \
29+
unixodbc-dev \
30+
libcurl4-openssl-dev \
31+
libssl-dev \
32+
libsodium-dev \
33+
wget \
34+
&& rm -rf /var/lib/apt/lists/*
35+
36+
RUN wget -c https://cran.r-project.org/src/base/R-4/R-${R_VERSION}.tar.gz \
37+
&& tar -xf R-${R_VERSION}.tar.gz \
38+
&& cd R-${R_VERSION} \
39+
&& ./configure \
40+
&& make -j$(nproc) \
41+
&& make install \
42+
&& cd .. \
43+
&& rm -rf R-${R_VERSION} R-${R_VERSION}.tar.gz
44+
1845
# make a directory to store all required softwares
1946
RUN mkdir mnt/software
20-
47+
2148
# install flexiplex
2249
RUN cd mnt/software && wget https://github.com/DavidsonGroup/flexiplex/releases/download/v1.01/flexiplex-1.01.tar.gz \
2350
&& tar -xvf flexiplex-1.01.tar.gz && rm flexiplex-1.01.tar.gz && cd flexiplex-1.01 && make
2451

25-
# install jaffa
26-
RUN cd mnt/software && wget https://github.com/Oshlack/JAFFA/releases/download/version-2.3/JAFFA-version-2.3.tar.gz \
27-
&& tar -xvf JAFFA-version-2.3.tar.gz && rm JAFFA-version-2.3.tar.gz && cd JAFFA-version-2.3 $$ ./install_linux64.sh
28-
2952
# install minimap2
3053
RUN cd mnt/software && git clone https://github.com/lh3/minimap2 \
3154
&& cd minimap2 && make
@@ -37,20 +60,30 @@ RUN cd mnt/software && wget https://github.com/samtools/htslib/releases/download
3760
&& tar -xvf samtools-1.18.tar.bz2 && rm samtools-1.18.tar.bz2 && cd samtools-1.18 && make && make install
3861

3962
# install bambu
40-
RUN cd mnt/software && R -e "install.packages('devtools')"
41-
RUN cd mnt/software && R -e "install.packages('R.utils')"
42-
RUN cd mnt/software && R -e "install.packages('BiocManager')"
43-
RUN cd mnt/software && R -e "BiocManager::install('bambu')"
44-
RUN cd mnt/software && git clone -b messyForest --single-branch https://github.com/GoekeLab/bambu.git
45-
RUN cd mnt/software && R -e "library('devtools'); load_all('bambu')"
46-
RUN cd mnt/software && R -e "install.packages('Rcpp')"
63+
# RUN R -e "install.packages('R.utils', repos = 'http://cran.us.r-project.org')"
64+
RUN R -e "install.packages('BiocManager', repos = 'http://cran.us.r-project.org')"
65+
RUN R -e "BiocManager::install('bambu')"
66+
67+
# install Seurat
68+
RUN R -e "install.packages('SeuratObject', repos = 'http://cran.us.r-project.org')"
69+
RUN R -e "install.packages('Seurat', repos = 'http://cran.us.r-project.org')"
4770

48-
RUN cd mnt/software && wget https://raw.githubusercontent.com/DavidsonGroup/flexiplex/863a5f3b182a0ee669407406b6cb39ae9f7f0c76/scripts/filter-barcodes.py \
49-
&& pip3 install numpy pandas --break-system-packages
71+
# mischellous setup
72+
RUN R -e "install.packages('devtools', repos = 'http://cran.us.r-project.org')"
73+
RUN cd mnt/software && git clone -b Multiplex_Major_Patch --single-branch https://github.com/GoekeLab/bambu.git
74+
RUN cd mnt/software && wget https://raw.githubusercontent.com/DavidsonGroup/flexiplex/main/scripts/flexiplex_filter/main.py \
75+
&& pip3 install numpy==1.26.4 pandas --break-system-packages
5076

5177
RUN cd mnt/software/bambu && chmod 777 DESCRIPTION
78+
RUN R -e "library(devtools); load_all('/mnt/software/bambu')"
79+
80+
# install jaffa
81+
RUN cd mnt/software && wget https://github.com/Oshlack/JAFFA/releases/download/version-2.3/JAFFA-version-2.3.tar.gz \
82+
&& tar -xvf JAFFA-version-2.3.tar.gz && rm JAFFA-version-2.3.tar.gz && cd JAFFA-version-2.3 $$ ./install_linux64.sh
5283

53-
RUN apt-get install -y libopenblas-dev
84+
#RUN apt-get install -y libopenblas-dev
5485

5586
# environment variables
5687
ENV PATH=$PATH:/mnt/software/flexiplex-1.01:/mnt/software/minimap2:/mnt/software/samtools-1.18:/mnt/software/htslib-1.18:/mnt/software/bambu
88+
ENV R_LIBS_USER="/usr/local/lib/R/site-library"
89+

0 commit comments

Comments
 (0)