Diff of /Dockerfile.deeptrio [000000] .. [5a4941]

Switch to unified view

a b/Dockerfile.deeptrio
1
# Copyright 2019 Google LLC.
2
# This is used to build the DeepTrio release docker image.
3
# It can also be used to build local images, especially if you've made changes
4
# to the code.
5
# Example command:
6
# $ git clone https://github.com/google/deepvariant.git
7
# $ cd deepvariant
8
# $ sudo docker build -f Dockerfile.deeptrio -t deeptrio .
9
#
10
# To build for GPU, use a command like:
11
# $ sudo docker build -f Dockerfile.deeptrio --build-arg=FROM_IMAGE=nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04 --build-arg=DV_GPU_BUILD=1 -t deeptrio_gpu .
12
13
14
ARG FROM_IMAGE=ubuntu:22.04
15
# PYTHON_VERSION is also set in settings.sh.
16
ARG PYTHON_VERSION=3.10
17
ARG DV_GPU_BUILD=0
18
ARG VERSION_DEEPTRIO=1.8.0
19
ARG TF_ENABLE_ONEDNN_OPTS=1
20
21
FROM continuumio/miniconda3 as conda_setup
22
RUN conda config --add channels defaults && \
23
    conda config --add channels bioconda && \
24
    conda config --add channels conda-forge
25
RUN conda create -n bio \
26
                    bioconda::bcftools=1.15 \
27
                    bioconda::samtools=1.15 \
28
    && conda clean -a
29
30
FROM ${FROM_IMAGE} as builder
31
COPY --from=conda_setup /opt/conda /opt/conda
32
LABEL maintainer="https://github.com/google/deepvariant/issues"
33
34
ARG DV_GPU_BUILD
35
ENV DV_GPU_BUILD=${DV_GPU_BUILD}
36
37
# Copying DeepVariant source code
38
COPY . /opt/deepvariant
39
40
WORKDIR /opt/deepvariant
41
42
RUN ./build-prereq.sh \
43
  && PATH="${HOME}/bin:${PATH}" ./build_release_binaries.sh  # PATH for bazel
44
45
FROM ${FROM_IMAGE}
46
ARG DV_GPU_BUILD
47
ARG VERSION_DEEPTRIO
48
ARG PYTHON_VERSION
49
ARG TF_ENABLE_ONEDNN_OPTS
50
ENV DV_GPU_BUILD=${DV_GPU_BUILD}
51
ENV VERSION_DEEPTRIO ${VERSION_DEEPTRIO}
52
ENV PYTHON_VERSION ${PYTHON_VERSION}
53
ENV TF_ENABLE_ONEDNN_OPTS ${TF_ENABLE_ONEDNN_OPTS}
54
55
WORKDIR /opt/
56
COPY --from=builder /opt/deepvariant/bazel-bin/licenses.zip .
57
58
WORKDIR /opt/deepvariant/bin/
59
COPY --from=builder /opt/conda /opt/conda
60
COPY --from=builder /opt/deepvariant/run-prereq.sh .
61
COPY --from=builder /opt/deepvariant/settings.sh .
62
COPY --from=builder /opt/deepvariant/bazel-out/k8-opt/bin/deepvariant/call_variants.zip  .
63
COPY --from=builder /opt/deepvariant/bazel-out/k8-opt/bin/deepvariant/postprocess_variants.zip  .
64
COPY --from=builder /opt/deepvariant/bazel-out/k8-opt/bin/deepvariant/vcf_stats_report.zip  .
65
COPY --from=builder /opt/deepvariant/bazel-out/k8-opt/bin/deepvariant/show_examples.zip  .
66
COPY --from=builder /opt/deepvariant/bazel-out/k8-opt/bin/deepvariant/runtime_by_region_vis.zip  .
67
COPY --from=builder /opt/deepvariant/scripts/run_deeptrio.py ./deeptrio/
68
COPY --from=builder /opt/deepvariant/bazel-out/k8-opt/bin/deeptrio/make_examples.zip  ./deeptrio/
69
RUN ./run-prereq.sh
70
71
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python${PYTHON_VERSION} 0 && \
72
    update-alternatives --install /usr/bin/python python /usr/bin/python${PYTHON_VERSION} 0
