-
Notifications
You must be signed in to change notification settings - Fork 31
/
Dockerfile_meme
148 lines (129 loc) · 4.7 KB
/
Dockerfile_meme
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
FROM python:3.8-slim AS compile-image
ENV DEBIAN_FRONTEND=noninteractive
RUN BUILDPKGS="build-essential \
libcurl4-openssl-dev \
zlib1g-dev \
libfftw3-dev \
libc++-dev \
git \
wget \
hdf5-tools \
" && \
apt-get update && \
apt-get install -y --no-install-recommends apt-utils debconf locales locales-all && dpkg-reconfigure locales && \
apt-get install -y --no-install-recommends $BUILDPKGS
RUN python -m venv /opt/venv
# Make sure we use the virtualenv:
ENV PATH="/opt/venv/bin:$PATH"
# install dependencies:
COPY pycisTopic/requirements.txt /tmp/
RUN pip install --no-cache-dir --upgrade pip wheel && \
pip install --no-cache-dir MACS2 && \
pip install --no-cache-dir Cython && \
pip install --no-cache-dir fitsne && \
pip install --no-cache-dir papermill && \
pip install --no-cache-dir igv_jupyterlab && \
pip install --no-cache-dir bs4 && \
pip install --no-cache-dir lxml && \
pip install --no-cache-dir tspex && \
pip install --no-cache-dir plotly && \
pip install --no-cache-dir kaleido && \
pip install --no-cache-dir pyvis && \
pip install velocyto && \
pip install --no-cache-dir pygam && \
pip install --no-cache-dir fa2 && \
pip install --no-cache-dir scanpy==1.8.2 && \
pip install --no-cache-dir -r /tmp/requirements.txt
# install pyscenic from local copy:
COPY pySCENIC /tmp/pySCENIC
RUN cd /tmp/pySCENIC && \
pip install . && \
cd .. && rm -rf pySCENIC
# install loomxpy from local copy:
COPY LoomXpy /tmp/LoomXpy
RUN cd /tmp/LoomXpy && \
pip install . && \
cd .. && rm -rf LoomXpy
# install pycisTopic from local copy:
COPY pycisTopic /tmp/pycisTopic
RUN cd /tmp/pycisTopic && \
pip install . && \
cd .. && rm -rf pycisTopic
# install Mallet (https://github.com/mimno/Mallet)
# https://github.com/docker-library/openjdk/blob/0584b2804ed12dca7c5e264b5fc55fc07a3ac148/8-jre/slim/Dockerfile#L51-L54
RUN apt update
RUN mkdir -p /usr/share/man/man1 && \
apt-get install -y --no-install-recommends ant openjdk-11-jdk && \
git clone --depth=1 https://github.com/mimno/Mallet.git /tmp/Mallet && \
cd /tmp/Mallet && \
ant
# install pycistarget
COPY pycistarget /tmp/pycistarget
RUN cd /tmp/pycistarget && \
pip install . && \
cd .. && rm -rf pycistarget
# install scenicplus
COPY scenicplus /tmp/scenicplus
RUN cd /tmp/scenicplus && \
pip install . && \
cd .. && rm -rf scenicplus
RUN pip install polars
RUN pip install black
RUN pip install pyfaidx
FROM python:3.8-slim AS build-image
RUN mkdir -p /usr/share/man/man1 && \
apt-get -y update && \
apt-get -y --no-install-recommends install \
libsys-info-base-perl \
make \
libhwloc-dev \
hwloc \
libxslt-dev \
libopenmpi-dev \
openmpi-bin \
ghostscript \
libgs-dev \
libgd-dev \
libexpat1-dev \
zlib1g-dev \
libxml2-dev \
autoconf automake libtool \
libhtml-template-compiled-perl \
libxml-opml-simplegen-perl \
libxml-libxml-debugging-perl \
openjdk-11-jdk \
procps \
bash-completion \
curl \
libfftw3-dev \
less && \
rm -rf /var/cache/apt/* && \
rm -rf /var/lib/apt/lists/*
RUN PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install Log::Log4perl'
RUN PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install Math::CDF'
RUN PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install CGI'
RUN PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install HTML::PullParser'
RUN PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install HTML::Template'
RUN PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install XML::Simple'
RUN PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install XML::Parser::Expat'
RUN PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install XML::LibXML'
RUN PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install XML::LibXML::Simple'
RUN PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install XML::Compile'
RUN PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install XML::Compile::SOAP11'
RUN PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install XML::Compile::WSDL11'
RUN PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install XML::Compile::Transport::SOAPHTTP'
COPY meme-5.4.1 /tmp/meme
RUN mkdir -p /opt/meme && \
cd /tmp/meme && \
./configure --prefix=/opt/meme --enable-build-libxml2 --enable-build-libxslt --disable-dependency-tracking && \
make && \
make install && \
cd ..
# reinstall MACS2 to make sure numpy is correct
RUN pip install --force-reinstall --no-cache-dir MACS2
COPY --from=compile-image /opt/venv /opt/venv
COPY --from=compile-image /tmp/Mallet /opt/mallet
# Make sure we use the virtualenv:
ENV PATH="/opt/venv/bin:$PATH"
ENV PATH="/opt/mallet/bin:$PATH"
ENV PATH="/opt/meme/bin:${PATH}"