From fa266d04338f28d29aedda843fc6c45e5c1c9036 Mon Sep 17 00:00:00 2001 From: gbggrant Date: Thu, 11 Apr 2024 15:37:45 -0400 Subject: [PATCH 1/6] Change extract so that when we filter at the genotype level (with FT) the VCF header has the filter definition in the FORMAT field. Also minor renaming of ExtractCohort argument. --- .dockstore.yml | 3 ++ .../gvs/common/FilterSensitivityTools.java | 13 +++++++- .../tools/gvs/extract/ExtractCohort.java | 33 ++++++++++++++----- .../common/FilterSensitivityToolsTest.java | 4 +-- .../gvs/extract/ExtractCohortToPgenTest.java | 8 ++--- .../gvs/extract/ExtractCohortToVcfTest.java | 8 ++--- 6 files changed, 50 insertions(+), 19 deletions(-) diff --git a/.dockstore.yml b/.dockstore.yml index cd3d8905c90..fc163142dfb 100644 --- a/.dockstore.yml +++ b/.dockstore.yml @@ -288,6 +288,7 @@ workflows: branches: - master - ah_var_store + - gg_VS-1336_ItsNotASiteFilter tags: - /.*/ - name: GvsQuickstartHailIntegration @@ -297,6 +298,7 @@ workflows: branches: - master - ah_var_store + - gg_VS-1336_ItsNotASiteFilter tags: - /.*/ - name: GvsQuickstartIntegration @@ -307,6 +309,7 @@ workflows: - master - ah_var_store - rsa_vs_1328 + - gg_VS-1336_ItsNotASiteFilter tags: - /.*/ - name: GvsIngestTieout diff --git a/src/main/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityTools.java b/src/main/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityTools.java index b4231fd62b2..57937559ec3 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityTools.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityTools.java @@ -1,7 +1,9 @@ package org.broadinstitute.hellbender.tools.gvs.common; import htsjdk.variant.vcf.VCFFilterHeaderLine; +import htsjdk.variant.vcf.VCFFormatHeaderLine; import htsjdk.variant.vcf.VCFHeaderLine; +import htsjdk.variant.vcf.VCFHeaderLineType; import org.apache.avro.generic.GenericRecord; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -123,11 +125,20 @@ public static VCFHeaderLine getVqsLodHeader(Double vqsLodThreshold, String model "Site failed " + model + " model VQSLOD cutoff of " + vqsLodThreshold.toString()); } - public static VCFHeaderLine getTruthSensitivityHeader(Double truthSensitivityThreshold, Double vqsLodThreshold, String model) { + public static VCFHeaderLine getTruthSensitivityFilterHeader(Double truthSensitivityThreshold, Double vqsLodThreshold, String model) { if (truthSensitivityThreshold == null) { // at this point, we know that all vqsr threshold inputs are null, so use defaults truthSensitivityThreshold = GATKVCFConstants.SNP.contains(model) ? DEFAULT_TRUTH_SENSITIVITY_THRESHOLD_SNPS : DEFAULT_TRUTH_SENSITIVITY_THRESHOLD_INDELS; } return new VCFFilterHeaderLine(GATKVCFConstants.VQSR_FAILURE_PREFIX + model, "Site failed " + model + " model sensitivity cutoff (" + truthSensitivityThreshold + "), corresponding with VQSLOD cutoff of " + vqsLodThreshold.toString()); } + + public static VCFHeaderLine getTruthSensitivityFormatHeader(Double truthSensitivityThreshold, Double vqsLodThreshold, String model) { + if (truthSensitivityThreshold == null) { // at this point, we know that all vqsr threshold inputs are null, so use defaults + truthSensitivityThreshold = GATKVCFConstants.SNP.contains(model) ? DEFAULT_TRUTH_SENSITIVITY_THRESHOLD_SNPS : DEFAULT_TRUTH_SENSITIVITY_THRESHOLD_INDELS; + } + return new VCFFormatHeaderLine(GATKVCFConstants.VQSR_FAILURE_PREFIX + model, 1, VCFHeaderLineType.String, + "Genotyped Allele failed " + model + " model sensitivity cutoff (" + truthSensitivityThreshold + "), corresponding with VQSLOD cutoff of " + vqsLodThreshold.toString()); + } + } diff --git a/src/main/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohort.java b/src/main/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohort.java index 1206fc77f24..c6d985f73e8 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohort.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohort.java @@ -129,8 +129,8 @@ public enum VQScoreFilteringType {GENOTYPE, SITES, NONE} private boolean isVQSRClassic = false; @Argument( - fullName = "vqsr-score-filter-by-site", - doc = "If VQSR Score filtering is applied, it should be at a site level. Default is false", + fullName = "vq-score-filter-by-site", + doc = "If Variant Quality Score filtering (either VETS or VQSR) is applied, it should be at a site level. Default is false", optional = true ) private boolean performSiteSpecificVQScoreFiltering = false; @@ -318,8 +318,15 @@ protected void onStartup() { vqsLodSNPThreshold = FilterSensitivityTools.getVqslodThreshold(trancheMaps.get(GATKVCFConstants.SNP), truthSensitivitySNPThreshold, GATKVCFConstants.SNP); vqsLodINDELThreshold = FilterSensitivityTools.getVqslodThreshold(trancheMaps.get(GATKVCFConstants.INDEL), truthSensitivityINDELThreshold, GATKVCFConstants.INDEL); // set headers - extraHeaderLines.add(FilterSensitivityTools.getTruthSensitivityHeader(truthSensitivitySNPThreshold, vqsLodSNPThreshold, GATKVCFConstants.SNP)); - extraHeaderLines.add(FilterSensitivityTools.getTruthSensitivityHeader(truthSensitivityINDELThreshold, vqsLodINDELThreshold, GATKVCFConstants.INDEL)); + + if (vqScoreFilteringType.equals(VQScoreFilteringType.SITES)) { + extraHeaderLines.add(FilterSensitivityTools.getTruthSensitivityFilterHeader(truthSensitivitySNPThreshold, vqsLodSNPThreshold, GATKVCFConstants.SNP)); + extraHeaderLines.add(FilterSensitivityTools.getTruthSensitivityFilterHeader(truthSensitivityINDELThreshold, vqsLodINDELThreshold, GATKVCFConstants.INDEL)); + } + else if (vqScoreFilteringType.equals(VQScoreFilteringType.GENOTYPE)) { + extraHeaderLines.add(FilterSensitivityTools.getTruthSensitivityFormatHeader(truthSensitivitySNPThreshold, vqsLodSNPThreshold, GATKVCFConstants.SNP)); + extraHeaderLines.add(FilterSensitivityTools.getTruthSensitivityFormatHeader(truthSensitivityINDELThreshold, vqsLodINDELThreshold, GATKVCFConstants.INDEL)); + } } } else { extraHeaderLines.add(GATKVCFHeaderLines.getInfoLine(GATKVCFConstants.SCORE_KEY)); @@ -336,10 +343,20 @@ protected void onStartup() { truthSensitivityINDELThreshold /= 100.0; logger.info("Passing all INDEL variants with " + GATKVCFConstants.CALIBRATION_SENSITIVITY_KEY + " < " + truthSensitivityINDELThreshold); - extraHeaderLines.add(new VCFFilterHeaderLine(GATKVCFConstants.CALIBRATION_SENSITIVITY_FAILURE_SNP, - "Site failed SNP model calibration sensitivity cutoff (" + truthSensitivitySNPThreshold.toString() + ")")); - extraHeaderLines.add(new VCFFilterHeaderLine(GATKVCFConstants.CALIBRATION_SENSITIVITY_FAILURE_INDEL, - "Site failed INDEL model calibration sensitivity cutoff (" + truthSensitivityINDELThreshold.toString() + ")")); + if (vqScoreFilteringType.equals(VQScoreFilteringType.SITES)) { + extraHeaderLines.add(new VCFFilterHeaderLine(GATKVCFConstants.CALIBRATION_SENSITIVITY_FAILURE_SNP, + "Site failed SNP model calibration sensitivity cutoff (" + truthSensitivitySNPThreshold.toString() + ")")); + extraHeaderLines.add(new VCFFilterHeaderLine(GATKVCFConstants.CALIBRATION_SENSITIVITY_FAILURE_INDEL, + "Site failed INDEL model calibration sensitivity cutoff (" + truthSensitivityINDELThreshold.toString() + ")")); + } + else if (vqScoreFilteringType.equals(VQScoreFilteringType.GENOTYPE)) { + extraHeaderLines.add(new VCFFormatHeaderLine(GATKVCFConstants.CALIBRATION_SENSITIVITY_FAILURE_SNP, 1, + VCFHeaderLineType.String, + "Genotyped Allele failed SNP model calibration sensitivity cutoff (" + truthSensitivitySNPThreshold.toString() + ")")); + extraHeaderLines.add(new VCFFormatHeaderLine(GATKVCFConstants.CALIBRATION_SENSITIVITY_FAILURE_INDEL, 1, + VCFHeaderLineType.String, + "Genotyped Allele failed INDEL model calibration sensitivity cutoff (" + truthSensitivityINDELThreshold.toString() + ")")); + } } } diff --git a/src/test/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityToolsTest.java b/src/test/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityToolsTest.java index 2aa1952c39d..de2477eda43 100644 --- a/src/test/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityToolsTest.java +++ b/src/test/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityToolsTest.java @@ -211,7 +211,7 @@ public void testGetTruthSensitivityHeaderSNP() { VCFFilterHeaderLine expectedHeader = new VCFFilterHeaderLine(GATKVCFConstants.VQSR_FAILURE_PREFIX + model, "Site failed SNP model sensitivity cutoff (90.0), corresponding with VQSLOD cutoff of 0.0"); - assertEquals(getTruthSensitivityHeader(truthSensitivityThreshold, vqsLodThreshold, GATKVCFConstants.SNP), expectedHeader); + assertEquals(getTruthSensitivityFilterHeader(truthSensitivityThreshold, vqsLodThreshold, GATKVCFConstants.SNP), expectedHeader); } @Test @@ -222,7 +222,7 @@ public void testGetTruthSensitivityHeaderINDEL() { VCFFilterHeaderLine expectedHeader = new VCFFilterHeaderLine(GATKVCFConstants.VQSR_FAILURE_PREFIX + model, "Site failed INDEL model sensitivity cutoff (90.0), corresponding with VQSLOD cutoff of 0.0"); - assertEquals(getTruthSensitivityHeader(truthSensitivityThreshold, vqsLodThreshold, GATKVCFConstants.INDEL), expectedHeader); + assertEquals(getTruthSensitivityFilterHeader(truthSensitivityThreshold, vqsLodThreshold, GATKVCFConstants.INDEL), expectedHeader); } } diff --git a/src/test/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohortToPgenTest.java b/src/test/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohortToPgenTest.java index 60baa9271ff..9afe89b14a4 100644 --- a/src/test/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohortToPgenTest.java +++ b/src/test/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohortToPgenTest.java @@ -375,7 +375,7 @@ public void testNoFilteringThresholdsErrorVQSRLite() throws Exception { .add("sample-file", quickstartSampleListFile) .add("emit-pls", false) .add("filter-set-info-table", "foo") - .add("vqsr-score-filter-by-site", true) + .add("vq-score-filter-by-site", true) .add("pgen-chromosome-code", "chrM"); runCommandLine(args); } @@ -393,7 +393,7 @@ public void testNoFilteringThresholdsErrorVQSRClassic() throws Exception { .add("sample-file", quickstartSampleListFile) .add("emit-pls", false) .add("filter-set-info-table", "foo") - .add("vqsr-score-filter-by-site", true) + .add("vq-score-filter-by-site", true) .add("pgen-chromosome-code", "chrM"); runCommandLine(args); } @@ -412,7 +412,7 @@ public void testFakeFilteringErrorVQSRLite() throws Exception { .add("sample-file", quickstartSampleListFile) .add("emit-pls", false) .add("filter-set-name", "foo") - .add("vqsr-score-filter-by-site", true) + .add("vq-score-filter-by-site", true) .add("pgen-chromosome-code", "chrM"); runCommandLine(args); } @@ -432,7 +432,7 @@ public void testFakeFilteringErrorVQSRClassic() throws Exception { .add("sample-file", quickstartSampleListFile) .add("emit-pls", false) .add("filter-set-name", "foo") - .add("vqsr-score-filter-by-site", true) + .add("vq-score-filter-by-site", true) .add("pgen-chromosome-code", "chrM"); runCommandLine(args); } diff --git a/src/test/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohortToVcfTest.java b/src/test/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohortToVcfTest.java index 939bcb8f6ff..dd35327b66b 100644 --- a/src/test/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohortToVcfTest.java +++ b/src/test/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohortToVcfTest.java @@ -152,7 +152,7 @@ public void testNoFilteringThresholdsErrorVQSRLite() throws Exception { .add("sample-file", quickstartSampleListFile) .add("emit-pls", false) .add("filter-set-info-table", "foo") - .add("vqsr-score-filter-by-site", true); + .add("vq-score-filter-by-site", true); runCommandLine(args); } @Test(expectedExceptions = UserException.class) @@ -169,7 +169,7 @@ public void testNoFilteringThresholdsErrorVQSRClassic() throws Exception { .add("sample-file", quickstartSampleListFile) .add("emit-pls", false) .add("filter-set-info-table", "foo") - .add("vqsr-score-filter-by-site", true); + .add("vq-score-filter-by-site", true); runCommandLine(args); } @@ -187,7 +187,7 @@ public void testFakeFilteringErrorVQSRLite() throws Exception { .add("sample-file", quickstartSampleListFile) .add("emit-pls", false) .add("filter-set-name", "foo") - .add("vqsr-score-filter-by-site", true); + .add("vq-score-filter-by-site", true); runCommandLine(args); } @@ -206,7 +206,7 @@ public void testFakeFilteringErrorVQSRClassic() throws Exception { .add("sample-file", quickstartSampleListFile) .add("emit-pls", false) .add("filter-set-name", "foo") - .add("vqsr-score-filter-by-site", true); + .add("vq-score-filter-by-site", true); runCommandLine(args); } } From 138f3fd9130d004f1b3f0ab7b4b0b2aa2d485992 Mon Sep 17 00:00:00 2001 From: gbggrant Date: Thu, 9 May 2024 09:27:36 -0400 Subject: [PATCH 2/6] Change it to an unstructured header line --- .../tools/gvs/common/FilterSensitivityTools.java | 8 +++----- .../tools/gvs/extract/ExtractCohort.java | 16 +++++++--------- .../gvs/common/FilterSensitivityToolsTest.java | 10 +++++----- 3 files changed, 15 insertions(+), 19 deletions(-) diff --git a/src/main/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityTools.java b/src/main/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityTools.java index 57937559ec3..1f57faa1cfe 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityTools.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityTools.java @@ -1,9 +1,7 @@ package org.broadinstitute.hellbender.tools.gvs.common; import htsjdk.variant.vcf.VCFFilterHeaderLine; -import htsjdk.variant.vcf.VCFFormatHeaderLine; import htsjdk.variant.vcf.VCFHeaderLine; -import htsjdk.variant.vcf.VCFHeaderLineType; import org.apache.avro.generic.GenericRecord; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -133,12 +131,12 @@ public static VCFHeaderLine getTruthSensitivityFilterHeader(Double truthSensitiv "Site failed " + model + " model sensitivity cutoff (" + truthSensitivityThreshold + "), corresponding with VQSLOD cutoff of " + vqsLodThreshold.toString()); } - public static VCFHeaderLine getTruthSensitivityFormatHeader(Double truthSensitivityThreshold, Double vqsLodThreshold, String model) { + public static VCFHeaderLine getTruthSensitivityHeader(Double truthSensitivityThreshold, Double vqsLodThreshold, String model) { if (truthSensitivityThreshold == null) { // at this point, we know that all vqsr threshold inputs are null, so use defaults truthSensitivityThreshold = GATKVCFConstants.SNP.contains(model) ? DEFAULT_TRUTH_SENSITIVITY_THRESHOLD_SNPS : DEFAULT_TRUTH_SENSITIVITY_THRESHOLD_INDELS; } - return new VCFFormatHeaderLine(GATKVCFConstants.VQSR_FAILURE_PREFIX + model, 1, VCFHeaderLineType.String, - "Genotyped Allele failed " + model + " model sensitivity cutoff (" + truthSensitivityThreshold + "), corresponding with VQSLOD cutoff of " + vqsLodThreshold.toString()); + return new VCFHeaderLine(GATKVCFConstants.VQSR_FAILURE_PREFIX + model, + "Sample Genotype FT filter value indicating that the Genotyped Allele failed " + model + " model sensitivity cutoff (" + truthSensitivityThreshold + "), corresponding with VQSLOD cutoff of " + vqsLodThreshold.toString()); } } diff --git a/src/main/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohort.java b/src/main/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohort.java index 4e35949840d..729bc65dc77 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohort.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohort.java @@ -346,8 +346,8 @@ protected void onStartup() { extraHeaderLines.add(FilterSensitivityTools.getTruthSensitivityFilterHeader(truthSensitivityINDELThreshold, vqsLodINDELThreshold, GATKVCFConstants.INDEL)); } else if (vqScoreFilteringType.equals(VQScoreFilteringType.GENOTYPE)) { - extraHeaderLines.add(FilterSensitivityTools.getTruthSensitivityFormatHeader(truthSensitivitySNPThreshold, vqsLodSNPThreshold, GATKVCFConstants.SNP)); - extraHeaderLines.add(FilterSensitivityTools.getTruthSensitivityFormatHeader(truthSensitivityINDELThreshold, vqsLodINDELThreshold, GATKVCFConstants.INDEL)); + extraHeaderLines.add(FilterSensitivityTools.getTruthSensitivityHeader(truthSensitivitySNPThreshold, vqsLodSNPThreshold, GATKVCFConstants.SNP)); + extraHeaderLines.add(FilterSensitivityTools.getTruthSensitivityHeader(truthSensitivityINDELThreshold, vqsLodINDELThreshold, GATKVCFConstants.INDEL)); } } } else { @@ -372,18 +372,16 @@ else if (vqScoreFilteringType.equals(VQScoreFilteringType.GENOTYPE)) { "Site failed INDEL model calibration sensitivity cutoff (" + truthSensitivityINDELThreshold.toString() + ")")); } else if (vqScoreFilteringType.equals(VQScoreFilteringType.GENOTYPE)) { - extraHeaderLines.add(new VCFFormatHeaderLine(GATKVCFConstants.CALIBRATION_SENSITIVITY_FAILURE_SNP, 1, - VCFHeaderLineType.String, - "Genotyped Allele failed SNP model calibration sensitivity cutoff (" + truthSensitivitySNPThreshold.toString() + ")")); - extraHeaderLines.add(new VCFFormatHeaderLine(GATKVCFConstants.CALIBRATION_SENSITIVITY_FAILURE_INDEL, 1, - VCFHeaderLineType.String, - "Genotyped Allele failed INDEL model calibration sensitivity cutoff (" + truthSensitivityINDELThreshold.toString() + ")")); + extraHeaderLines.add(new VCFHeaderLine(GATKVCFConstants.CALIBRATION_SENSITIVITY_FAILURE_SNP, + "Sample Genotype FT filter value indicating that the Genotyped Allele failed SNP model calibration sensitivity cutoff (" + truthSensitivitySNPThreshold.toString() + ")")); + extraHeaderLines.add(new VCFHeaderLine(GATKVCFConstants.CALIBRATION_SENSITIVITY_FAILURE_INDEL, + "Sample Genotype FT filter value indicating that the Genotyped Allele failed INDEL model calibration sensitivity cutoff (" + truthSensitivityINDELThreshold.toString() + ")")); } } } if (vqScoreFilteringType.equals(VQScoreFilteringType.GENOTYPE)) { - extraHeaderLines.add(new VCFFormatHeaderLine("FT", 1, VCFHeaderLineType.String, "Genotype Filter Field")); + extraHeaderLines.add(new VCFFormatHeaderLine("FT", 1, VCFHeaderLineType.String, "Sample Genotype Filter Field")); } if (emitPLs) { diff --git a/src/test/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityToolsTest.java b/src/test/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityToolsTest.java index de2477eda43..e022c883970 100644 --- a/src/test/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityToolsTest.java +++ b/src/test/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityToolsTest.java @@ -15,12 +15,12 @@ public class FilterSensitivityToolsTest { // for testing inputs - private Double definedDoubleInput = 0.0; - private Double undefinedDoubleInput = null; - private String definedStringInput = "I'm defined!"; - private String undefinedStringInput = null; + private final Double definedDoubleInput = 0.0; + private final Double undefinedDoubleInput = null; + private final String definedStringInput = "I'm defined!"; + private final String undefinedStringInput = null; - private Map testTrancheMap = new TreeMap<>(); + private final Map testTrancheMap = new TreeMap<>(); @BeforeMethod public void setUp() { From 03e936f603207c32f22168fa1b8bf5fb81c451f5 Mon Sep 17 00:00:00 2001 From: gbggrant Date: Thu, 9 May 2024 18:30:24 -0400 Subject: [PATCH 3/6] Update to the new docker --- scripts/variantstore/wdl/GvsUtils.wdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/variantstore/wdl/GvsUtils.wdl b/scripts/variantstore/wdl/GvsUtils.wdl index bfb1b47aff7..fe31609aacd 100644 --- a/scripts/variantstore/wdl/GvsUtils.wdl +++ b/scripts/variantstore/wdl/GvsUtils.wdl @@ -74,7 +74,7 @@ task GetToolVersions { String cloud_sdk_slim_docker = "gcr.io/google.com/cloudsdktool/cloud-sdk:435.0.0-slim" String variants_docker = "us-central1-docker.pkg.dev/broad-dsde-methods/gvs/variants:2024-04-22-alpine-32804b134a75" String variants_nirvana_docker = "us.gcr.io/broad-dsde-methods/variantstore:nirvana_2022_10_19" - String gatk_docker = "us-central1-docker.pkg.dev/broad-dsde-methods/gvs/gatk:2024-05-01-gatkbase-617d4d1c7f64" + String gatk_docker = "us-central1-docker.pkg.dev/broad-dsde-methods/gvs/gatk:2024-05-09-gatkbase-87366d303059" String real_time_genomics_docker = "docker.io/realtimegenomics/rtg-tools:latest" String gotc_imputation_docker = "us.gcr.io/broad-gotc-prod/imputation-bcf-vcf:1.0.5-1.10.2-0.1.16-1649948623" String plink_docker = "us-central1-docker.pkg.dev/broad-dsde-methods/gvs/plink2:2024-04-23-slim-a0a65f52cc0e" From 572109ef33d60474b078bf3c3d12102ef486476a Mon Sep 17 00:00:00 2001 From: gbggrant Date: Fri, 10 May 2024 11:02:37 -0400 Subject: [PATCH 4/6] Update description of FT filter. --- .../hellbender/tools/gvs/common/FilterSensitivityTools.java | 2 +- .../hellbender/tools/gvs/extract/ExtractCohort.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityTools.java b/src/main/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityTools.java index 1f57faa1cfe..33ebcd0f659 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityTools.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/gvs/common/FilterSensitivityTools.java @@ -136,7 +136,7 @@ public static VCFHeaderLine getTruthSensitivityHeader(Double truthSensitivityThr truthSensitivityThreshold = GATKVCFConstants.SNP.contains(model) ? DEFAULT_TRUTH_SENSITIVITY_THRESHOLD_SNPS : DEFAULT_TRUTH_SENSITIVITY_THRESHOLD_INDELS; } return new VCFHeaderLine(GATKVCFConstants.VQSR_FAILURE_PREFIX + model, - "Sample Genotype FT filter value indicating that the Genotyped Allele failed " + model + " model sensitivity cutoff (" + truthSensitivityThreshold + "), corresponding with VQSLOD cutoff of " + vqsLodThreshold.toString()); + "Sample Genotype FT filter value indicating that the genotyped allele failed " + model + " model sensitivity cutoff (" + truthSensitivityThreshold + "), corresponding with VQSLOD cutoff of " + vqsLodThreshold.toString()); } } diff --git a/src/main/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohort.java b/src/main/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohort.java index 729bc65dc77..1d229cac483 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohort.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/gvs/extract/ExtractCohort.java @@ -373,9 +373,9 @@ else if (vqScoreFilteringType.equals(VQScoreFilteringType.GENOTYPE)) { } else if (vqScoreFilteringType.equals(VQScoreFilteringType.GENOTYPE)) { extraHeaderLines.add(new VCFHeaderLine(GATKVCFConstants.CALIBRATION_SENSITIVITY_FAILURE_SNP, - "Sample Genotype FT filter value indicating that the Genotyped Allele failed SNP model calibration sensitivity cutoff (" + truthSensitivitySNPThreshold.toString() + ")")); + "Sample Genotype FT filter value indicating that the genotyped allele failed SNP model calibration sensitivity cutoff (" + truthSensitivitySNPThreshold.toString() + ")")); extraHeaderLines.add(new VCFHeaderLine(GATKVCFConstants.CALIBRATION_SENSITIVITY_FAILURE_INDEL, - "Sample Genotype FT filter value indicating that the Genotyped Allele failed INDEL model calibration sensitivity cutoff (" + truthSensitivityINDELThreshold.toString() + ")")); + "Sample Genotype FT filter value indicating that the genotyped allele failed INDEL model calibration sensitivity cutoff (" + truthSensitivityINDELThreshold.toString() + ")")); } } } From 318edf90a372c34fd1a0d8c7e0cc7afa254834f6 Mon Sep 17 00:00:00 2001 From: gbggrant Date: Fri, 10 May 2024 13:14:52 -0400 Subject: [PATCH 5/6] Update the docker --- scripts/variantstore/wdl/GvsUtils.wdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/variantstore/wdl/GvsUtils.wdl b/scripts/variantstore/wdl/GvsUtils.wdl index fe31609aacd..988be2647b4 100644 --- a/scripts/variantstore/wdl/GvsUtils.wdl +++ b/scripts/variantstore/wdl/GvsUtils.wdl @@ -74,7 +74,7 @@ task GetToolVersions { String cloud_sdk_slim_docker = "gcr.io/google.com/cloudsdktool/cloud-sdk:435.0.0-slim" String variants_docker = "us-central1-docker.pkg.dev/broad-dsde-methods/gvs/variants:2024-04-22-alpine-32804b134a75" String variants_nirvana_docker = "us.gcr.io/broad-dsde-methods/variantstore:nirvana_2022_10_19" - String gatk_docker = "us-central1-docker.pkg.dev/broad-dsde-methods/gvs/gatk:2024-05-09-gatkbase-87366d303059" + String gatk_docker = "us-central1-docker.pkg.dev/broad-dsde-methods/gvs/gatk:2024_05_10-gatkbase-9bd39afc04ae" String real_time_genomics_docker = "docker.io/realtimegenomics/rtg-tools:latest" String gotc_imputation_docker = "us.gcr.io/broad-gotc-prod/imputation-bcf-vcf:1.0.5-1.10.2-0.1.16-1649948623" String plink_docker = "us-central1-docker.pkg.dev/broad-dsde-methods/gvs/plink2:2024-04-23-slim-a0a65f52cc0e" From 68d52171324e3f4ec41a8cded4240f5e2e354c4e Mon Sep 17 00:00:00 2001 From: gbggrant Date: Mon, 13 May 2024 21:58:15 -0400 Subject: [PATCH 6/6] Point to updated truth. --- scripts/variantstore/wdl/GvsQuickstartIntegration.wdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/variantstore/wdl/GvsQuickstartIntegration.wdl b/scripts/variantstore/wdl/GvsQuickstartIntegration.wdl index f038ae69b5b..8103d01b145 100644 --- a/scripts/variantstore/wdl/GvsQuickstartIntegration.wdl +++ b/scripts/variantstore/wdl/GvsQuickstartIntegration.wdl @@ -34,7 +34,7 @@ workflow GvsQuickstartIntegration { File full_wgs_interval_list = "gs://gcp-public-data--broad-references/hg38/v0/wgs_calling_regions.hg38.noCentromeres.noTelomeres.interval_list" File full_exome_interval_list = "gs://gcp-public-data--broad-references/hg38/v0/bge_exome_calling_regions.v1.1.interval_list" String expected_subdir = if (!chr20_X_Y_only) then "all_chrs/" else "" - File expected_output_prefix = "gs://gvs-internal-quickstart/integration/2024-03-13/" + expected_subdir + File expected_output_prefix = "gs://gvs-internal-quickstart/integration/2024-05-13/" + expected_subdir # WDL 1.0 trick to set a variable ('none') to be undefined. if (false) {