Skip to content

Commit c74d05c

Browse files
Update snakemake to v7.25.2
1 parent 30e6c07 commit c74d05c

1 file changed

Lines changed: 71 additions & 72 deletions

File tree

Dockerfile

Lines changed: 71 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -21,21 +21,21 @@ SHELL ["/bin/bash", "-e", "-u", "-o", "pipefail", "-c"]
2121
# zlib1g-dev: for building VCFtools and pyfastx; may be used by package managers to build from source
2222
# nodejs: for installing Auspice
2323
RUN apt-get update && apt-get install -y --no-install-recommends \
24-
autoconf \
25-
automake \
26-
build-essential \
27-
ca-certificates \
28-
curl \
29-
git \
30-
jq \
31-
libsqlite3-dev \
32-
pkg-config \
33-
zlib1g-dev
24+
autoconf \
25+
automake \
26+
build-essential \
27+
ca-certificates \
28+
curl \
29+
git \
30+
jq \
31+
libsqlite3-dev \
32+
pkg-config \
33+
zlib1g-dev
3434

3535
# Install a specific Node.js version
3636
# https://github.com/nodesource/distributions/blob/0d81da75/README.md#installation-instructions
3737
RUN curl -fsSL https://deb.nodesource.com/setup_14.x | bash - \
38-
&& apt-get update && apt-get install -y nodejs
38+
&& apt-get update && apt-get install -y nodejs
3939

4040
# Used for platform-specific instructions
4141
ARG TARGETPLATFORM
@@ -70,17 +70,17 @@ RUN curl -fsSL https://api.github.com/repos/nextstrain/standard-RAxML/tarball/46
7070
WORKDIR /build/FastTree
7171
RUN curl -fsSL https://api.github.com/repos/tsibley/FastTree/tarball/50c5b098ea085b46de30bfc29da5e3f113353e6f \
7272
| tar xzvpf - --no-same-owner --strip-components=1 \
73-
&& make FastTreeDblMP \
74-
&& cp -p FastTreeDblMP /final/bin
73+
&& make FastTreeDblMP \
74+
&& cp -p FastTreeDblMP /final/bin
7575

