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 ++ ) {