diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/AvgDepthOfCoverageWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/AvgDepthOfCoverageWalker.java new file mode 100644 index 000000000..83c6f5434 --- /dev/null +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/AvgDepthOfCoverageWalker.java @@ -0,0 +1,28 @@ +package org.broadinstitute.sting.playground.gatk.walkers; + +import org.broadinstitute.sting.utils.Pair; +import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum; +import org.broadinstitute.sting.gatk.walkers.LocusWalker; +import org.broadinstitute.sting.gatk.walkers.WalkerName; +import java.util.List; + +@WalkerName("Average_Depth_Of_Coverage") +public class AvgDepthOfCoverageWalker extends LocusWalker> { + + public Integer map(List rodData, char ref, LocusContext context) { + return context.getReads().size(); + } + + public Pair reduceInit() { return new Pair((long)0,(long)0); } + + public Pair reduce(Integer value, Pair sum) { + long left = new Long(value.longValue() + sum.getFirst().longValue()); + long right = new Long(sum.getSecond().longValue() + 1); + return new Pair(left, right); + } + + public void onTraversalDone(Pair result) { + System.out.println("Average depth of coverage is: " + ((double)result.getFirst() / (double)result.getSecond())); + } +}