From 8b087305f3977d20b79305d0be91becc84c6e8a8 Mon Sep 17 00:00:00 2001 From: ebanks Date: Tue, 5 Jan 2010 17:07:19 +0000 Subject: [PATCH] Added back the MQ0 annotation - however, it's not yet standard (since mq0 reads are filtered out by default in the genotyper). But it'll work when using the Annotator as a standalone. While I'm at it, change getPileup to getBasePileup to remove all of the deprecation warnings. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@2502 348d0f76-0448-11de-a6fe-93d51630548a --- .../gatk/walkers/annotator/AlleleBalance.java | 2 +- .../walkers/annotator/DepthOfCoverage.java | 2 +- .../walkers/annotator/MappingQualityZero.java | 30 +++++++++++++++++++ .../walkers/annotator/RMSMappingQuality.java | 2 +- .../gatk/walkers/annotator/RankSumTest.java | 2 +- .../walkers/annotator/SecondBaseSkew.java | 2 +- .../walkers/annotator/SpanningDeletions.java | 2 +- .../walkers/annotator/VariantAnnotator.java | 2 +- 8 files changed, 37 insertions(+), 7 deletions(-) create mode 100755 java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZero.java diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AlleleBalance.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AlleleBalance.java index 0917338fb..8d74510c6 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AlleleBalance.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AlleleBalance.java @@ -39,7 +39,7 @@ public class AlleleBalance extends StandardVariantAnnotation { if ( genotypeStr.length() != 2 ) return null; - final String bases = new String(context.getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE).getPileup().getBases()).toUpperCase(); + final String bases = new String(context.getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE).getBasePileup().getBases()).toUpperCase(); if ( bases.length() == 0 ) return null; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/DepthOfCoverage.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/DepthOfCoverage.java index 7868c01ef..49a6df52f 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/DepthOfCoverage.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/DepthOfCoverage.java @@ -14,7 +14,7 @@ public class DepthOfCoverage extends StandardVariantAnnotation { public String annotate(ReferenceContext ref, Map stratifiedContexts, Variation variation) { int depth = 0; for ( String sample : stratifiedContexts.keySet() ) - depth += stratifiedContexts.get(sample).getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE).getPileup().size(); + depth += stratifiedContexts.get(sample).getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE).size(); return String.format("%d", depth); } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZero.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZero.java new file mode 100755 index 000000000..260005f58 --- /dev/null +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZero.java @@ -0,0 +1,30 @@ +package org.broadinstitute.sting.gatk.walkers.annotator; + +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; +import org.broadinstitute.sting.gatk.contexts.StratifiedAlignmentContext; +import org.broadinstitute.sting.utils.pileup.ReadBackedPileup; +import org.broadinstitute.sting.utils.pileup.PileupElement; +import org.broadinstitute.sting.utils.genotype.Variation; +import org.broadinstitute.sting.utils.genotype.vcf.VCFInfoHeaderLine; + +import java.util.Map; + + +public class MappingQualityZero implements VariantAnnotation { + + public String annotate(ReferenceContext ref, Map stratifiedContexts, Variation variation) { + int mq0 = 0; + for ( String sample : stratifiedContexts.keySet() ) { + ReadBackedPileup pileup = stratifiedContexts.get(sample).getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE).getBasePileup(); + for (PileupElement p : pileup ) { + if ( p.getMappingQual() == 0 ) + mq0++; + } + } + return String.format("%d", mq0); + } + + public String getKeyName() { return "MQ0"; } + + public VCFInfoHeaderLine getDescription() { return new VCFInfoHeaderLine(getKeyName(), 1, VCFInfoHeaderLine.INFO_TYPE.Integer, "Total Mapping Quality Zero Reads"); } +} \ No newline at end of file diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RMSMappingQuality.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RMSMappingQuality.java index 90db8d8ee..eb408aba7 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RMSMappingQuality.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RMSMappingQuality.java @@ -18,7 +18,7 @@ public class RMSMappingQuality extends StandardVariantAnnotation { public String annotate(ReferenceContext ref, Map stratifiedContexts, Variation variation) { ArrayList qualities = new ArrayList(); for ( String sample : stratifiedContexts.keySet() ) { - ReadBackedPileup pileup = stratifiedContexts.get(sample).getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE).getPileup(); + ReadBackedPileup pileup = stratifiedContexts.get(sample).getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE).getBasePileup(); for (PileupElement p : pileup ) qualities.add(p.getRead().getMappingQuality()); } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RankSumTest.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RankSumTest.java index b990573df..c3a373bd3 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RankSumTest.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RankSumTest.java @@ -36,7 +36,7 @@ public class RankSumTest implements VariantAnnotation { if ( context == null ) continue; - fillQualsFromPileup(ref.getBase(), variation.getAlternativeBaseForSNP(), context.getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE).getPileup(), refQuals, altQuals); + fillQualsFromPileup(ref.getBase(), variation.getAlternativeBaseForSNP(), context.getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE).getBasePileup(), refQuals, altQuals); } } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SecondBaseSkew.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SecondBaseSkew.java index b81c0d6f3..d7e4f91ce 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SecondBaseSkew.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SecondBaseSkew.java @@ -37,7 +37,7 @@ public class SecondBaseSkew implements VariantAnnotation { Pair depth = new Pair(0, 0); for ( String sample : stratifiedContexts.keySet() ) { - Pair sampleDepth = getSecondaryPileupNonrefCount(ref.getBase(), stratifiedContexts.get(sample).getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE).getPileup(), snp); + Pair sampleDepth = getSecondaryPileupNonrefCount(ref.getBase(), stratifiedContexts.get(sample).getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE).getBasePileup(), snp); depth.first += sampleDepth.first; depth.second += sampleDepth.second; } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SpanningDeletions.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SpanningDeletions.java index 5ba5a95e8..942d1c9bc 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SpanningDeletions.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SpanningDeletions.java @@ -15,7 +15,7 @@ public class SpanningDeletions extends StandardVariantAnnotation { int deletions = 0; int depth = 0; for ( String sample : stratifiedContexts.keySet() ) { - ReadBackedPileup pileup = stratifiedContexts.get(sample).getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE).getPileup(); + ReadBackedPileup pileup = stratifiedContexts.get(sample).getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE).getBasePileup(); deletions += pileup.getNumberOfDeletions(); depth += pileup.size(); } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotator.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotator.java index 573b3599e..9a1073e59 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotator.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotator.java @@ -166,7 +166,7 @@ public class VariantAnnotator extends RodWalker { if ( BaseUtils.simpleBaseToBaseIndex(ref.getBase()) != -1 && variant.isBiallelic() && variant.isSNP() ) { - Map stratifiedContexts = StratifiedAlignmentContext.splitContextBySample(context.getPileup(), null, null); + Map stratifiedContexts = StratifiedAlignmentContext.splitContextBySample(context.getBasePileup(), null, null); if ( stratifiedContexts != null ) annotations = getAnnotations(ref, stratifiedContexts, variant, requestedAnnotations); }