From 8ccbcc41017a67a1b023daab17e9b2f13c09e671 Mon Sep 17 00:00:00 2001 From: depristo Date: Mon, 16 Mar 2009 15:51:48 +0000 Subject: [PATCH] Mismatch counter git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@62 348d0f76-0448-11de-a6fe-93d51630548a --- .../gatk/walkers/MismatchCounterWalker.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100755 playground/java/src/org/broadinstitute/sting/gatk/walkers/MismatchCounterWalker.java diff --git a/playground/java/src/org/broadinstitute/sting/gatk/walkers/MismatchCounterWalker.java b/playground/java/src/org/broadinstitute/sting/gatk/walkers/MismatchCounterWalker.java new file mode 100755 index 000000000..ec7911166 --- /dev/null +++ b/playground/java/src/org/broadinstitute/sting/gatk/walkers/MismatchCounterWalker.java @@ -0,0 +1,41 @@ +package org.broadinstitute.sting.gatk.walkers; + +import net.sf.samtools.SAMRecord; +import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.utils.Utils; +import edu.mit.broad.picard.reference.ReferenceSequence; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class MismatchCounterWalker extends BasicReadWalker { + public Integer map(LocusContext context, SAMRecord read) { + int nMismatches = 0; + + ReferenceSequence refseq = context.getReferenceContig(); + + int start = read.getAlignmentStart()-1; + int stop = read.getAlignmentEnd(); + if ( read.getAlignmentBlocks().size() == 1 ) { + // No indels + List refSeq = Utils.subseq(context.getReferenceContig().getBases(), start, stop); + List readBases = Utils.subseq(read.getReadBases()); + + assert(refSeq.size() == readBases.size()); + + System.out.printf("start, stop = %d %d%n", start, stop); + System.out.println(read.format()); + System.out.println(Utils.baseList2string(refSeq)); + System.out.println(Utils.baseList2string(readBases)); + } + + return nMismatches; + } + + public Integer reduceInit() { return 0; } + + public Integer reduce(Integer value, Integer sum) { + return value + sum; + } +} \ No newline at end of file