73
74
# Create shell wrappers for python zip files for easier use.
75
RUN \
76
  BASH_HEADER='#!/bin/bash' && \
77
  printf "%s\n%s\n" \
78
    "${BASH_HEADER}" \
79
    'python3 /opt/deepvariant/bin/deeptrio/make_examples.zip "$@"' > \
80
    /opt/deepvariant/bin/deeptrio/make_examples && \
81
  printf "%s\n%s\n" \
82
    "${BASH_HEADER}" \
83
    'python3 /opt/deepvariant/bin/call_variants.zip "$@"' > \
84
    /opt/deepvariant/bin/call_variants && \
85
  printf "%s\n%s\n" \
86
    "${BASH_HEADER}" \
87
    'python3 /opt/deepvariant/bin/postprocess_variants.zip "$@"' > \
88
    /opt/deepvariant/bin/postprocess_variants && \
89
  printf "%s\n%s\n" \
90
    "${BASH_HEADER}" \
91
    'python3 /opt/deepvariant/bin/vcf_stats_report.zip "$@"' > \
92
    /opt/deepvariant/bin/vcf_stats_report && \
93
  printf "%s\n%s\n" \
94
    "${BASH_HEADER}" \
95
    'python3 /opt/deepvariant/bin/show_examples.zip "$@"' > \
96
    /opt/deepvariant/bin/show_examples && \
97
  printf "%s\n%s\n" \
98
    "${BASH_HEADER}" \
99
    'python3 /opt/deepvariant/bin/runtime_by_region_vis.zip "$@"' > \
100
    /opt/deepvariant/bin/runtime_by_region_vis && \
101
  printf "%s\n%s\n" \
102
    "${BASH_HEADER}" \
103
    'python3 -u /opt/deepvariant/bin/deeptrio/run_deeptrio.py "$@"' > \
104
    /opt/deepvariant/bin/deeptrio/run_deeptrio && \
105
  chmod +x /opt/deepvariant/bin/deeptrio/make_examples \
106
    /opt/deepvariant/bin/call_variants \
107
    /opt/deepvariant/bin/postprocess_variants \
108
    /opt/deepvariant/bin/vcf_stats_report \
109
    /opt/deepvariant/bin/show_examples \
110
    /opt/deepvariant/bin/runtime_by_region_vis \
111
    /opt/deepvariant/bin/deeptrio/run_deeptrio
