package org.broadinstitute.sting.gatk.walkers; import org.broadinstitute.sting.gatk.LocusContext; import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import java.util.List; import java.util.Arrays; import java.util.ArrayList; import net.sf.samtools.SAMRecord; /** * Created by IntelliJ IDEA. * User: hanna * Date: 13 Apr, 2009 * Time: 11:23:14 AM * To change this template use File | Settings | File Templates. */ public class PrintLocusContextWalker extends LocusWalker implements TreeReducible { public LocusContext map(RefMetaDataTracker tracker, char ref, LocusContext context) { out.printf( "In map: ref = %c, loc = %s, reads = %s%n", ref, context.getLocation(), Arrays.deepToString( getReadNames(context.getReads()) ) ); return context; } public Integer reduceInit() { return 0; } public Integer reduce(LocusContext context, Integer sum) { return sum + 1; } public Integer treeReduce(Integer lhs, Integer rhs) { return lhs + rhs; } private String[] getReadNames( List reads ) { String[] readNames = new String[ reads.size() ]; for( int i = 0; i < reads.size(); i++ ) { readNames[i] = String.format("%nname = %s, start = %d, end = %d", reads.get(i).getReadName(), reads.get(i).getAlignmentStart(), reads.get(i).getAlignmentEnd()); } //Arrays.sort(readNames); return readNames; } }