package org.broadinstitute.sting.gatk.walkers; import org.broadinstitute.sting.gatk.LocusContext; import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum; import org.broadinstitute.sting.utils.cmdLine.Argument; import org.broadinstitute.sting.utils.Pair; import java.util.List; /** * Created by IntelliJ IDEA. * User: mdepristo * Date: Feb 22, 2009 * Time: 3:22:14 PM * To change this template use File | Settings | File Templates. */ public class DepthOfCoverageWalker extends LocusWalker> { @Argument(fullName="suppressLocusPrinting",required=false,defaultValue="false") public boolean suppressPrinting; public Integer map(List rodData, char ref, LocusContext context) { if ( !suppressPrinting ) out.printf("%s: %d%n", context.getLocation(), context.getReads().size() ); 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) { out.println("Average depth of coverage is: " + ((double)result.getFirst() / (double)result.getSecond())); } }