From ecbb11e01718a00e28c705a5d1cedf1fb0e48e92 Mon Sep 17 00:00:00 2001 From: chartl Date: Mon, 12 Oct 2009 20:59:24 +0000 Subject: [PATCH] Modified PowerBelowFrequency to ignore reads below a user-defined mapping quality. Request from Jason Flannick. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@1813 348d0f76-0448-11de-a6fe-93d51630548a --- .../gatk/walkers/poolseq/PowerBelowFrequencyWalker.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/poolseq/PowerBelowFrequencyWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/poolseq/PowerBelowFrequencyWalker.java index 6c986d4ed..72e02aa27 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/poolseq/PowerBelowFrequencyWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/poolseq/PowerBelowFrequencyWalker.java @@ -41,6 +41,9 @@ public class PowerBelowFrequencyWalker extends LocusWalker { @Argument(fullName="useMeanProb", doc="Use the mean probability as the \"average quality\" rather than median Q-score") boolean useMean = false; + @Argument(fullName="minimumMappingQuality", shortName="mmq", doc="Only use reads above this mapping quality in the power calculation", required=false) + int minMappingQuality = -1; + public void initialize() { if ( alleleFreq < 1 ) { String err = "Allele frequency (-af) must be greater than or equal to one."; @@ -67,6 +70,11 @@ public class PowerBelowFrequencyWalker extends LocusWalker { context = new AlignmentContext(context.getLocation(), thresh.getFirst(), thresh.getSecond()); } + if ( minMappingQuality > -1 ) { + Pair,List> goodMaps = PoolUtils.thresholdReadsByMappingQuality(context.getReads(),context.getOffsets(),minMappingQuality); + context = new AlignmentContext(context.getLocation(), goodMaps.getFirst(), goodMaps.getSecond()); + } + // calculate powers and put into output string for ( int i = 1; i <= alleleFreq; i ++ ) {