google / deepvariant

DeepVariant is an analysis pipeline that uses a deep neural network to call genetic variants from next-generation DNA sequencing data.
BSD 3-Clause "New" or "Revised" License
3.18k stars 718 forks source link

google/deepvariant:1.6.1 docker says version 1.6.0 #830

Closed fellen31 closed 1 month ago

fellen31 commented 3 months ago

Have you checked the FAQ? https://github.com/google/deepvariant/blob/r1.6.1/docs/FAQ.md:

Describe the issue: When I check the version of google/deepvariant:1.6.1 it says 1.6.0, and the docker image has ENV VERSION=1.6.0

docker run google/deepvariant:1.6.1 /opt/deepvariant/bin/run_deepvariant --version
2024-06-13 12:25:30.001574: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 AVX512F AVX512_VNNI FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
DeepVariant version 1.6.0
kishwarshafin commented 3 months ago

@fellen31 ,

version 1.6.1 had a very small incremental change and the docker version was not updated. I can confirm that 1.6.1 docker has the code change required but the version update for printing the version wasn't changed. Is this a blocking issue for you? Otherwise we will update it the next version appropriately in the next release.

fellen31 commented 3 months ago

I'd say it's mostly because the VCF also says ##DeepVariant_version=1.6.0, which could be confusing. If it's not too much of a hassle to rebuild 1.6.1 and 1.6.1-gpu so they output the correct version, I think that would be great. Otherwise I could always refer to this issue.

pichuan commented 3 months ago

Hi @fellen31 ,

Thanks for the suggestion. For the official Docker file, we usually don't like to modify it after we push it. This is mostly for reproducibility concern. Even when we don't change everything else on our side, rebuilding at a later time can cause confusion if some other components (not in our control) has changed, and then might result in unexpected reproducibility differences.