112
113
# Copy models
114
WORKDIR /opt/models/deeptrio/wgs/child
115
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wgs_child.savedmodel/fingerprint.pb .
116
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wgs_child.savedmodel/saved_model.pb .
117
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wgs_child.savedmodel/example_info.json .
118
WORKDIR /opt/models/deeptrio/wgs/child/variables
119
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wgs_child.savedmodel/variables/variables.data-00000-of-00001 .
120
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wgs_child.savedmodel/variables/variables.index .
121
RUN chmod -R +r /opt/models/deeptrio/wgs/child/*
122
123
WORKDIR /opt/models/deeptrio/wgs/parent
124
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wgs_parent.savedmodel/fingerprint.pb .
125
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wgs_parent.savedmodel/saved_model.pb .
126
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wgs_parent.savedmodel/example_info.json .
127
WORKDIR /opt/models/deeptrio/wgs/parent/variables
128
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wgs_parent.savedmodel/variables/variables.data-00000-of-00001 .
129
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wgs_parent.savedmodel/variables/variables.index .
130
RUN chmod -R +r /opt/models/deeptrio/wgs/parent/*
131
132
WORKDIR /opt/models/deeptrio/pacbio/child
133
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.pacbio_child.savedmodel/fingerprint.pb .
134
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.pacbio_child.savedmodel/saved_model.pb .
135
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.pacbio_child.savedmodel/example_info.json .
136
WORKDIR /opt/models/deeptrio/pacbio/child/variables
137
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.pacbio_child.savedmodel/variables/variables.data-00000-of-00001 .
138
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.pacbio_child.savedmodel/variables/variables.index .
139
RUN chmod -R +r /opt/models/deeptrio/pacbio/child/*
140
141
WORKDIR /opt/models/deeptrio/pacbio/parent
142
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.pacbio_parent.savedmodel/fingerprint.pb .
143
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.pacbio_parent.savedmodel/saved_model.pb .
144
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.pacbio_parent.savedmodel/example_info.json .
145
WORKDIR /opt/models/deeptrio/pacbio/parent/variables
146
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.pacbio_parent.savedmodel/variables/variables.data-00000-of-00001 .
147
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.pacbio_parent.savedmodel/variables/variables.index .
148
RUN chmod -R +r /opt/models/deeptrio/pacbio/parent/*
149
150
WORKDIR /opt/models/deeptrio/wes/child
151
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wes_child.savedmodel/fingerprint.pb .
152
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wes_child.savedmodel/saved_model.pb .
153
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wes_child.savedmodel/example_info.json .
154
WORKDIR /opt/models/deeptrio/wes/child/variables
155
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wes_child.savedmodel/variables/variables.data-00000-of-00001 .
156
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wes_child.savedmodel/variables/variables.index .
157
RUN chmod -R +r /opt/models/deeptrio/wes/child/*
158
159
WORKDIR /opt/models/deeptrio/wes/parent
160
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wes_parent.savedmodel/fingerprint.pb .
161
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wes_parent.savedmodel/saved_model.pb .
162
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wes_parent.savedmodel/example_info.json .
163
WORKDIR /opt/models/deeptrio/wes/parent/variables
164
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wes_parent.savedmodel/variables/variables.data-00000-of-00001 .
165
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.wes_parent.savedmodel/variables/variables.index .
166
RUN chmod -R +r /opt/models/deeptrio/wes/parent/*
167
168
WORKDIR /opt/models/deeptrio/ont/child
169
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.ont_child.savedmodel/fingerprint.pb .
170
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.ont_child.savedmodel/saved_model.pb .
171
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.ont_child.savedmodel/example_info.json .
172
WORKDIR /opt/models/deeptrio/ont/child/variables
173
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.ont_child.savedmodel/variables/variables.data-00000-of-00001 .
174
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.ont_child.savedmodel/variables/variables.index .
175
RUN chmod -R +r /opt/models/deeptrio/ont/child/*
176
177
WORKDIR /opt/models/deeptrio/ont/parent
178
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.ont_parent.savedmodel/fingerprint.pb .
179
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.ont_parent.savedmodel/saved_model.pb .
180
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.ont_parent.savedmodel/example_info.json .
181
WORKDIR /opt/models/deeptrio/ont/parent/variables
182
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.ont_parent.savedmodel/variables/variables.data-00000-of-00001 .
183
ADD https://storage.googleapis.com/deepvariant/models/DeepTrio/${VERSION_DEEPTRIO}/savedmodels/deeptrio.ont_parent.savedmodel/variables/variables.index .
184
RUN chmod -R +r /opt/models/deeptrio/ont/parent/*
185
186
ENV PATH="${PATH}":/opt/conda/bin:/opt/conda/envs/bio/bin:/opt/deepvariant/bin/deeptrio:/opt/deepvariant/bin
187
188
RUN apt-get -y update && \
189
  apt-get install -y parallel python3-pip && \
190
  PATH="${HOME}/.local/bin:$PATH" python3 -m pip install absl-py==0.13.0 && \
191
  apt-get clean autoclean && \
192
  apt-get autoremove -y --purge && \
193
  rm -rf /var/lib/apt/lists/*
194
195
196
WORKDIR /opt/deepvariant
197
198
CMD ["/opt/deepvariant/bin/deeptrio/run_deeptrio", "--help"]