Skip to content

Instantly share code, notes, and snippets.

@vsoch
Created March 3, 2018 14:57
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save vsoch/c015107af881086a8b5345e40441f4f3 to your computer and use it in GitHub Desktop.
Save vsoch/c015107af881086a8b5345e40441f4f3 to your computer and use it in GitHub Desktop.
A DeepVariant image for Singularity, reliant on a localimage pull of layers first
Bootstrap: localimage
From: /home/vanessa/.singularity/shub/deepvariant-docker-deepvariant:0.5.0.simg
# sregistry get gcr.io/deepvariant-docker/deepvariant:0.5.0
# sudo singularity build deepvariant Singularity
%environment
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DV_GPU_BUILD=0
export PATH DV_GPU_BUILD
%apprun download_testdata
mkdir input
wget https://storage.googleapis.com/deepvariant/quickstart-testdata/NA12878_S1.chr20.10_10p1mb.bam -P input
wget https://storage.googleapis.com/deepvariant/quickstart-testdata/NA12878_S1.chr20.10_10p1mb.bam.bai -P input
wget https://storage.googleapis.com/deepvariant/quickstart-testdata/test_nist.b37_chr20_100kbp_at_10mb.bed -P input
wget https://storage.googleapis.com/deepvariant/quickstart-testdata/test_nist.b37_chr20_100kbp_at_10mb.vcf.gz -P input
wget https://storage.googleapis.com/deepvariant/quickstart-testdata/test_nist.b37_chr20_100kbp_at_10mb.vcf.gz.tbi -P input
wget https://storage.googleapis.com/deepvariant/quickstart-testdata/ucsc.hg19.chr20.unittest.fasta -P input
wget https://storage.googleapis.com/deepvariant/quickstart-testdata/ucsc.hg19.chr20.unittest.fasta.fai -P input
wget https://storage.googleapis.com/deepvariant/quickstart-testdata/ucsc.hg19.chr20.unittest.fasta.gz -P input
wget https://storage.googleapis.com/deepvariant/quickstart-testdata/ucsc.hg19.chr20.unittest.fasta.gz.fai -P input
wget https://storage.googleapis.com/deepvariant/quickstart-testdata/ucsc.hg19.chr20.unittest.fasta.gz.gzi -P input
%apprun download_models
mkdir models
wget https://storage.googleapis.com/deepvariant/models/DeepVariant/0.5.0/DeepVariant-inception_v3-0.5.0%2Bcl-182548131.data-wgs_standard/model.ckpt.data-00000-of-00001 -P models
wget https://storage.googleapis.com/deepvariant/models/DeepVariant/0.5.0/DeepVariant-inception_v3-0.5.0%2Bcl-182548131.data-wgs_standard/model.ckpt.index -P models
wget https://storage.googleapis.com/deepvariant/models/DeepVariant/0.5.0/DeepVariant-inception_v3-0.5.0%2Bcl-182548131.data-wgs_standard/model.ckpt.meta -P models
%apprun make_examples
exec /opt/deepvariant/bin/make_examples \
--mode calling \
--ref /dv2/input/ucsc.hg19.chr20.unittest.fasta.gz \
--reads /dv2/input/NA12878_S1.chr20.10_10p1mb.bam \
--examples output.examples.tfrecord \
--regions "chr20:10,000,000-10,010,000"
%apprun call_variants
exec /opt/deepvariant/bin/call_variants \
--outfile call_variants_output.tfrecord \
--examples output.examples.tfrecord \
--checkpoint /dv2/models/model.ckpt
%apprun postprocess_variants
exec /opt/deepvariant/bin/postprocess_variants \
--ref /dv2/input/ucsc.hg19.chr20.unittest.fasta.gz \
--infile call_variants_output.tfrecord \
--outfile output.vcf
%runscript
if [ $# -eq 0 ]; then
echo '''Example Usage:
# download data to input and models
singularity run --app download_testdata deepvariant
singularity run --app download_models deepvariant
# make the examples, mapping inputs
singularity run --bind input:/dv2/input/ --app make_examples deepvariant
# call variants, mapping models
singularity run --bind models:/dv2/models/ --app call_variants deepvariant
# postprocess variants
singularity run --bind input:/dv2/input/ --app postprocess_variants deepvariant
# https://github.com/google/deepvariant/blob/master/docs/deepvariant-docker.md
'''
else
exec "$@"
fi
%post
apt-get install -y wget
# https://github.com/google/deepvariant/blob/r0.5/deepvariant/docker/Dockerfile
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 && \
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment