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
This commit is contained in:
parent
a4b69d0adf
commit
8b087305f3
|
|
@ -39,7 +39,7 @@ public class AlleleBalance extends StandardVariantAnnotation {
|
||||||
if ( genotypeStr.length() != 2 )
|
if ( genotypeStr.length() != 2 )
|
||||||
return null;
|
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 )
|
if ( bases.length() == 0 )
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ public class DepthOfCoverage extends StandardVariantAnnotation {
|
||||||
public String annotate(ReferenceContext ref, Map<String, StratifiedAlignmentContext> stratifiedContexts, Variation variation) {
|
public String annotate(ReferenceContext ref, Map<String, StratifiedAlignmentContext> stratifiedContexts, Variation variation) {
|
||||||
int depth = 0;
|
int depth = 0;
|
||||||
for ( String sample : stratifiedContexts.keySet() )
|
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);
|
return String.format("%d", depth);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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<String, StratifiedAlignmentContext> 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"); }
|
||||||
|
}
|
||||||
|
|
@ -18,7 +18,7 @@ public class RMSMappingQuality extends StandardVariantAnnotation {
|
||||||
public String annotate(ReferenceContext ref, Map<String, StratifiedAlignmentContext> stratifiedContexts, Variation variation) {
|
public String annotate(ReferenceContext ref, Map<String, StratifiedAlignmentContext> stratifiedContexts, Variation variation) {
|
||||||
ArrayList<Integer> qualities = new ArrayList<Integer>();
|
ArrayList<Integer> qualities = new ArrayList<Integer>();
|
||||||
for ( String sample : stratifiedContexts.keySet() ) {
|
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 )
|
for (PileupElement p : pileup )
|
||||||
qualities.add(p.getRead().getMappingQuality());
|
qualities.add(p.getRead().getMappingQuality());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ public class RankSumTest implements VariantAnnotation {
|
||||||
if ( context == null )
|
if ( context == null )
|
||||||
continue;
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ public class SecondBaseSkew implements VariantAnnotation {
|
||||||
|
|
||||||
Pair<Integer, Integer> depth = new Pair<Integer, Integer>(0, 0);
|
Pair<Integer, Integer> depth = new Pair<Integer, Integer>(0, 0);
|
||||||
for ( String sample : stratifiedContexts.keySet() ) {
|
for ( String sample : stratifiedContexts.keySet() ) {
|
||||||
Pair<Integer, Integer> sampleDepth = getSecondaryPileupNonrefCount(ref.getBase(), stratifiedContexts.get(sample).getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE).getPileup(), snp);
|
Pair<Integer, Integer> sampleDepth = getSecondaryPileupNonrefCount(ref.getBase(), stratifiedContexts.get(sample).getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE).getBasePileup(), snp);
|
||||||
depth.first += sampleDepth.first;
|
depth.first += sampleDepth.first;
|
||||||
depth.second += sampleDepth.second;
|
depth.second += sampleDepth.second;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ public class SpanningDeletions extends StandardVariantAnnotation {
|
||||||
int deletions = 0;
|
int deletions = 0;
|
||||||
int depth = 0;
|
int depth = 0;
|
||||||
for ( String sample : stratifiedContexts.keySet() ) {
|
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();
|
deletions += pileup.getNumberOfDeletions();
|
||||||
depth += pileup.size();
|
depth += pileup.size();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -166,7 +166,7 @@ public class VariantAnnotator extends RodWalker<Integer, Integer> {
|
||||||
if ( BaseUtils.simpleBaseToBaseIndex(ref.getBase()) != -1 &&
|
if ( BaseUtils.simpleBaseToBaseIndex(ref.getBase()) != -1 &&
|
||||||
variant.isBiallelic() &&
|
variant.isBiallelic() &&
|
||||||
variant.isSNP() ) {
|
variant.isSNP() ) {
|
||||||
Map<String, StratifiedAlignmentContext> stratifiedContexts = StratifiedAlignmentContext.splitContextBySample(context.getPileup(), null, null);
|
Map<String, StratifiedAlignmentContext> stratifiedContexts = StratifiedAlignmentContext.splitContextBySample(context.getBasePileup(), null, null);
|
||||||
if ( stratifiedContexts != null )
|
if ( stratifiedContexts != null )
|
||||||
annotations = getAnnotations(ref, stratifiedContexts, variant, requestedAnnotations);
|
annotations = getAnnotations(ref, stratifiedContexts, variant, requestedAnnotations);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue