A class to print out as much context about the given locus site as is possible. Useful for testing traversal engines -- run old and new code across a given region and diff the output to make sure they have the same context.

git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@383 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
hanna 2009-04-13 15:29:55 +00:00
parent 6652f13a17
commit e91a429c58
1 changed files with 45 additions and 0 deletions

View File

@ -0,0 +1,45 @@
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<LocusContext, Integer> {
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) {
out.printf( "In reduce: loc = %s, reads = %s, sum =%d%n", context.getLocation(),
Arrays.deepToString( getReadNames(context.getReads()) ),
sum );
return sum + 1;
}
private String[] getReadNames( List<SAMRecord> reads ) {
String[] readNames = new String[ reads.size() ];
for( int i = 0; i < reads.size(); i++ )
readNames[i] = reads.get(i).getReadName();
return readNames;
}
}