A debugging tool to ensure the SQ tag in a four-prob SAM file matches the SAMRecord strand orientation.
git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@368 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
parent
9c37400c4f
commit
e410c005c0
|
|
@ -0,0 +1,58 @@
|
|||
package org.broadinstitute.sting.playground.gatk.walkers;
|
||||
|
||||
import org.broadinstitute.sting.gatk.walkers.ReadWalker;
|
||||
import org.broadinstitute.sting.gatk.LocusContext;
|
||||
import org.broadinstitute.sting.utils.QualityUtils;
|
||||
import net.sf.samtools.SAMRecord;
|
||||
|
||||
public class DisplayFourBaseReadWalker extends ReadWalker<Integer, Integer> {
|
||||
public Integer map(LocusContext context, SAMRecord read) {
|
||||
String bases = read.getReadString();
|
||||
|
||||
boolean displayed = false;
|
||||
|
||||
byte[] sq = (byte[]) read.getAttribute("SQ");
|
||||
|
||||
if (read.getReadName().equalsIgnoreCase("30JJE.5.24197751")) {
|
||||
System.out.println(read.format());
|
||||
}
|
||||
|
||||
for (int i = 0; i < sq.length; i++) {
|
||||
int baseIndex = QualityUtils.compressedQualityToBaseIndex(sq[i]);
|
||||
char base = '.';
|
||||
switch (baseIndex) {
|
||||
case 0: base = 'A'; break;
|
||||
case 1: base = 'C'; break;
|
||||
case 2: base = 'G'; break;
|
||||
case 3: base = 'T'; break;
|
||||
}
|
||||
|
||||
if (base == bases.charAt(i)) {
|
||||
if (!displayed) {
|
||||
System.out.println(bases);
|
||||
displayed = true;
|
||||
}
|
||||
|
||||
System.out.print(base);
|
||||
}
|
||||
else {
|
||||
if (displayed) {
|
||||
System.out.print(" ");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (displayed) {
|
||||
System.out.print("\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
public Integer reduceInit() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public Integer reduce(Integer value, Integer sum) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue