From 68bdb93c8c795d5efeea46f04898540d3c46bb61 Mon Sep 17 00:00:00 2001 From: Samuel Friedman Date: Thu, 4 May 2017 16:48:24 -0400 Subject: [PATCH] add annotation mismatch warning and refactor tests --- .../VariantRecalibrator.java | 22 ++++--- ...ariantRecalibratorModelOutputUnitTest.java | 59 +++++++++++++++---- 2 files changed, 64 insertions(+), 17 deletions(-) diff --git a/protected/gatk-tools-protected/src/main/java/org/broadinstitute/gatk/tools/walkers/variantrecalibration/VariantRecalibrator.java b/protected/gatk-tools-protected/src/main/java/org/broadinstitute/gatk/tools/walkers/variantrecalibration/VariantRecalibrator.java index b4792665b..d44e53dba 100644 --- a/protected/gatk-tools-protected/src/main/java/org/broadinstitute/gatk/tools/walkers/variantrecalibration/VariantRecalibrator.java +++ b/protected/gatk-tools-protected/src/main/java/org/broadinstitute/gatk/tools/walkers/variantrecalibration/VariantRecalibrator.java @@ -279,11 +279,11 @@ public class VariantRecalibrator extends RodWalker goodGaussianList = new ArrayList<>(); + goodGaussianList.add(goodGaussian1); + goodGaussianList.add(goodGaussian2); + + List badGaussianList = new ArrayList<>(); + badGaussianList.add(badGaussian1); + + GaussianMixtureModel goodModel = new GaussianMixtureModel(goodGaussianList, shrinkage, dirichlet, priorCounts); + GaussianMixtureModel badModel = new GaussianMixtureModel(badGaussianList, shrinkage, dirichlet, priorCounts); + + VariantRecalibrator vqsr = new VariantRecalibrator(); + List annotationList = new ArrayList<>(); + annotationList.add("QD"); + annotationList.add("MQ"); + annotationList.add("FS"); + annotationList.add("SOR"); + annotationList.add("ReadPosRankSum"); + annotationList.add("MQRankSum"); + + GATKReport report = vqsr.writeModelReport(goodModel, badModel, annotationList); // Now test model report reading - // Read the gaussian weighting tables + // Read all the tables + final GATKReportTable badMus = report.getTable("NegativeModelMeans"); + final GATKReportTable badSigma = report.getTable("NegativeModelCovariances"); final GATKReportTable nPMixTable = report.getTable("BadGaussianPMix"); + + final GATKReportTable goodMus = report.getTable("PositiveModelMeans"); + final GATKReportTable goodSigma = report.getTable("PositiveModelCovariances"); final GATKReportTable pPMixTable = report.getTable("GoodGaussianPMix"); GaussianMixtureModel goodModelFromFile = vqsr.GMMFromTables(goodMus, goodSigma, pPMixTable, annotationList.size()); @@ -183,7 +223,6 @@ public class VariantRecalibratorModelOutputUnitTest { testGMMsForEquality(badModel, badModelFromFile, epsilon); } - @Test //This is tested separately to avoid setting up a VariantDataManager and populating it with fake data public void testAnnotationNormalizationOutput() {