From dcf8af42a87b488fa4d0b0728cc979dee7a5b252 Mon Sep 17 00:00:00 2001 From: Mark DePristo Date: Mon, 15 Oct 2012 07:40:09 -0400 Subject: [PATCH] Finalizing IndependentAllelesDiploidExactAFCalc -- Updating integration tests, confirming that results for the original EXACT model are as expected given our new more rigorous application of likelihoods, priors, and posteriors -- Fix basic logic bug in AFCalcResult.isPolymorphic and UnifiedGenotypeEngine, where isNonRef really meant isRef. Not ideal. Finally caught by some tests, but good god it almost made it into the code -- Now takes the Math.abs of the phred-scaled confidence so that we don't see -0.0 -- Massive new suite of unit tests to ensure that bi-allelic and tri-allele events are called properly with all models, and that the IndependentAllelesDiploidExactAFCalc calls events with up to 4 alt alleles correctly. ID'd some of the bugs below -- Fix sort order bug in IndependentAllelesDiploidExactAFCalc caught by new unit tests -- Fix bug in GeneralPloidyExactAFCalc where the AFCalcResult has meaningless values in the likelihoods when no there we no informative GLs. --- ...ceTest.java => AFCalcPerformanceTest.java} | 30 ++-- ...estBuilder.java => AFCalcTestBuilder.java} | 16 +- .../afcalc/GeneralPloidyExactAFCalc.java | 18 ++- ...GenotyperGeneralPloidyIntegrationTest.java | 14 +- .../genotyper/afcalc/AFCalcUnitTest.java | 137 +++++++++++++++++- ...ConstrainedAFCalculationModelUnitTest.java | 12 +- .../HaplotypeCallerIntegrationTest.java | 18 +-- .../genotyper/UnifiedGenotyperEngine.java | 11 +- .../genotyper/afcalc/AFCalcResult.java | 13 +- .../IndependentAllelesDiploidExactAFCalc.java | 5 +- .../UnifiedGenotyperIntegrationTest.java | 68 ++++----- .../SelectVariantsIntegrationTest.java | 4 +- .../NanoSchedulerIntegrationTest.java | 2 +- 13 files changed, 249 insertions(+), 99 deletions(-) rename protected/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/{ExactAFCalculationPerformanceTest.java => AFCalcPerformanceTest.java} (88%) rename protected/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/{ExactAFCalculationTestBuilder.java => AFCalcTestBuilder.java} (90%) diff --git a/protected/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/ExactAFCalculationPerformanceTest.java b/protected/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/AFCalcPerformanceTest.java similarity index 88% rename from protected/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/ExactAFCalculationPerformanceTest.java rename to protected/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/AFCalcPerformanceTest.java index 16aa77284..68b068509 100644 --- a/protected/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/ExactAFCalculationPerformanceTest.java +++ b/protected/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/AFCalcPerformanceTest.java @@ -23,8 +23,8 @@ import java.util.*; * Time: 10:25 AM * To change this template use File | Settings | File Templates. */ -public class ExactAFCalculationPerformanceTest { - final static Logger logger = Logger.getLogger(ExactAFCalculationPerformanceTest.class); +public class AFCalcPerformanceTest { + final static Logger logger = Logger.getLogger(AFCalcPerformanceTest.class); private static abstract class Analysis { final GATKReport report; @@ -33,7 +33,7 @@ public class ExactAFCalculationPerformanceTest { report = GATKReport.newSimpleReport(name, columns); } - public abstract void run(final ExactAFCalculationTestBuilder testBuilder, + public abstract void run(final AFCalcTestBuilder testBuilder, final List coreColumns); public String getName() { @@ -50,7 +50,7 @@ public class ExactAFCalculationPerformanceTest { super("AnalyzeByACAndPL", Utils.append(columns, "non.type.pls", "ac", "n.alt.seg", "other.ac")); } - public void run(final ExactAFCalculationTestBuilder testBuilder, final List coreValues) { + public void run(final AFCalcTestBuilder testBuilder, final List coreValues) { final SimpleTimer timer = new SimpleTimer(); for ( final int nonTypePL : Arrays.asList(100) ) { @@ -109,7 +109,7 @@ public class ExactAFCalculationPerformanceTest { super("AnalyzeBySingletonPosition", Utils.append(columns, "non.type.pls", "position.of.singleton")); } - public void run(final ExactAFCalculationTestBuilder testBuilder, final List coreValues) { + public void run(final AFCalcTestBuilder testBuilder, final List coreValues) { final SimpleTimer timer = new SimpleTimer(); for ( final int nonTypePL : Arrays.asList(100) ) { @@ -143,7 +143,7 @@ public class ExactAFCalculationPerformanceTest { super("AnalyzeByNonInformative", Utils.append(columns, "non.type.pls", "n.non.informative")); } - public void run(final ExactAFCalculationTestBuilder testBuilder, final List coreValues) { + public void run(final AFCalcTestBuilder testBuilder, final List coreValues) { final SimpleTimer timer = new SimpleTimer(); for ( final int nonTypePL : Arrays.asList(100) ) { @@ -212,9 +212,9 @@ public class ExactAFCalculationPerformanceTest { final int nSamples = Integer.valueOf(args[1]); final int ac = Integer.valueOf(args[2]); - final ExactAFCalculationTestBuilder testBuilder = new ExactAFCalculationTestBuilder(nSamples, 1, + final AFCalcTestBuilder testBuilder = new AFCalcTestBuilder(nSamples, 1, AFCalcFactory.Calculation.EXACT_INDEPENDENT, - ExactAFCalculationTestBuilder.PriorType.human); + AFCalcTestBuilder.PriorType.human); final VariantContext vc = testBuilder.makeACTest(new int[]{ac}, 0, 100); @@ -233,14 +233,14 @@ public class ExactAFCalculationPerformanceTest { final List modelParams = Arrays.asList( new ModelParams(AFCalcFactory.Calculation.EXACT_REFERENCE, 10000, 10), -// new ModelParams(ExactAFCalculationTestBuilder.ModelType.GeneralExact, 100, 10), +// new ModelParams(AFCalcTestBuilder.ModelType.GeneralExact, 100, 10), new ModelParams(AFCalcFactory.Calculation.EXACT_CONSTRAINED, 10000, 100), new ModelParams(AFCalcFactory.Calculation.EXACT_INDEPENDENT, 10000, 1000)); final boolean ONLY_HUMAN_PRIORS = false; - final List priorTypes = ONLY_HUMAN_PRIORS - ? Arrays.asList(ExactAFCalculationTestBuilder.PriorType.values()) - : Arrays.asList(ExactAFCalculationTestBuilder.PriorType.human); + final List priorTypes = ONLY_HUMAN_PRIORS + ? Arrays.asList(AFCalcTestBuilder.PriorType.values()) + : Arrays.asList(AFCalcTestBuilder.PriorType.human); final List analyzes = new ArrayList(); analyzes.add(new AnalyzeByACAndPL(coreColumns)); @@ -252,9 +252,9 @@ public class ExactAFCalculationPerformanceTest { for ( final int nSamples : Arrays.asList(1, 10, 100, 1000, 10000) ) { for ( final ModelParams modelToRun : modelParams) { if ( modelToRun.meetsConstraints(nAltAlleles, nSamples) ) { - for ( final ExactAFCalculationTestBuilder.PriorType priorType : priorTypes ) { - final ExactAFCalculationTestBuilder testBuilder - = new ExactAFCalculationTestBuilder(nSamples, nAltAlleles, modelToRun.modelType, priorType); + for ( final AFCalcTestBuilder.PriorType priorType : priorTypes ) { + final AFCalcTestBuilder testBuilder + = new AFCalcTestBuilder(nSamples, nAltAlleles, modelToRun.modelType, priorType); for ( final Analysis analysis : analyzes ) { logger.info(Utils.join("\t", Arrays.asList(iteration, nAltAlleles, nSamples, modelToRun.modelType, priorType, analysis.getName()))); diff --git a/protected/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/ExactAFCalculationTestBuilder.java b/protected/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/AFCalcTestBuilder.java similarity index 90% rename from protected/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/ExactAFCalculationTestBuilder.java rename to protected/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/AFCalcTestBuilder.java index 951f8d3ed..b4d105507 100644 --- a/protected/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/ExactAFCalculationTestBuilder.java +++ b/protected/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/AFCalcTestBuilder.java @@ -11,11 +11,14 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; -public class ExactAFCalculationTestBuilder { +public class AFCalcTestBuilder { final static Allele A = Allele.create("A", true); final static Allele C = Allele.create("C"); final static Allele G = Allele.create("G"); final static Allele T = Allele.create("T"); + final static Allele AA = Allele.create("AA"); + final static Allele AT = Allele.create("AT"); + final static Allele AG = Allele.create("AG"); static int sampleNameCounter = 0; @@ -24,14 +27,19 @@ public class ExactAFCalculationTestBuilder { final AFCalcFactory.Calculation modelType; final PriorType priorType; - public ExactAFCalculationTestBuilder(final int nSamples, final int numAltAlleles, - final AFCalcFactory.Calculation modelType, final PriorType priorType) { + public AFCalcTestBuilder(final int nSamples, final int numAltAlleles, + final AFCalcFactory.Calculation modelType, final PriorType priorType) { this.nSamples = nSamples; this.numAltAlleles = numAltAlleles; this.modelType = modelType; this.priorType = priorType; } + @Override + public String toString() { + return String.format("AFCalcTestBuilder nSamples=%d nAlts=%d model=%s prior=%s", nSamples, numAltAlleles, modelType, priorType); + } + public enum PriorType { flat, human @@ -113,7 +121,7 @@ public class ExactAFCalculationTestBuilder { } public List getAlleles() { - return Arrays.asList(A, C, G, T).subList(0, numAltAlleles+1); + return Arrays.asList(A, C, G, T, AA, AT, AG).subList(0, numAltAlleles+1); } public List getAlleles(final GenotypeType type, final int altI) { diff --git a/protected/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/GeneralPloidyExactAFCalc.java b/protected/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/GeneralPloidyExactAFCalc.java index bb2eacc82..1a864d3d8 100644 --- a/protected/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/GeneralPloidyExactAFCalc.java +++ b/protected/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/GeneralPloidyExactAFCalc.java @@ -192,13 +192,19 @@ public class GeneralPloidyExactAFCalc extends ExactAFCalc { set.getLog10Likelihoods()[0] = 0.0; combinedPoolLikelihoods.add(set); - for (int p=1; p constrainedModel = Arrays.asList(AFCalcFactory.Calculation.EXACT_CONSTRAINED); @@ -413,13 +413,13 @@ public class AFCalcUnitTest extends BaseTest { @Test(enabled = true && ! DEBUG_ONLY, dataProvider = "PNonRef") private void testPNonRef(final VariantContext vcRoot, AFCalcFactory.Calculation modelType, - ExactAFCalculationTestBuilder.PriorType priorType, + AFCalcTestBuilder.PriorType priorType, final List genotypes, final double expectedPNonRef, final double tolerance, final int nNonInformative) { - final ExactAFCalculationTestBuilder testBuilder - = new ExactAFCalculationTestBuilder(1, vcRoot.getNAlleles()-1, modelType, priorType); + final AFCalcTestBuilder testBuilder + = new AFCalcTestBuilder(1, vcRoot.getNAlleles()-1, modelType, priorType); final VariantContextBuilder vcb = new VariantContextBuilder(vcRoot); vcb.genotypes(genotypes); @@ -448,7 +448,7 @@ public class AFCalcUnitTest extends BaseTest { return tests.toArray(new Object[][]{}); } - @Test(enabled = true && ! DEBUG_ONLY, dataProvider = "Models") + @Test(enabled = true & ! DEBUG_ONLY, dataProvider = "Models") public void testBiallelicPriors(final AFCalc model) { for ( int REF_PL = 10; REF_PL <= 20; REF_PL += 10 ) { @@ -464,8 +464,12 @@ public class AFCalcUnitTest extends BaseTest { final double pRefWithPrior = AB.getLikelihoods().getAsVector()[0] + priors[0]; final double pHetWithPrior = AB.getLikelihoods().getAsVector()[1] + priors[1] - Math.log10(0.5); final double nonRefPost = Math.pow(10, pHetWithPrior) / (Math.pow(10, pRefWithPrior) + Math.pow(10, pHetWithPrior)); + final double log10NonRefPost = Math.log10(nonRefPost); - if ( nonRefPost < 0.1 ) + if ( ! Double.isInfinite(log10NonRefPost) ) + Assert.assertEquals(resultTracker.getLog10PosteriorOfAFGT0(), log10NonRefPost, 1e-2); + + if ( nonRefPost >= 0.9 ) Assert.assertTrue(resultTracker.isPolymorphic(C, -1)); final int expectedMLEAC = 1; // the MLE is independent of the prior @@ -475,4 +479,125 @@ public class AFCalcUnitTest extends BaseTest { } } } + + @Test(enabled = true && ! DEBUG_ONLY, dataProvider = "Models") + + // -------------------------------------------------------------------------------- + // + // Test that polymorphic sites (bi and tri) are properly called + // + // -------------------------------------------------------------------------------- + + @DataProvider(name = "polyTestProvider") + public Object[][] makePolyTestProvider() { + List tests = new ArrayList(); + + // list of all high-quality models in the system + final List models = Arrays.asList( + AFCalcFactory.Calculation.EXACT, + AFCalcFactory.Calculation.EXACT_REFERENCE, + AFCalcFactory.Calculation.EXACT_INDEPENDENT); + + // note that we cannot use small PLs here or the thresholds are hard to set + for ( final int nonTypePLs : Arrays.asList(100, 1000) ) { + for ( final AFCalcFactory.Calculation model : models ) { + for ( final int allele1AC : Arrays.asList(0, 1, 2, 10, 100, 1000, 10000) ) { + for ( final int nSamples : Arrays.asList(1, 10, 100, 1000, 10000) ) { +// for ( final int nonTypePLs : Arrays.asList(10) ) { +// for ( final AFCalcFactory.Calculation model : models ) { +// for ( final int allele1AC : Arrays.asList(100) ) { +// for ( final int nSamples : Arrays.asList(1000) ) { + if ( nSamples < allele1AC ) continue; + + final double pPerSample = Math.pow(10, nonTypePLs / -10.0); + final double errorFreq = pPerSample * nSamples; + final boolean poly1 = allele1AC > errorFreq && (nonTypePLs * allele1AC) > 30; + + // bi-allelic tests + { + final AFCalcTestBuilder testBuilder + = new AFCalcTestBuilder(nSamples, 1, model, AFCalcTestBuilder.PriorType.human); + final List ACs = Arrays.asList(allele1AC); + tests.add(new Object[]{testBuilder, ACs, nonTypePLs, Arrays.asList(poly1)}); + } + + // multi-allelic tests + for ( final int allele2AC : Arrays.asList(0, 1, 2, 10, 20, 50) ) { + if ( nSamples < allele2AC || allele1AC + allele2AC > nSamples || nSamples > 100 || nSamples == 1) + continue; + + final AFCalcTestBuilder testBuilder + = new AFCalcTestBuilder(nSamples, 2, model, AFCalcTestBuilder.PriorType.human); + final List ACs = Arrays.asList(allele1AC, allele2AC); + final boolean poly2 = allele2AC > errorFreq && (nonTypePLs * allele2AC) > 90; + tests.add(new Object[]{testBuilder, ACs, nonTypePLs, Arrays.asList(poly1, poly2)}); + } + } + } + } + } + + return tests.toArray(new Object[][]{}); + } + + @Test(enabled = true && ! DEBUG_ONLY, dataProvider = "polyTestProvider") + public void testCallingGeneral(final AFCalcTestBuilder testBuilder, final List ACs, final int nonTypePL, final List expectedPoly ) { + testCalling(testBuilder, ACs, nonTypePL, expectedPoly); + } + + @DataProvider(name = "polyTestProviderLotsOfAlleles") + public Object[][] makepolyTestProviderLotsOfAlleles() { + List tests = new ArrayList(); + + // list of all high-quality models in the system + final List models = Arrays.asList(AFCalcFactory.Calculation.EXACT_INDEPENDENT); + + final List alleleCounts = Arrays.asList(0, 1, 2, 3, 4, 5, 10, 20); + + final int nonTypePLs = 1000; + final int nAlleles = 4; + for ( final AFCalcFactory.Calculation model : models ) { + for ( final List ACs : Utils.makePermutations(alleleCounts, nAlleles, true) ) { + final List isPoly = new ArrayList(ACs.size()); + for ( final int ac : ACs ) isPoly.add(ac > 0); + + final double acSum = MathUtils.sum(ACs); + for ( final int nSamples : Arrays.asList(1, 10, 100) ) { + if ( nSamples < acSum ) continue; + final AFCalcTestBuilder testBuilder + = new AFCalcTestBuilder(nSamples, nAlleles, model, AFCalcTestBuilder.PriorType.human); + tests.add(new Object[]{testBuilder, ACs, nonTypePLs, isPoly}); + } + } + } + + return tests.toArray(new Object[][]{}); + } + + @Test(enabled = true && ! DEBUG_ONLY, dataProvider = "polyTestProviderLotsOfAlleles") + public void testCallingLotsOfAlleles(final AFCalcTestBuilder testBuilder, final List ACs, final int nonTypePL, final List expectedPoly ) { + testCalling(testBuilder, ACs, nonTypePL, expectedPoly); + } + + private void testCalling(final AFCalcTestBuilder testBuilder, final List ACs, final int nonTypePL, final List expectedPoly) { + final AFCalc calc = testBuilder.makeModel(); + final double[] priors = testBuilder.makePriors(); + final VariantContext vc = testBuilder.makeACTest(ACs, 0, nonTypePL); + final AFCalcResult result = calc.getLog10PNonRef(vc, priors); + + boolean anyPoly = false; + for ( final boolean onePoly : expectedPoly ) anyPoly = anyPoly || onePoly; + + if ( anyPoly ) + Assert.assertTrue(result.getLog10PosteriorOfAFGT0() > -1); + + for ( int altI = 1; altI < result.getAllelesUsedInGenotyping().size(); altI++ ) { + final int i = altI - 1; + final Allele alt = result.getAllelesUsedInGenotyping().get(altI); + + // must be getCalledChrCount because we cannot ensure that the VC made has our desired ACs + Assert.assertEquals(result.getAlleleCountAtMLE(alt), vc.getCalledChrCount(alt)); + Assert.assertEquals(result.isPolymorphic(alt, -1), (boolean)expectedPoly.get(i), "isPolymorphic for allele " + alt + " " + result.getLog10PosteriorOfAFGt0ForAllele(alt)); + } + } } \ No newline at end of file diff --git a/protected/java/test/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/ConstrainedAFCalculationModelUnitTest.java b/protected/java/test/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/ConstrainedAFCalculationModelUnitTest.java index 4d0034a0f..31ec28af4 100644 --- a/protected/java/test/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/ConstrainedAFCalculationModelUnitTest.java +++ b/protected/java/test/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/ConstrainedAFCalculationModelUnitTest.java @@ -47,9 +47,9 @@ public class ConstrainedAFCalculationModelUnitTest extends BaseTest { @Test(enabled = true, dataProvider = "MaxACsToVisit") public void testMaxACsToVisit(final int nSamples, final List requestedACs, final int nNonInformative, final AFCalcFactory.Calculation modelType) { final int nAlts = requestedACs.size(); - final ExactAFCalculationTestBuilder testBuilder - = new ExactAFCalculationTestBuilder(nSamples, nAlts, modelType, - ExactAFCalculationTestBuilder.PriorType.human); + final AFCalcTestBuilder testBuilder + = new AFCalcTestBuilder(nSamples, nAlts, modelType, + AFCalcTestBuilder.PriorType.human); final VariantContext vc = testBuilder.makeACTest(requestedACs, nNonInformative, 100); final int[] maxACsToVisit = ((ConstrainedDiploidExactAFCalc)testBuilder.makeModel()).computeMaxACs(vc); @@ -113,9 +113,9 @@ public class ConstrainedAFCalculationModelUnitTest extends BaseTest { private void testMakeACByGenotype(final VariantContext vcRoot, final Genotype g) { final VariantContext vc = new VariantContextBuilder(vcRoot).genotypes(g).make(); - final ExactAFCalculationTestBuilder testBuilder - = new ExactAFCalculationTestBuilder(1, vc.getNAlleles()-1, AFCalcFactory.Calculation.EXACT_CONSTRAINED, - ExactAFCalculationTestBuilder.PriorType.human); + final AFCalcTestBuilder testBuilder + = new AFCalcTestBuilder(1, vc.getNAlleles()-1, AFCalcFactory.Calculation.EXACT_CONSTRAINED, + AFCalcTestBuilder.PriorType.human); final int[] maxACsToVisit = ((ConstrainedDiploidExactAFCalc)testBuilder.makeModel()).computeMaxACs(vc); diff --git a/protected/java/test/org/broadinstitute/sting/gatk/walkers/haplotypecaller/HaplotypeCallerIntegrationTest.java b/protected/java/test/org/broadinstitute/sting/gatk/walkers/haplotypecaller/HaplotypeCallerIntegrationTest.java index e94c9705c..3450725c8 100644 --- a/protected/java/test/org/broadinstitute/sting/gatk/walkers/haplotypecaller/HaplotypeCallerIntegrationTest.java +++ b/protected/java/test/org/broadinstitute/sting/gatk/walkers/haplotypecaller/HaplotypeCallerIntegrationTest.java @@ -21,17 +21,17 @@ public class HaplotypeCallerIntegrationTest extends WalkerTest { @Test public void testHaplotypeCallerMultiSample() { - HCTest(CEUTRIO_BAM, "", "5b751474ad0aef4cdb53f094e605f97c"); + HCTest(CEUTRIO_BAM, "", "a305107a5ec889152aa2efbe90b249d7"); } @Test public void testHaplotypeCallerSingleSample() { - HCTest(NA12878_BAM, "", "60efcd2d2722087e900f6365985d18bf"); + HCTest(NA12878_BAM, "", "0c2217ec81f19790a6d1f98ebf8cf70d"); } @Test public void testHaplotypeCallerMultiSampleGGA() { - HCTest(CEUTRIO_BAM, "--max_alternate_alleles_for_indels 3 -gt_mode GENOTYPE_GIVEN_ALLELES -alleles " + validationDataLocation + "combined.phase1.chr20.raw.indels.sites.vcf", "71bec55320a2f07af0d54be9d7735322"); + HCTest(CEUTRIO_BAM, "--max_alternate_alleles_for_indels 3 -gt_mode GENOTYPE_GIVEN_ALLELES -alleles " + validationDataLocation + "combined.phase1.chr20.raw.indels.sites.vcf", "0396c7352ab8ab98b03dca36299a0ddf"); } private void HCTestComplexVariants(String bam, String args, String md5) { @@ -42,7 +42,7 @@ public class HaplotypeCallerIntegrationTest extends WalkerTest { @Test public void testHaplotypeCallerMultiSampleComplex() { - HCTestComplexVariants(CEUTRIO_BAM, "", "966da0de8466d21d79f1523488dff6bd"); + HCTestComplexVariants(CEUTRIO_BAM, "", "2cfb7d830d5a7eb7bc754b5f688a27a5"); } private void HCTestSymbolicVariants(String bam, String args, String md5) { @@ -53,7 +53,7 @@ public class HaplotypeCallerIntegrationTest extends WalkerTest { @Test public void testHaplotypeCallerSingleSampleSymbolic() { - HCTestSymbolicVariants(NA12878_CHR20_BAM, "", "8043b0451a4384e678a93600b34afce7"); + HCTestSymbolicVariants(NA12878_CHR20_BAM, "", "d511848a46083c0d0b2495f65f162c2e"); } private void HCTestIndelQualityScores(String bam, String args, String md5) { @@ -64,20 +64,20 @@ public class HaplotypeCallerIntegrationTest extends WalkerTest { @Test public void testHaplotypeCallerSingleSampleIndelQualityScores() { - HCTestIndelQualityScores(NA12878_RECALIBRATED_BAM, "", "ea6539e05faf10ffaf76f2d16907c47a"); + HCTestIndelQualityScores(NA12878_RECALIBRATED_BAM, "", "98d82d74e8d6a778290bee6c0df6d092"); } @Test public void HCTestProblematicReadsModifiedInActiveRegions() { final String base = String.format("-T HaplotypeCaller -R %s -I %s", REF, privateTestDir + "haplotype-problem-4.bam") + " --no_cmdline_in_header -o %s -minPruning 3"; - final WalkerTestSpec spec = new WalkerTestSpec(base, Arrays.asList("8d092b25f40456e618eef91fdce8adf0")); + final WalkerTestSpec spec = new WalkerTestSpec(base, Arrays.asList("7e112ea4623617f1f7f8f562f54aa2aa")); executeTest("HCTestProblematicReadsModifiedInActiveRegions: ", spec); } @Test public void HCTestStructuralIndels() { final String base = String.format("-T HaplotypeCaller -R %s -I %s", REF, privateTestDir + "AFR.structural.indels.bam") + " --no_cmdline_in_header -o %s -minPruning 6 -L 20:8187565-8187800 -L 20:18670537-18670730"; - final WalkerTestSpec spec = new WalkerTestSpec(base, Arrays.asList("c29e61810c056b52a47baae0696931ea")); + final WalkerTestSpec spec = new WalkerTestSpec(base, Arrays.asList("c642dcd93771f6f084d55de31f180d1b")); executeTest("HCTestStructuralIndels: ", spec); } @@ -91,7 +91,7 @@ public class HaplotypeCallerIntegrationTest extends WalkerTest { public void HCTestReducedBam() { WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec( "-T HaplotypeCaller -R " + b37KGReference + " --no_cmdline_in_header -I " + privateTestDir + "bamExample.ReducedRead.ADAnnotation.bam -o %s -L 1:67,225,396-67,288,518", 1, - Arrays.asList("864abe729828248333aee14818c1d2e1")); + Arrays.asList("79af83432dc4a1768b3ebffffc4d2b8f")); executeTest("HC calling on a ReducedRead BAM", spec); } diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyperEngine.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyperEngine.java index 42a47fc5f..a52b5dfe6 100755 --- a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyperEngine.java +++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyperEngine.java @@ -385,7 +385,7 @@ public class UnifiedGenotyperEngine { final boolean isNonRef = AFresult.isPolymorphic(alternateAllele, UAC.STANDARD_CONFIDENCE_FOR_EMITTING / -10.0); // if the most likely AC is not 0, then this is a good alternate allele to use - if ( ! isNonRef ) { + if ( isNonRef ) { myAlleles.add(alternateAllele); alleleCountsofMLE.add(AFresult.getAlleleCountAtMLE(alternateAllele)); bestGuessIsRef = false; @@ -398,9 +398,12 @@ public class UnifiedGenotyperEngine { } final double PoFGT0 = Math.pow(10, AFresult.getLog10PosteriorOfAFGT0()); - final double phredScaledConfidence = ! bestGuessIsRef || UAC.GenotypingMode == GenotypeLikelihoodsCalculationModel.GENOTYPING_MODE.GENOTYPE_GIVEN_ALLELES - ? -10 * AFresult.getLog10PosteriorOfAFEq0() - : -10 * AFresult.getLog10PosteriorOfAFGT0(); + + // note the math.abs is necessary because -10 * 0.0 => -0.0 which isn't nice + final double phredScaledConfidence = + Math.abs(! bestGuessIsRef || UAC.GenotypingMode == GenotypeLikelihoodsCalculationModel.GENOTYPING_MODE.GENOTYPE_GIVEN_ALLELES + ? -10 * AFresult.getLog10PosteriorOfAFEq0() + : -10 * AFresult.getLog10PosteriorOfAFGT0()); // return a null call if we don't pass the confidence cutoff or the most likely allele frequency is zero if ( UAC.OutputMode != OUTPUT_MODE.EMIT_ALL_SITES && !passesEmitThreshold(phredScaledConfidence, bestGuessIsRef) ) { diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/AFCalcResult.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/AFCalcResult.java index 7fafb552e..da7fd08ce 100644 --- a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/AFCalcResult.java +++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/AFCalcResult.java @@ -230,7 +230,7 @@ public class AFCalcResult { * @return true if there's enough confidence (relative to log10minPNonRef) to reject AF == 0 */ public boolean isPolymorphic(final Allele allele, final double log10minPNonRef) { - return getLog10PosteriorOfAFGt0ForAllele(allele) < log10minPNonRef; + return getLog10PosteriorOfAFGt0ForAllele(allele) >= log10minPNonRef; } /** @@ -267,7 +267,14 @@ public class AFCalcResult { for ( int i = 0; i < log10LikelihoodsOfAC.length; i++ ) log10UnnormalizedPosteriors[i] = log10LikelihoodsOfAC[i] + log10PriorsOfAC[i]; - return MathUtils.normalizeFromLog10(log10UnnormalizedPosteriors, true, true); + // necessary because the posteriors may be so skewed that the log-space normalized value isn't + // good, so we have to try both log-space normalization as well as the real-space normalization if the + // result isn't good + final double[] logNormalized = MathUtils.normalizeFromLog10(log10UnnormalizedPosteriors, true, true); + if ( goodLog10ProbVector(logNormalized, logNormalized.length, true) ) + return logNormalized; + else + return MathUtils.normalizeFromLog10(log10UnnormalizedPosteriors, true, false); } /** @@ -287,7 +294,7 @@ public class AFCalcResult { return false; } - if ( shouldSumToOne && MathUtils.compareDoubles(MathUtils.sumLog10(vector), 1.0, 1e-2) != 0 ) + if ( shouldSumToOne && MathUtils.compareDoubles(MathUtils.sumLog10(vector), 1.0, 1e-4) != 0 ) return false; return true; // everything is good diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/IndependentAllelesDiploidExactAFCalc.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/IndependentAllelesDiploidExactAFCalc.java index 3c44ce3b1..0ac964c9c 100755 --- a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/IndependentAllelesDiploidExactAFCalc.java +++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/afcalc/IndependentAllelesDiploidExactAFCalc.java @@ -38,7 +38,7 @@ public class IndependentAllelesDiploidExactAFCalc extends DiploidExactAFCalc { private final static class CompareAFCalcResultsByPNonRef implements Comparator { @Override public int compare(AFCalcResult o1, AFCalcResult o2) { - return -1 * Double.compare(o1.getLog10LikelihoodOfAFGT0(), o2.getLog10LikelihoodOfAFGT0()); + return Double.compare(o1.getLog10LikelihoodOfAFGT0(), o2.getLog10LikelihoodOfAFGT0()); } } @@ -82,7 +82,8 @@ public class IndependentAllelesDiploidExactAFCalc extends DiploidExactAFCalc { // TODO -- can be easily optimized (currently looks at all GLs via getGLs) for ( int i = 0; i < allGLs.size(); i++ ) { final double[] GLs = allGLs.get(i); - log10LikelihoodOfHomRef += MathUtils.normalizeFromLog10(GLs, true)[0]; + log10LikelihoodOfHomRef += GLs[0]; + //log10LikelihoodOfHomRef += MathUtils.normalizeFromLog10(GLs, true)[0]; } return log10LikelihoodOfHomRef; diff --git a/public/java/test/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyperIntegrationTest.java b/public/java/test/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyperIntegrationTest.java index 0388a3291..905ceef0f 100755 --- a/public/java/test/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyperIntegrationTest.java +++ b/public/java/test/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyperIntegrationTest.java @@ -28,7 +28,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { public void testMultiSamplePilot1() { WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec( baseCommand + " -I " + validationDataLocation + "low_coverage_CEU.chr1.10k-11k.bam -o %s -L 1:10,022,000-10,025,000", 1, - Arrays.asList("cafd404f1b4f53586f7aa7a7084b91da")); + Arrays.asList("fe9c0e9e4b4ee4677145748cdd2285ff")); executeTest("test MultiSample Pilot1", spec); } @@ -36,7 +36,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { public void testWithAllelesPassedIn1() { WalkerTest.WalkerTestSpec spec1 = new WalkerTest.WalkerTestSpec( baseCommand + " --genotyping_mode GENOTYPE_GIVEN_ALLELES -alleles " + privateTestDir + "allelesForUG.vcf -I " + validationDataLocation + "pilot2_daughters.chr20.10k-11k.bam -o %s -L 20:10,000,000-10,025,000", 1, - Arrays.asList("9a760dffbb299bda4934bcb4f7aad42a")); + Arrays.asList("bc15123620e1134f799005d71d1180fe")); executeTest("test MultiSample Pilot2 with alleles passed in", spec1); } @@ -44,7 +44,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { public void testWithAllelesPassedIn2() { WalkerTest.WalkerTestSpec spec2 = new WalkerTest.WalkerTestSpec( baseCommand + " --output_mode EMIT_ALL_SITES --genotyping_mode GENOTYPE_GIVEN_ALLELES -alleles " + privateTestDir + "allelesForUG.vcf -I " + validationDataLocation + "pilot2_daughters.chr20.10k-11k.bam -o %s -L 20:10,000,000-10,025,000", 1, - Arrays.asList("8391146877aa7801ffdb3aa954bf2965")); + Arrays.asList("1ba7afccc8552f20d72d0b62237558e3")); executeTest("test MultiSample Pilot2 with alleles passed in and emitting all sites", spec2); } @@ -52,7 +52,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { public void testSingleSamplePilot2() { WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec( baseCommand + " -I " + validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SLX.bam -o %s -L 1:10,000,000-10,100,000", 1, - Arrays.asList("85b79ff7910f218dd59595d03ffe6ccc")); + Arrays.asList("57e409dbb12e0d85cd8af73db221b1fc")); executeTest("test SingleSample Pilot2", spec); } @@ -60,7 +60,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { public void testMultipleSNPAlleles() { WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec( "-T UnifiedGenotyper -R " + b37KGReference + " -nosl --no_cmdline_in_header -glm BOTH --dbsnp " + b37dbSNP129 + " -I " + privateTestDir + "multiallelic.snps.bam -o %s -L " + privateTestDir + "multiallelic.snps.intervals", 1, - Arrays.asList("cceb34ffbd2dbc45b8821f86ea255284")); + Arrays.asList("772e14d8c908044c04053d204bad69ef")); executeTest("test Multiple SNP alleles", spec); } @@ -76,7 +76,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { public void testReverseTrim() { WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec( "-T UnifiedGenotyper -R " + b37KGReference + " -nosl --no_cmdline_in_header -glm INDEL -I " + validationDataLocation + "CEUTrio.HiSeq.b37.chr20.10_11mb.bam -o %s -L 20:10289124 -L 20:10090289", 1, - Arrays.asList("00f54a0097e710c0f7b001444c237e32")); + Arrays.asList("1fb69aa3857e921191997daa73f1b687")); executeTest("test reverse trim", spec); } @@ -84,7 +84,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { public void testMismatchedPLs() { WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec( "-T UnifiedGenotyper -R " + b37KGReference + " -nosl --no_cmdline_in_header -glm INDEL -I " + privateTestDir + "mismatchedPLs.bam -o %s -L 1:24020341", 1, - Arrays.asList("b3fae6bf4c620458f4259dbc93125e37")); + Arrays.asList("d210ee1baa75dd4a0c63aef6b1fa7a8a")); executeTest("test mismatched PLs", spec); } @@ -94,7 +94,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { // // -------------------------------------------------------------------------------------------------------------- - private final static String COMPRESSED_OUTPUT_MD5 = "712e87db5e278e92bd36e96d377303c6"; + private final static String COMPRESSED_OUTPUT_MD5 = "367c0355b4e7b10c2988e5c41f44b3d2"; @Test public void testCompressedOutput() { @@ -115,7 +115,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { // Note that we need to turn off any randomization for this to work, so no downsampling and no annotations - String md5 = "306943dd63111e2e64388cd2e2de6c01"; + String md5 = "360d1274c1072a1ae9868e4e106c2650"; WalkerTest.WalkerTestSpec spec1 = new WalkerTest.WalkerTestSpec( baseCommand + " -dt NONE -G none -I " + validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SLX.bam -o %s -L 1:10,000,000-10,075,000", 1, @@ -147,7 +147,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { public void testMinBaseQualityScore() { WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec( baseCommand + " -I " + validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SLX.bam -o %s -L 1:10,000,000-10,010,000 --min_base_quality_score 26", 1, - Arrays.asList("f73dec2e77f14c170f7b6a8eee5793ff")); + Arrays.asList("6ae4a219c7b9c837fcbf12edeeac3c0c")); executeTest("test min_base_quality_score 26", spec); } @@ -155,7 +155,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { public void testSLOD() { WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec( "-T UnifiedGenotyper -R " + b36KGReference + " --no_cmdline_in_header -glm BOTH --dbsnp " + b36dbSNP129 + " -I " + validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SLX.bam -o %s -L 1:10,000,000-10,010,000", 1, - Arrays.asList("da7a5a3aa1c9f401896c34199c535954")); + Arrays.asList("c7429e670ba477bf9a6bbee2fb41c5a9")); executeTest("test SLOD", spec); } @@ -163,7 +163,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { public void testNDA() { WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec( baseCommand + " --annotateNDA -I " + validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SLX.bam -o %s -L 1:10,000,000-10,010,000", 1, - Arrays.asList("07f5962f790673a1299f3a0f56579b65")); + Arrays.asList("abd8e33e649cc11b55e200d3940cc7e2")); executeTest("test NDA", spec); } @@ -171,23 +171,23 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { public void testCompTrack() { WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec( "-T UnifiedGenotyper -R " + b36KGReference + " --no_cmdline_in_header -glm BOTH -comp:FOO " + b36dbSNP129 + " -I " + validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SLX.bam -o %s -L 1:10,000,000-10,010,000", 1, - Arrays.asList("22037eac40a3b1df3086c2d7b27f0d5f")); + Arrays.asList("8a9b424e00cdbe6b5e73d517335b2186")); executeTest("test using comp track", spec); } @Test public void testOutputParameterSitesOnly() { - testOutputParameters("-sites_only", "92db524b334f1416e595c711abc2d798"); + testOutputParameters("-sites_only", "97ba874eafc9884a4de027a84c036311"); } @Test public void testOutputParameterAllConfident() { - testOutputParameters("--output_mode EMIT_ALL_CONFIDENT_SITES", "7bb6375fddc461c72d44f261f6d4b3c7"); + testOutputParameters("--output_mode EMIT_ALL_CONFIDENT_SITES", "f9ea04d96eeef29e71d37e60518c2579"); } @Test public void testOutputParameterAllSites() { - testOutputParameters("--output_mode EMIT_ALL_SITES", "2104dac76fa2a58a92c72b331c7f2095"); + testOutputParameters("--output_mode EMIT_ALL_SITES", "67739a3ccf30975bcaef8a563e4b80cf"); } private void testOutputParameters(final String args, final String md5) { @@ -201,7 +201,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { public void testConfidence() { WalkerTest.WalkerTestSpec spec1 = new WalkerTest.WalkerTestSpec( baseCommand + " -I " + validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SLX.bam -o %s -L 1:10,000,000-10,010,000 -stand_call_conf 10 ", 1, - Arrays.asList("7326eb84d8418546a408b68839a0a47e")); + Arrays.asList("9addd225a985178339a0c49dc5fdc220")); executeTest("test confidence 1", spec1); } @@ -209,7 +209,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { public void testConfidence2() { WalkerTest.WalkerTestSpec spec2 = new WalkerTest.WalkerTestSpec( baseCommand + " -I " + validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SLX.bam -o %s -L 1:10,000,000-10,010,000 -stand_emit_conf 10 ", 1, - Arrays.asList("7326eb84d8418546a408b68839a0a47e")); + Arrays.asList("9addd225a985178339a0c49dc5fdc220")); executeTest("test confidence 2", spec2); } @@ -220,12 +220,12 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { // -------------------------------------------------------------------------------------------------------------- @Test public void testHeterozyosity1() { - testHeterozosity( 0.01, "7aed8361e692eff559e6bca88752db0d" ); + testHeterozosity( 0.01, "f1c4c8e701b2334bf3c4f12fc395fec8" ); } @Test public void testHeterozyosity2() { - testHeterozosity( 1.0 / 1850, "989e65bb7337117d31cd615163a8ac84" ); + testHeterozosity( 1.0 / 1850, "7fbbf4a21d6bf0026bfdadbb3c086fbe" ); } private void testHeterozosity(final double arg, final String md5) { @@ -249,7 +249,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { " -o %s" + " -L 1:10,000,000-10,100,000", 1, - Arrays.asList("c155587aa0410f43d7ccc57e1ae09a68")); + Arrays.asList("5d19e3077e0cabbb364f68676a09ebe0")); executeTest(String.format("test multiple technologies"), spec); } @@ -268,7 +268,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { " -L 1:10,000,000-10,100,000" + " -baq CALCULATE_AS_NECESSARY", 1, - Arrays.asList("0748a711c6154f8d85847afb79aead94")); + Arrays.asList("8a1931095f70523ad11cb99b30df7b84")); executeTest(String.format("test calling with BAQ"), spec); } @@ -287,7 +287,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { " -o %s" + " -L 1:10,000,000-10,500,000", 1, - Arrays.asList("6aa034f669ec09ac4f5a28624cbe1830")); + Arrays.asList("64a491b5276fd5d1cd04260ea3e63cf7")); executeTest(String.format("test indel caller in SLX"), spec); } @@ -302,7 +302,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { " -minIndelCnt 1" + " -L 1:10,000,000-10,100,000", 1, - Arrays.asList("ba7a011d0c665acc4455d58a6ab28716")); + Arrays.asList("f63a8b8061e6c5999408d34798061895")); executeTest(String.format("test indel caller in SLX with low min allele count"), spec); } @@ -315,7 +315,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { " -o %s" + " -L 1:10,000,000-10,500,000", 1, - Arrays.asList("4f7d80f4f53ef0f0959414cb30097482")); + Arrays.asList("c9d684ff2f2a9083480db6e962d612a9")); executeTest(String.format("test indel calling, multiple technologies"), spec); } @@ -325,7 +325,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec( baseCommandIndels + " --genotyping_mode GENOTYPE_GIVEN_ALLELES -alleles " + privateTestDir + "indelAllelesForUG.vcf -I " + validationDataLocation + "pilot2_daughters.chr20.10k-11k.bam -o %s -L 20:10,000,000-10,100,000", 1, - Arrays.asList("95986d0c92436d3b9c1f1be9c768a368")); + Arrays.asList("833fd97c6f32d7af6c9c088a78e51f68")); executeTest("test MultiSample Pilot2 indels with alleles passed in", spec); } @@ -335,7 +335,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { baseCommandIndels + " --output_mode EMIT_ALL_SITES --genotyping_mode GENOTYPE_GIVEN_ALLELES -alleles " + privateTestDir + "indelAllelesForUG.vcf -I " + validationDataLocation + "pilot2_daughters.chr20.10k-11k.bam -o %s -L 20:10,000,000-10,100,000", 1, - Arrays.asList("cecd3e35a817e299e97e8f7bbf083d2c")); + Arrays.asList("95b73c24c68dc475516571d9f49dfb1e")); executeTest("test MultiSample Pilot2 indels with alleles passed in and emitting all sites", spec); } @@ -343,13 +343,13 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { public void testMultiSampleIndels1() { WalkerTest.WalkerTestSpec spec1 = new WalkerTest.WalkerTestSpec( baseCommandIndels + " -I " + validationDataLocation + "low_coverage_CEU.chr1.10k-11k.bam -o %s -L 1:10450700-10551000", 1, - Arrays.asList("af04b81f0548ca22b8d1f6bf223b336e")); + Arrays.asList("3bdbf48de30bac58f3bcbc5bf3aa63aa")); List result = executeTest("test MultiSample Pilot1 CEU indels", spec1).getFirst(); WalkerTest.WalkerTestSpec spec2 = new WalkerTest.WalkerTestSpec( baseCommandIndels + " --genotyping_mode GENOTYPE_GIVEN_ALLELES -alleles " + result.get(0).getAbsolutePath() + " -I " + validationDataLocation + "low_coverage_CEU.chr1.10k-11k.bam -o %s -L 1:10450700-10551000", 1, - Arrays.asList("c7792e27477ecf99893a76ecbac5c2f9")); + Arrays.asList("beee9457d7cea42006ac45400db5e873")); executeTest("test MultiSample Pilot1 CEU indels using GENOTYPE_GIVEN_ALLELES", spec2); } @@ -371,7 +371,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { " -o %s" + " -L 20:10,000,000-10,100,000", 1, - Arrays.asList("59ff26d7e5ca2503ebe9f74902251551")); + Arrays.asList("945a2f994eaced8efdf8de24b58f2680")); executeTest(String.format("test UG with base indel quality scores"), spec); } @@ -405,7 +405,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { public void testMinIndelFraction0() { WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec( assessMinIndelFraction + " -minIndelFrac 0.0", 1, - Arrays.asList("f99f9a917529bfef717fad97f725d5df")); + Arrays.asList("ba4fafec383fb988f20c8cf53dd3e9a0")); executeTest("test minIndelFraction 0.0", spec); } @@ -413,7 +413,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { public void testMinIndelFraction25() { WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec( assessMinIndelFraction + " -minIndelFrac 0.25", 1, - Arrays.asList("eac2cd649bd5836068350eb4260aaea7")); + Arrays.asList("4c57a88de275105156aaafc6f9041365")); executeTest("test minIndelFraction 0.25", spec); } @@ -435,7 +435,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { public void testNsInCigar() { WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec( "-T UnifiedGenotyper -R " + b37KGReference + " -nosl --no_cmdline_in_header -I " + validationDataLocation + "testWithNs.bam -o %s -L 8:141799600-141814700", 1, - Arrays.asList("22c9fd65ce3298bd7fbf400c9c209f29")); + Arrays.asList("e8ebfaac0804b782f22ab8ea35152735")); executeTest("test calling on reads with Ns in CIGAR", spec); } @@ -449,7 +449,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest { public void testReducedBam() { WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec( "-T UnifiedGenotyper -R " + b37KGReference + " -nosl --no_cmdline_in_header -I " + privateTestDir + "bamExample.ReducedRead.ADAnnotation.bam -o %s -L 1:67,225,396-67,288,518", 1, - Arrays.asList("84486c88a0fd1ae996a6402490db8492")); + Arrays.asList("bbf16e1873e525ee5975021cfb8988cf")); executeTest("test calling on a ReducedRead BAM", spec); } diff --git a/public/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariantsIntegrationTest.java b/public/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariantsIntegrationTest.java index 34395e920..58d3677c7 100755 --- a/public/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariantsIntegrationTest.java +++ b/public/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariantsIntegrationTest.java @@ -190,7 +190,7 @@ public class SelectVariantsIntegrationTest extends WalkerTest { WalkerTestSpec spec = new WalkerTestSpec( "-T SelectVariants -R " + b36KGReference + " -regenotype -sn NA12892 --variant " + testFile + " -o %s --no_cmdline_in_header", 1, - Arrays.asList("52cb2f150559ca1457e9df7ec153dbb4") + Arrays.asList("549321a2543608f214ab4893ab478be6") ); executeTest("testRegenotype--" + testFile, spec); @@ -216,7 +216,7 @@ public class SelectVariantsIntegrationTest extends WalkerTest { WalkerTestSpec spec = new WalkerTestSpec( "-T SelectVariants -R " + b36KGReference + " -regenotype -sn NA12892 --variant " + testFile + " -o %s --no_cmdline_in_header", 1, - Arrays.asList("52cb2f150559ca1457e9df7ec153dbb4") + Arrays.asList("549321a2543608f214ab4893ab478be6") ); executeTest("testRemoveMLEAndRegenotype--" + testFile, spec); diff --git a/public/java/test/org/broadinstitute/sting/utils/nanoScheduler/NanoSchedulerIntegrationTest.java b/public/java/test/org/broadinstitute/sting/utils/nanoScheduler/NanoSchedulerIntegrationTest.java index d19a58b3a..24ffde9c3 100755 --- a/public/java/test/org/broadinstitute/sting/utils/nanoScheduler/NanoSchedulerIntegrationTest.java +++ b/public/java/test/org/broadinstitute/sting/utils/nanoScheduler/NanoSchedulerIntegrationTest.java @@ -21,7 +21,7 @@ public class NanoSchedulerIntegrationTest extends WalkerTest { for ( final int nct : Arrays.asList(1, 2) ) { // tests.add(new Object[]{ "SNP", "a1c7546f32a8919a3f3a70a04b2e8322", nt, nct }); //// tests.add(new Object[]{ "INDEL", "0a6d2be79f4f8a4b0eb788cc4751b31b", nt, nct }); - tests.add(new Object[]{ "BOTH", "081d077786ac0af24e9f97259a55209c", nt, nct }); + tests.add(new Object[]{ "BOTH", "78ce72d8f9d029313f5f2ceb02bb9822", nt, nct }); } return tests.toArray(new Object[][]{});