A few possible solutions:

  1. We'll make sure to update the version number in future releases, and we'll be careful even with a PATCH version update. (But we'll do nothing right now)
  2. Or, if it's absolutely necessary for you to access a Docker under our Docker Hub and/or gcr.io, I can build one for you, but it will be called something like 1.6.1-fix-version (instead of overwriting the 1.6.1 images).

To do 2, it will take some time and effort on my side, but it's doable if it's important for you. Let me know!

fellen31 commented 3 months ago

Hi, sorry to be a bother. If it was just me that was going to use it I wouldn't care, but in this particular case it would be preferable to have a fix-version under your Docker Hub. If you could do it, I'd really appreciate it.

kishwarshafin commented 3 months ago

@fellen31 ,

The easiest solution here would be for you to downgrade to 1.6.0 as these two versions should generate identical outputs. The only fix is in call_variants in cases with empty shards which happens very rarely when you are running things broken into multiple steps. Unless you are experiencing the issue, you can continue using 1.6.0.

Please let us know if that solution doesn't work for you and we will build a docker for you, but, it may take some time so you may need to wait.

fellen31 commented 3 months ago

Sure @kishwarshafin, I'll try 1.6.0. If I would build the docker myself, is ARG VERSION=1.6.0 the only thing I would need to change from the current Dockerfile?

pichuan commented 3 months ago

Hi @fellen31 ,

That's right.

I checked the files. Only the ARG in Dockerfiles are relevant.

$ find . -type f -exec grep -H '1\.6\.0'  {} \; 
./scripts/inference_deeptrio.sh:  # --use_slim_model is introduced only after 1.6.0.
./scripts/inference_deepvariant.sh:  # --use_slim_model is introduced only after 1.6.0.
./Dockerfile.deeptrio:ARG VERSION_DEEPTRIO=1.6.0
./Dockerfile:ARG VERSION=1.6.0
./.git/packed-refs:6b167016a0e6b92ca5b492e2dac9000d97c8d3ee refs/tags/v1.6.0
./docs/FAQ.md:## Do models from before r1.6.0 work with current inference code?
./docs/FAQ.md:No. We have moved from Slim to Keras. All models before `1.6.0` were trained in
./docs/FAQ.md:Slim platform. So they are not compatible with `1.6.0` anymore.
./docs/deeptrio-details-training-data.md:1.6.0        | <sup>[(6)](#vfootnote6)</sup>4 HG001, 3 HG002, 3 HG003, 3 HG004, 7 HG005, 6 HG006, 6 HG007, 4 NA12891, 4 NA12892 | 704,394,556
./docs/deeptrio-details-training-data.md:1.6.0        | <sup>[(6)](#vfootnote6)</sup>2 HG001, 3 HG002, 3 HG003, 3 HG004, 7 HG005, 6 HG006, 6 HG007, 2 NA12891, 2 NA12892 | 457,420,038
./docs/deeptrio-details-training-data.md:| 1.6.0        | <sup>[(6)](#vfootnote6)</sup>9 HG001, 7 HG002, 7 HG003, 7 HG004, 8 HG005, 8 HG006, 8 HG007, 9 NA12891, 9 NA12892 | 27,783,324 |
./docs/deeptrio-details-training-data.md:| 1.6.0        | <sup>[(6)](#vfootnote6)</sup>6 HG002, 6 HG003, 6 HG004, 8 HG005, 8 HG006, 8 HG007 | 13,039,595  |
./docs/deeptrio-details-training-data.md:| 1.6.0        | 9 HG002, 5 HG003, 5 HG004, 1 HG005, 1 HG006, 1 HG007 | 890,016,014<sup>[(5)](#vfootnote5)</sup> |
./docs/deeptrio-details-training-data.md:| 1.6.0        | 9 HG002, 5 HG003, 5 HG004, 1 HG005, 1 HG006, 1 HG007 | 838,515,085<sup>[(5)](#vfootnote5)</sup> |
./docs/deeptrio-details-training-data.md:| 1.6.0        | 1 HG002, 1 HG002, 1 HG004 | 50,249,704<sup>[(5)](#vfootnote5)</sup> |
./docs/deeptrio-details-training-data.md:| 1.6.0        | 1 HG002, 1 HG002, 1 HG004 | 99,675,190<sup>[(5)](#vfootnote5)</sup> |
./deeptrio/testdata/golden.calling_examples.tfrecord.gz-00002-of-00003.example_info.json:{"version": "1.6.0", "shape": [300, 221, 6], "channels": [1, 2, 3, 4, 5, 6]}
./deeptrio/testdata/HG002_ONT_deeptrio.denovo.examples.tfrecord.gz.example_info.json:{"version": "1.6.0", "shape": [300, 199, 9], "channels": [1, 2, 3, 4, 5, 6, 7, 9, 10]}
./deeptrio/testdata/customized_classes.golden.training_examples.tfrecord.gz.example_info.json:{"version": "1.6.0", "shape": [300, 221, 6], "channels": [1, 2, 3, 4, 5, 6]}
./deeptrio/testdata/golden.calling_examples.tfrecord.gz.example_info.json:{"version": "1.6.0", "shape": [300, 221, 6], "channels": [1, 2, 3, 4, 5, 6]}
./deeptrio/testdata/golden.postprocess_gvcf_output.g.vcf:##DeepVariant_version=1.6.0
./deeptrio/testdata/golden.training_examples.tfrecord.gz-00002-of-00003.example_info.json:{"version": "1.6.0", "shape": [300, 221, 6], "channels": [1, 2, 3, 4, 5, 6]}
./deeptrio/testdata/golden.vcf_candidate_importer.calling_examples.tfrecord.gz.example_info.json:{"version": "1.6.0", "shape": [140, 221, 6], "channels": [1, 2, 3, 4, 5, 6]}
./deeptrio/testdata/golden.calling_examples.tfrecord.gz-00000-of-00003.example_info.json:{"version": "1.6.0", "shape": [300, 221, 6], "channels": [1, 2, 3, 4, 5, 6]}
./deeptrio/testdata/golden.calling_examples.tfrecord.gz-00001-of-00003.example_info.json:{"version": "1.6.0", "shape": [300, 221, 6], "channels": [1, 2, 3, 4, 5, 6]}
./deeptrio/testdata/golden.postprocess_single_site_output.vcf:##DeepVariant_version=1.6.0
./deeptrio/testdata/golden.training_examples.vcf:##DeepVariant_version=1.6.0
./deeptrio/testdata/HG002_ONT_deeptrio.examples.tfrecord.gz.example_info.json:{"version": "1.6.0", "shape": [300, 199, 9], "channels": [1, 2, 3, 4, 5, 6, 7, 9, 10]}
./deeptrio/testdata/golden.vcf_candidate_importer.training_examples.tfrecord.gz.example_info.json:{"version": "1.6.0", "shape": [140, 221, 6], "channels": [1, 2, 3, 4, 5, 6]}
./deeptrio/testdata/alt_aligned_pileup.golden.training_examples.tfrecord.gz.example_info.json:{"version": "1.6.0", "shape": [140, 199, 8], "channels": [1, 2, 3, 4, 5, 6, 9, 10]}
./deeptrio/testdata/golden.training_examples.tfrecord.gz-00000-of-00003.example_info.json:{"version": "1.6.0", "shape": [300, 221, 6], "channels": [1, 2, 3, 4, 5, 6]}
./deeptrio/testdata/golden.training_examples.tfrecord.gz.example_info.json:{"version": "1.6.0", "shape": [300, 221, 6], "channels": [1, 2, 3, 4, 5, 6]}
./deeptrio/testdata/golden.training_examples.tfrecord.gz-00001-of-00003.example_info.json:{"version": "1.6.0", "shape": [300, 221, 6], "channels": [1, 2, 3, 4, 5, 6]}
./Dockerfile.deepsomatic:ARG VERSION_DEEPSOMATIC=1.6.0
./deepvariant/testdata/golden.vcf_candidate_importer_calling_examples.tfrecord.example_info.json:{"version": "1.6.0", "shape": [100, 221, 6], "channels": [1, 2, 3, 4, 5, 6]}