From d8351cb9fcff21e05961c8adeb7f569c8c2f118a Mon Sep 17 00:00:00 2001 From: ebanks Date: Tue, 5 Jan 2010 18:53:01 +0000 Subject: [PATCH] Give Annotations access to rod data. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@2504 348d0f76-0448-11de-a6fe-93d51630548a --- .../gatk/walkers/annotator/AlleleBalance.java | 3 ++- .../gatk/walkers/annotator/DepthOfCoverage.java | 3 ++- .../gatk/walkers/annotator/HardyWeinberg.java | 3 ++- .../gatk/walkers/annotator/HomopolymerRun.java | 3 ++- .../gatk/walkers/annotator/MappingQualityZero.java | 3 ++- .../sting/gatk/walkers/annotator/QualByDepth.java | 3 ++- .../gatk/walkers/annotator/RMSMappingQuality.java | 3 ++- .../sting/gatk/walkers/annotator/RankSumTest.java | 3 ++- .../gatk/walkers/annotator/SecondBaseSkew.java | 3 ++- .../gatk/walkers/annotator/SpanningDeletions.java | 3 ++- .../gatk/walkers/annotator/VariantAnnotation.java | 3 ++- .../gatk/walkers/annotator/VariantAnnotator.java | 14 +++++++------- .../gatk/walkers/genotyper/UnifiedGenotyper.java | 4 ++-- 13 files changed, 31 insertions(+), 20 deletions(-) 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 8d74510c6..644a916b2 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AlleleBalance.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AlleleBalance.java @@ -2,6 +2,7 @@ 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.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.utils.*; import org.broadinstitute.sting.utils.genotype.*; import org.broadinstitute.sting.utils.genotype.vcf.VCFInfoHeaderLine; @@ -12,7 +13,7 @@ import java.util.Map; public class AlleleBalance extends StandardVariantAnnotation { - public String annotate(ReferenceContext ref, Map stratifiedContexts, Variation variation) { + public String annotate(RefMetaDataTracker tracker, ReferenceContext ref, Map stratifiedContexts, Variation variation) { if ( !(variation instanceof VariantBackedByGenotype) ) 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 49a6df52f..196dfe6c4 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/DepthOfCoverage.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/DepthOfCoverage.java @@ -2,6 +2,7 @@ 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.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.utils.genotype.Variation; import org.broadinstitute.sting.utils.genotype.vcf.VCFRecord; import org.broadinstitute.sting.utils.genotype.vcf.VCFInfoHeaderLine; @@ -11,7 +12,7 @@ import java.util.Map; public class DepthOfCoverage extends StandardVariantAnnotation { - public String annotate(ReferenceContext ref, Map stratifiedContexts, Variation variation) { + public String annotate(RefMetaDataTracker tracker, ReferenceContext ref, Map stratifiedContexts, Variation variation) { int depth = 0; for ( String sample : stratifiedContexts.keySet() ) depth += stratifiedContexts.get(sample).getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE).size(); diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HardyWeinberg.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HardyWeinberg.java index e41f0c639..40bf53151 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HardyWeinberg.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HardyWeinberg.java @@ -2,6 +2,7 @@ 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.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.utils.genotype.*; import org.broadinstitute.sting.utils.genotype.vcf.VCFInfoHeaderLine; import org.broadinstitute.sting.utils.QualityUtils; @@ -16,7 +17,7 @@ public class HardyWeinberg implements VariantAnnotation { private static final int MIN_GENOTYPE_QUALITY = 10; private static final int MIN_NEG_LOG10_PERROR = MIN_GENOTYPE_QUALITY / 10; - public String annotate(ReferenceContext ref, Map stratifiedContexts, Variation variation) { + public String annotate(RefMetaDataTracker tracker, ReferenceContext ref, Map stratifiedContexts, Variation variation) { if ( !(variation instanceof VariantBackedByGenotype) ) return null; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HomopolymerRun.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HomopolymerRun.java index 6de1bf4f5..9b1542328 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HomopolymerRun.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HomopolymerRun.java @@ -2,6 +2,7 @@ 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.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.utils.GenomeLoc; import org.broadinstitute.sting.utils.genotype.Variation; import org.broadinstitute.sting.utils.genotype.vcf.VCFInfoHeaderLine; @@ -11,7 +12,7 @@ import java.util.Map; public class HomopolymerRun extends StandardVariantAnnotation { - public String annotate(ReferenceContext ref, Map stratifiedContexts, Variation variation) { + public String annotate(RefMetaDataTracker tracker, ReferenceContext ref, Map stratifiedContexts, Variation variation) { if ( !variation.isBiallelic() || !variation.isSNP() ) return null; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZero.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZero.java index 260005f58..ebd663642 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZero.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZero.java @@ -2,6 +2,7 @@ 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.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.utils.pileup.ReadBackedPileup; import org.broadinstitute.sting.utils.pileup.PileupElement; import org.broadinstitute.sting.utils.genotype.Variation; @@ -12,7 +13,7 @@ import java.util.Map; public class MappingQualityZero implements VariantAnnotation { - public String annotate(ReferenceContext ref, Map stratifiedContexts, Variation variation) { + public String annotate(RefMetaDataTracker tracker, ReferenceContext ref, Map stratifiedContexts, Variation variation) { int mq0 = 0; for ( String sample : stratifiedContexts.keySet() ) { ReadBackedPileup pileup = stratifiedContexts.get(sample).getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE).getBasePileup(); diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/QualByDepth.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/QualByDepth.java index b5f7d7233..629194964 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/QualByDepth.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/QualByDepth.java @@ -2,6 +2,7 @@ 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.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.utils.genotype.Variation; import org.broadinstitute.sting.utils.genotype.VariantBackedByGenotype; import org.broadinstitute.sting.utils.genotype.Genotype; @@ -15,7 +16,7 @@ import java.util.ArrayList; public class QualByDepth extends StandardVariantAnnotation { - public String annotate(ReferenceContext ref, Map stratifiedContexts, Variation variation) { + public String annotate(RefMetaDataTracker tracker, ReferenceContext ref, Map stratifiedContexts, Variation variation) { if ( !(variation instanceof VariantBackedByGenotype) ) return null; final List genotypes = ((VariantBackedByGenotype)variation).getGenotypes(); 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 eb408aba7..b7c7ec04b 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RMSMappingQuality.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RMSMappingQuality.java @@ -2,6 +2,7 @@ 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.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.utils.MathUtils; import org.broadinstitute.sting.utils.pileup.ReadBackedPileup; import org.broadinstitute.sting.utils.pileup.PileupElement; @@ -15,7 +16,7 @@ import java.util.ArrayList; public class RMSMappingQuality extends StandardVariantAnnotation { - public String annotate(ReferenceContext ref, Map stratifiedContexts, Variation variation) { + public String annotate(RefMetaDataTracker tracker, ReferenceContext ref, Map stratifiedContexts, Variation variation) { ArrayList qualities = new ArrayList(); for ( String sample : stratifiedContexts.keySet() ) { ReadBackedPileup pileup = stratifiedContexts.get(sample).getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE).getBasePileup(); 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 c3a373bd3..3989d317d 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RankSumTest.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RankSumTest.java @@ -2,6 +2,7 @@ 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.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.utils.*; import org.broadinstitute.sting.utils.pileup.ReadBackedPileup; import org.broadinstitute.sting.utils.pileup.PileupElement; @@ -17,7 +18,7 @@ public class RankSumTest implements VariantAnnotation { private final static boolean DEBUG = false; private static final double minPValue = 1e-10; - public String annotate(ReferenceContext ref, Map stratifiedContexts, Variation variation) { + public String annotate(RefMetaDataTracker tracker, ReferenceContext ref, Map stratifiedContexts, Variation variation) { if ( !(variation instanceof VariantBackedByGenotype) ) return null; 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 d7e4f91ce..69a842a6f 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SecondBaseSkew.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SecondBaseSkew.java @@ -8,6 +8,7 @@ import org.broadinstitute.sting.utils.genotype.Variation; import org.broadinstitute.sting.utils.genotype.vcf.VCFInfoHeaderLine; import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.contexts.StratifiedAlignmentContext; +import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import java.util.Map; @@ -29,7 +30,7 @@ public class SecondBaseSkew implements VariantAnnotation { public VCFInfoHeaderLine getDescription() { return new VCFInfoHeaderLine(KEY_NAME, 1, VCFInfoHeaderLine.INFO_TYPE.Float, "Chi-square Secondary Base Skew"); } - public String annotate(ReferenceContext ref, Map stratifiedContexts, Variation variation) { + public String annotate(RefMetaDataTracker tracker, ReferenceContext ref, Map stratifiedContexts, Variation variation) { if ( !variation.isBiallelic() || !variation.isSNP() ) return null; 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 942d1c9bc..2faf52302 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SpanningDeletions.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SpanningDeletions.java @@ -2,6 +2,7 @@ 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.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.utils.pileup.ReadBackedPileup; import org.broadinstitute.sting.utils.genotype.Variation; import org.broadinstitute.sting.utils.genotype.vcf.VCFInfoHeaderLine; @@ -11,7 +12,7 @@ import java.util.Map; public class SpanningDeletions extends StandardVariantAnnotation { - public String annotate(ReferenceContext ref, Map stratifiedContexts, Variation variation) { + public String annotate(RefMetaDataTracker tracker, ReferenceContext ref, Map stratifiedContexts, Variation variation) { int deletions = 0; int depth = 0; for ( String sample : stratifiedContexts.keySet() ) { diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotation.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotation.java index d81109db8..f0bc95407 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotation.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotation.java @@ -2,6 +2,7 @@ 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.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.utils.genotype.Variation; import org.broadinstitute.sting.utils.genotype.vcf.VCFInfoHeaderLine; @@ -11,7 +12,7 @@ import java.util.Map; public interface VariantAnnotation { // return the annotation for the given variation and context split by sample (return null for no annotation) - public String annotate(ReferenceContext ref, Map stratifiedContexts, Variation variation); + public String annotate(RefMetaDataTracker tracker, ReferenceContext ref, Map stratifiedContexts, Variation variation); // return the INFO key public String getKeyName(); 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 9a1073e59..13852751a 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotator.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotator.java @@ -168,7 +168,7 @@ public class VariantAnnotator extends RodWalker { variant.isSNP() ) { Map stratifiedContexts = StratifiedAlignmentContext.splitContextBySample(context.getBasePileup(), null, null); if ( stratifiedContexts != null ) - annotations = getAnnotations(ref, stratifiedContexts, variant, requestedAnnotations); + annotations = getAnnotations(tracker, ref, stratifiedContexts, variant, requestedAnnotations); } writeVCF(tracker, ref, context, variant, annotations); @@ -210,26 +210,26 @@ public class VariantAnnotator extends RodWalker { } // option #1: don't specify annotations to be used: standard annotations are used by default - public static Map getAnnotations(ReferenceContext ref, Map stratifiedContexts, Variation variation) { + public static Map getAnnotations(RefMetaDataTracker tracker, ReferenceContext ref, Map stratifiedContexts, Variation variation) { if ( standardAnnotations == null ) determineAllAnnotations(); - return getAnnotations(ref, stratifiedContexts, variation, standardAnnotations.values()); + return getAnnotations(tracker, ref, stratifiedContexts, variation, standardAnnotations.values()); } // option #2: specify that all possible annotations be used - public static Map getAllAnnotations(ReferenceContext ref, Map stratifiedContexts, Variation variation) { + public static Map getAllAnnotations(RefMetaDataTracker tracker, ReferenceContext ref, Map stratifiedContexts, Variation variation) { if ( allAnnotations == null ) determineAllAnnotations(); - return getAnnotations(ref, stratifiedContexts, variation, allAnnotations.values()); + return getAnnotations(tracker, ref, stratifiedContexts, variation, allAnnotations.values()); } // option #3: specify the exact annotations to be used - public static Map getAnnotations(ReferenceContext ref, Map stratifiedContexts, Variation variation, Collection annotations) { + public static Map getAnnotations(RefMetaDataTracker tracker, ReferenceContext ref, Map stratifiedContexts, Variation variation, Collection annotations) { HashMap results = new HashMap(); for ( VariantAnnotation annotator : annotations) { - String annot = annotator.annotate(ref, stratifiedContexts, variation); + String annot = annotator.annotate(tracker, ref, stratifiedContexts, variation); if ( annot != null ) { results.put(annotator.getKeyName(), annot); } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyper.java b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyper.java index e65375685..66ae3ac20 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyper.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyper.java @@ -257,9 +257,9 @@ public class UnifiedGenotyper extends LocusWalker annotations; if ( UAC.ALL_ANNOTATIONS ) - annotations = VariantAnnotator.getAllAnnotations(refContext, stratifiedContexts, call.first); + annotations = VariantAnnotator.getAllAnnotations(tracker, refContext, stratifiedContexts, call.first); else - annotations = VariantAnnotator.getAnnotations(refContext, stratifiedContexts, call.first); + annotations = VariantAnnotator.getAnnotations(tracker, refContext, stratifiedContexts, call.first); ((ArbitraryFieldsBacked)call.first).setFields(annotations); }