From d28e9f9b988790ee1b32be34a60f52422e4c4299 Mon Sep 17 00:00:00 2001 From: jmaguire Date: Tue, 14 Apr 2009 19:15:45 +0000 Subject: [PATCH] search over q's for finding argmax[q] p(D|q) git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@412 348d0f76-0448-11de-a6fe-93d51630548a --- .../gatk/walkers/AlleleFrequencyWalker.java | 20 +++++++++++-- .../gatk/walkers/PoolCallingExperiment.java | 28 +++++++++---------- .../sting/playground/utils/AlleleMetrics.java | 7 +++++ 3 files changed, 38 insertions(+), 17 deletions(-) diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlleleFrequencyWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlleleFrequencyWalker.java index dc885a936..eda85f826 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlleleFrequencyWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlleleFrequencyWalker.java @@ -304,9 +304,9 @@ public class AlleleFrequencyWalker extends LocusWalker= best_likelihood) + { + best_likelihood = likelihood; + best_q = q; + } + } + return best_q; + } + double P_D_q(byte[] bases, double[][]quals, double q, int refnum, int altnum) { double p = 0.0; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/PoolCallingExperiment.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/PoolCallingExperiment.java index 390f1c289..42afd4b1b 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/PoolCallingExperiment.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/PoolCallingExperiment.java @@ -24,11 +24,10 @@ public class PoolCallingExperiment extends LocusWalker sample_names = null; - //@Argument public int DOWNSAMPLE; - public int DOWNSAMPLE = 4; - public int DOWNSAMPLE_NOISE = 3; - public boolean LOG_METRICS = true; - + @Argument(required=false, shortName="downsample", defaultValue="4") public int DOWNSAMPLE; + @Argument(required=false, shortName="downsample_noise", defaultValue="3") public int DOWNSAMPLE_NOISE; + @Argument(required=false, shortName="log_metrics", defaultValue="true") public boolean LOG_METRICS; + private Random random; public void initialize() @@ -70,9 +69,6 @@ public class PoolCallingExperiment extends LocusWalker= 5.0) || (deep_calls[i].lodVsRef <= -5.0)) { shallow_callers.get(i).setAlleleFrequencyPrior(EM_alt_freq); - shallow_calls[i] = shallow_callers.get(i).map(tracker, ref, filterLocusContext(context, sample_names.get(i), DOWNSAMPLE + (int)(random.nextGaussian() * DOWNSAMPLE_NOISE))); + shallow_calls[i] = shallow_callers.get(i).map(tracker, ref, downsampled_contexts[i]); String deep_genotype = deep_calls[i].genotype(); String shallow_genotype = shallow_calls[i].genotype(); + + likelihood += shallow_calls[i].lodVsNextBest; /* System.out.printf("DBG: %f %f %f %f\n", @@ -179,6 +177,7 @@ public class PoolCallingExperiment extends LocusWalker= LOD_cutoff) { + System.out.printf("DBG %f %f %f %f\n", + hapmap_q, + alleleFreq.qhat, + alleleFreq.qstar, + alleleFreq.lodVsNextBest); + // Calculate genotyping performance - did we get the correct genotype of the N+1 choices? //if (hapmap_q != -1 && hapmap_q == alleleFreq.qstar) { if (Math.abs(hapmap_q - -1.0) > dbl_cmp_precision && Math.abs(hapmap_q - alleleFreq.qstar) <= dbl_cmp_precision) {