forked from google/deepvariant
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
109 lines (94 loc) · 4.66 KB
/
Dockerfile
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
# Copyright 2019 Google LLC.
# This is used to build the DeepVariant release docker image.
# It can also be used to build local images, especially if you've made changes
# to the code.
# Example command:
# $ git clone https://github.com/google/deepvariant.git
# $ cd deepvariant
# $ sudo docker build -t deepvariant .
#
# To build for GPU, use a command like:
# $ sudo docker build --build-arg=FROM_IMAGE=nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04 --build-arg=DV_GPU_BUILD=1 -t deepvariant_gpu .
ARG FROM_IMAGE=ubuntu:16.04
ARG DV_GPU_BUILD=0
ARG VERSION=0.8.0
FROM ${FROM_IMAGE} as builder
LABEL maintainer="https://github.com/google/deepvariant/issues"
ARG DV_GPU_BUILD
ENV DV_GPU_BUILD=${DV_GPU_BUILD}
# Copying DeepVariant source code
COPY . /opt/deepvariant
WORKDIR /opt/deepvariant
RUN ./build-prereq.sh \
&& PATH="${HOME}/bin:${PATH}" ./build_release_binaries.sh # PATH for bazel
FROM ${FROM_IMAGE}
ARG DV_GPU_BUILD
ARG VERSION
ENV DV_GPU_BUILD=${DV_GPU_BUILD}
ENV VERSION ${VERSION}
WORKDIR /opt/
COPY --from=builder /opt/deepvariant/bazel-genfiles/licenses.zip .
WORKDIR /opt/deepvariant/bin/
COPY --from=builder /opt/deepvariant/run-prereq.sh .
COPY --from=builder /opt/deepvariant/settings.sh .
COPY --from=builder /opt/deepvariant/bazel-bin/deepvariant/make_examples.zip .
COPY --from=builder /opt/deepvariant/bazel-bin/deepvariant/call_variants.zip .
COPY --from=builder /opt/deepvariant/bazel-bin/deepvariant/postprocess_variants.zip .
COPY --from=builder /opt/deepvariant/bazel-bin/deepvariant/model_train.zip .
COPY --from=builder /opt/deepvariant/bazel-bin/deepvariant/model_eval.zip .
COPY --from=builder /opt/deepvariant/scripts/run_deepvariant.py .
RUN ./run-prereq.sh
# Create shell wrappers for python zip files for easier use.
RUN \
BASH_HEADER='#!/bin/bash' && \
printf "%s\n%s\n" \
"${BASH_HEADER}" \
'python /opt/deepvariant/bin/make_examples.zip "$@"' > \
/opt/deepvariant/bin/make_examples && \
printf "%s\n%s\n" \
"${BASH_HEADER}" \
'python /opt/deepvariant/bin/call_variants.zip "$@"' > \
/opt/deepvariant/bin/call_variants && \
printf "%s\n%s\n" \
"${BASH_HEADER}" \
'python /opt/deepvariant/bin/postprocess_variants.zip "$@"' > \
/opt/deepvariant/bin/postprocess_variants && \
printf "%s\n%s\n" \
"${BASH_HEADER}" \
'python /opt/deepvariant/bin/model_train.zip "$@"' > \
/opt/deepvariant/bin/model_train && \
printf "%s\n%s\n" \
"${BASH_HEADER}" \
'python /opt/deepvariant/bin/model_eval.zip "$@"' > \
/opt/deepvariant/bin/model_eval && \
printf "%s\n%s\n" \
"${BASH_HEADER}" \
'python -u /opt/deepvariant/bin/run_deepvariant.py "$@"' > \
/opt/deepvariant/bin/run_deepvariant && \
chmod +x /opt/deepvariant/bin/make_examples \
/opt/deepvariant/bin/call_variants \
/opt/deepvariant/bin/postprocess_variants \
/opt/deepvariant/bin/model_train \
/opt/deepvariant/bin/model_eval \
/opt/deepvariant/bin/run_deepvariant
# Copy models
WORKDIR /opt/models/wgs
ADD https://storage.googleapis.com/deepvariant/models/DeepVariant/${VERSION}/DeepVariant-inception_v3-${VERSION}+data-wgs_standard/model.ckpt.data-00000-of-00001 .
ADD https://storage.googleapis.com/deepvariant/models/DeepVariant/${VERSION}/DeepVariant-inception_v3-${VERSION}+data-wgs_standard/model.ckpt.index .
ADD https://storage.googleapis.com/deepvariant/models/DeepVariant/${VERSION}/DeepVariant-inception_v3-${VERSION}+data-wgs_standard/model.ckpt.meta .
RUN chmod +r /opt/models/wgs/model.ckpt*
WORKDIR /opt/models/wes
ADD https://storage.googleapis.com/deepvariant/models/DeepVariant/${VERSION}/DeepVariant-inception_v3-${VERSION}+data-wes_standard/model.ckpt.data-00000-of-00001 .
ADD https://storage.googleapis.com/deepvariant/models/DeepVariant/${VERSION}/DeepVariant-inception_v3-${VERSION}+data-wes_standard/model.ckpt.index .
ADD https://storage.googleapis.com/deepvariant/models/DeepVariant/${VERSION}/DeepVariant-inception_v3-${VERSION}+data-wes_standard/model.ckpt.meta .
RUN chmod +r /opt/models/wes/model.ckpt*
WORKDIR /opt/models/pacbio
ADD https://storage.googleapis.com/deepvariant/models/DeepVariant/${VERSION}/DeepVariant-inception_v3-${VERSION}+data-pacbio_standard/model.ckpt.data-00000-of-00001 .
ADD https://storage.googleapis.com/deepvariant/models/DeepVariant/${VERSION}/DeepVariant-inception_v3-${VERSION}+data-pacbio_standard/model.ckpt.index .
ADD https://storage.googleapis.com/deepvariant/models/DeepVariant/${VERSION}/DeepVariant-inception_v3-${VERSION}+data-pacbio_standard/model.ckpt.meta .
RUN chmod +r /opt/models/pacbio/model.ckpt*
RUN apt-get -y update && \
apt-get install -y python-pip parallel && \
python -m pip uninstall -y pip && \
python -m pip install pip==9.0.3 && \
pip install absl-py==0.7.1