From b8c39ddb9afb439f1cf71163d3b8199aa74ddbc2 Mon Sep 17 00:00:00 2001 From: Megan Shand Date: Wed, 22 Feb 2023 11:21:42 -0500 Subject: [PATCH] add error message for when tree-score-threshold is set in ReblockGVCFs without TREE_SCORE present --- .../tools/walkers/variantutils/ReblockGVCF.java | 6 ++++++ .../variantutils/ReblockGVCFIntegrationTest.java | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/variantutils/ReblockGVCF.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/variantutils/ReblockGVCF.java index ecdef97cf72..753e24215df 100644 --- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/variantutils/ReblockGVCF.java +++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/variantutils/ReblockGVCF.java @@ -211,6 +211,12 @@ public void onTraversalStart() { } final VCFHeader inputHeader = getHeaderForVariants(); + + if (treeScoreThreshold > 0 && !inputHeader.getInfoHeaderLines().contains(GATKVCFConstants.TREE_SCORE)) { + throw new UserException("-" + TREE_SCORE_THRESHOLD_LONG_NAME + " is set to value greater than 0: " + treeScoreThreshold + + ", but the " + GATKVCFConstants.TREE_SCORE + " annotation is not present in the input GVCF."); + } + final Set inputHeaders = inputHeader.getMetaDataInSortedOrder(); final Set headerLines = new HashSet<>(inputHeaders); diff --git a/src/test/java/org/broadinstitute/hellbender/tools/walkers/variantutils/ReblockGVCFIntegrationTest.java b/src/test/java/org/broadinstitute/hellbender/tools/walkers/variantutils/ReblockGVCFIntegrationTest.java index 10fa72aa4a5..8ead53254e0 100644 --- a/src/test/java/org/broadinstitute/hellbender/tools/walkers/variantutils/ReblockGVCFIntegrationTest.java +++ b/src/test/java/org/broadinstitute/hellbender/tools/walkers/variantutils/ReblockGVCFIntegrationTest.java @@ -503,4 +503,18 @@ public void testFirstPositionOnContigNotDropped() { Assert.assertEquals(outVCs.get(1).getContig(), "chr13"); Assert.assertEquals(outVCs.get(1).getStart(), 18173860); } + + @Test + public void testTreeScoreWithNoAnnotation() { + final File output = createTempFile("reblockedgvcf", ".vcf"); + + final ArgumentsBuilder args = new ArgumentsBuilder(); + args.add("V", largeFileTestDir + "NA12878.prod.chr20snippet.g.vcf.gz") + .addOutput(output) + .addReference(b37_reference_20_21) + .add(ReblockGVCF.TREE_SCORE_THRESHOLD_LONG_NAME, 0.3) + .add("do-qual-approx", true); + + Assert.assertThrows(UserException.class, () -> runCommandLine(args)); + } }