7676
# Build vcftools
7777
WORKDIR /build/vcftools
7878
RUN curl -fsSL https://github.com/vcftools/vcftools/releases/download/v0.1.16/vcftools-0.1.16.tar.gz \
7979
| tar xzvpf - --no-same-owner --strip-components=2 \
80-
&& ./configure --prefix=$PWD/built \
81-
&& make && make install \
82-
&& cp -rp built/bin/* /final/bin \
83-
&& cp -rp built/share/* /final/share
80+
&& ./configure --prefix=$PWD/built \
81+
&& make && make install \
82+
&& cp -rp built/bin/* /final/bin \
83+
&& cp -rp built/share/* /final/share
8484

8585

8686
# 2. Download pre-built programs
@@ -93,8 +93,8 @@ RUN curl -fsSL https://github.com/vcftools/vcftools/releases/download/v0.1.16/vc
9393
WORKDIR /download/mafft
9494
RUN curl -fsSL https://mafft.cbrc.jp/alignment/software/mafft-7.520-linux.tgz \
9595
| tar xzvpf - --no-same-owner --strip-components=2 mafft-linux64/mafftdir/ \
96-
&& cp -p bin/* /final/bin \
97-
&& cp -p libexec/* /final/libexec
96+
&& cp -p bin/* /final/bin \
97+
&& cp -p libexec/* /final/libexec
9898

9999
# Download IQ-TREE
100100
# NOTE: Running this program requires support for emulation on the Docker host
@@ -104,7 +104,7 @@ RUN curl -fsSL https://mafft.cbrc.jp/alignment/software/mafft-7.520-linux.tgz \
104104
WORKDIR /download/IQ-TREE
105105
RUN curl -fsSL https://github.com/iqtree/iqtree2/releases/download/v2.2.2.4/iqtree-2.2.2.4-Linux.tar.gz \
106106
| tar xzvpf - --no-same-owner --strip-components=1 \
107-
&& mv bin/iqtree2 /final/bin/iqtree
107+
&& mv bin/iqtree2 /final/bin/iqtree
108108

109109
# Download Nextalign v1
110110
# NOTE: Running this program requires support for emulation on the Docker host
@@ -123,8 +123,8 @@ RUN curl -fsSL -o /final/bin/nextclade1 https://github.com/nextstrain/nextclade/
123123
# if the processor architecture is not amd64.
124124
# TODO: Build from source to avoid emulation. Instructions: https://github.com/eBay/tsv-utils/tree/v2.2.0#build-from-source-files
125125
RUN curl -L -o tsv-utils.tar.gz https://github.com/eBay/tsv-utils/releases/download/v2.2.0/tsv-utils-v2.2.0_linux-x86_64_ldc2.tar.gz \
126-
&& tar -x --no-same-owner -v -C /final/bin -z --strip-components 2 --wildcards -f tsv-utils.tar.gz "*/bin/*" \
127-
&& rm -f tsv-utils.tar.gz
126+
&& tar -x --no-same-owner -v -C /final/bin -z --strip-components 2 --wildcards -f tsv-utils.tar.gz "*/bin/*" \
127+
&& rm -f tsv-utils.tar.gz
128128

129129
# Download csvtk
130130
RUN curl -L https://github.com/shenwei356/csvtk/releases/download/v0.25.0/csvtk_${TARGETOS}_${TARGETARCH}.tar.gz | tar xz --no-same-owner -C /final/bin
@@ -162,22 +162,22 @@ RUN curl -fsSL https://github.com/lh3/minimap2/releases/download/v2.26/minimap2-
162162
# ¹ https://cvxopt.org/install/#building-and-installing-from-source
163163
# ² https://github.com/cvxopt/cvxopt/issues/125#issuecomment-407396491
164164
RUN if [[ "$TARGETPLATFORM" == linux/arm64 ]]; then \
165-
apt-get update && apt-get install -y --no-install-recommends \
166-
libopenblas-dev \
167-
libsuitesparse-dev \
168-
&& CVXOPT_SUITESPARSE_INC_DIR=/usr/include/suitesparse \
169-
pip3 install cvxopt \
170-
; \
171-
fi
165+
apt-get update && apt-get install -y --no-install-recommends \
166+
libopenblas-dev \
167+
libsuitesparse-dev \
168+
&& CVXOPT_SUITESPARSE_INC_DIR=/usr/include/suitesparse \
169+
pip3 install cvxopt \
170+
; \
171+
fi
172172

173173
# Install jaxlib on linux/arm64
174174
# jaxlib, an evofr dependency, does not have official pre-built binaries for
175175
# linux/arm64. A GitHub user has provided them in a fork repo.
176176
# https://github.com/google/jax/issues/7097#issuecomment-1110730040
177177
RUN if [[ "$TARGETPLATFORM" == linux/arm64 ]]; then \
178-
pip3 install https://github.com/yoziru/jax/releases/download/jaxlib-v0.4.6/jaxlib-0.4.6-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl \
179-
; \
180-
fi
178+
pip3 install https://github.com/yoziru/jax/releases/download/jaxlib-v0.4.6/jaxlib-0.4.6-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl \
179+
; \
180+
fi
181181

182182
# Install envdir, which is used by pathogen builds
183183
RUN pip3 install envdir==1.0.1
@@ -186,8 +186,7 @@ RUN pip3 install envdir==1.0.1
186186
RUN pip3 install awscli==1.27.126
187187

188188
# Install Snakemake and related optional dependencies.
189-
# Pinned to 7.24.1 for stability (2023-03-13)
190-
RUN pip3 install snakemake==7.24.1
189+
RUN pip3 install snakemake==7.25.2
191190
# Google Cloud Storage package is required for Snakemake to fetch remote files
192191
# from Google Storage URIs.
193192
RUN pip3 install google-cloud-storage==2.7.0
@@ -225,17 +224,17 @@ COPY builder-scripts/ /builder-scripts/
225224
# Download Nextalign v2
226225
# Set default Nextalign version to 2
227226
RUN curl -fsSL -o /final/bin/nextalign2 https://github.com/nextstrain/nextclade/releases/latest/download/nextalign-$(/builder-scripts/target-triple) \
228-
&& ln -sv nextalign2 /final/bin/nextalign
227+
&& ln -sv nextalign2 /final/bin/nextalign
229228

230229
# Download Nextclade v2
231230
# Set default Nextclade version to 2
232231
RUN curl -fsSL -o /final/bin/nextclade2 https://github.com/nextstrain/nextclade/releases/latest/download/nextclade-$(/builder-scripts/target-triple) \
233-
&& ln -sv nextclade2 /final/bin/nextclade
232+
&& ln -sv nextclade2 /final/bin/nextclade
234233

235234
# Fauna
236235
WORKDIR /nextstrain/fauna
237236
RUN /builder-scripts/download-repo https://github.com/nextstrain/fauna master . \
238-
&& pip3 install --requirement=requirements.txt
237+
&& pip3 install --requirement=requirements.txt
239238

240239
# Add Treetime
241240
RUN pip3 install phylo-treetime
@@ -246,7 +245,7 @@ RUN pip3 install phylo-treetime
246245
# accessible and importable.
247246
WORKDIR /nextstrain/augur
248247
RUN /builder-scripts/download-repo https://github.com/nextstrain/augur "$(/builder-scripts/latest-augur-release-tag)" . \
249-
&& pip3 install --editable .
248+
&& pip3 install --editable .
250249

251250
# Auspice
252251
# Install Node deps, build Auspice, and link it into the global search path. A
@@ -257,7 +256,7 @@ RUN /builder-scripts/download-repo https://github.com/nextstrain/augur "$(/build
257256
# used for the same reasons described above.
258257
WORKDIR /nextstrain/auspice
259258
RUN /builder-scripts/download-repo https://github.com/nextstrain/auspice release . \
260-
&& npm update && npm install && npm run build && npm link
259+
&& npm update && npm install && npm run build && npm link
261260

262261
# Add evofr for forecasting
263262
RUN pip3 install evofr
@@ -288,28 +287,28 @@ SHELL ["/bin/bash", "-e", "-u", "-o", "pipefail", "-c"]
288287
# zlib1g: for pyfastx (for Augur)
289288
# nodejs: for running Auspice
290289
RUN apt-get update && apt-get install -y --no-install-recommends \
291-
bzip2 \
292-
ca-certificates \
293-
curl \
294-
dos2unix \
295-
gzip \
296-
jq \
297-
less \
298-
libgomp1 \
299-
libsqlite3-0 \
300-
perl \
301-
ruby \
302-
util-linux \
303-
wget \
304-
xz-utils \
305-
zip unzip \
306-
zlib1g \
307-
zstd
290+
bzip2 \
291+
ca-certificates \
292+
curl \
293+
dos2unix \
294+
gzip \
295+
jq \
296+
less \
297+
libgomp1 \
298+
libsqlite3-0 \
299+
perl \
300+
ruby \
301+
util-linux \
302+
wget \
303+
xz-utils \
304+
zip unzip \
305+
zlib1g \
306+
zstd
308307

309308
# Install a specific Node.js version
310309
# https://github.com/nodesource/distributions/blob/0d81da75/README.md#installation-instructions
311310
RUN curl -fsSL https://deb.nodesource.com/setup_14.x | bash - \
312-
&& apt-get update && apt-get install -y nodejs
311+
&& apt-get update && apt-get install -y nodejs
313312

314313
# Configure bash for interactive usage
315314
COPY bashrc /etc/bash.bashrc
@@ -338,16 +337,16 @@ COPY --from=builder /usr/local/lib/python3.10/site-packages/ /usr/local/lib/pyth
338337
# troublesome or excessive.
339338
# -trs, 15 June 2018
340339
COPY --from=builder \
341-
/usr/local/bin/augur \
342-
/usr/local/bin/aws \
343-
/usr/local/bin/envdir \
344-
/usr/local/bin/nextstrain \
345-
/usr/local/bin/pangolin \
346-
/usr/local/bin/pangolearn.smk \
347-
/usr/local/bin/scorpio \
348-
/usr/local/bin/snakemake \
349-
/usr/local/bin/treetime \
350-
/usr/local/bin/
340+
/usr/local/bin/augur \
341+
/usr/local/bin/aws \
342+
/usr/local/bin/envdir \
343+
/usr/local/bin/nextstrain \
344+
/usr/local/bin/pangolin \
345+
/usr/local/bin/pangolearn.smk \
346+
/usr/local/bin/scorpio \
347+
/usr/local/bin/snakemake \
348+
/usr/local/bin/treetime \
349+
/usr/local/bin/
351350

352351
# Add installed Node libs
353352
COPY --from=builder /usr/lib/node_modules/ /usr/lib/node_modules/
@@ -373,11 +372,11 @@ ENV HOME=/nextstrain
373372

374373
# Setup a non-root user for optional use
375374
RUN useradd nextstrain \
376-
--system \
377-
--user-group \
378-
--shell /bin/bash \
379-
--home-dir /nextstrain \
380-
--no-log-init
375+
--system \
376+
--user-group \
377+
--shell /bin/bash \
378+
--home-dir /nextstrain \
379+
--no-log-init
381380

382381
# The host should bind mount the pathogen build dir into /nextstrain/build.
383382
WORKDIR /nextstrain/build

0 commit comments

Comments
 (0)