If a SAMRecord is on the negative strand, reverse complement the SQ tag.
git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@370 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
parent
1d5a22cacf
commit
817278be46
|
|
@ -0,0 +1,50 @@
|
||||||
|
package org.broadinstitute.sting.playground.fourbasecaller;
|
||||||
|
|
||||||
|
import org.broadinstitute.sting.utils.cmdLine.CommandLineProgram;
|
||||||
|
import org.broadinstitute.sting.utils.QualityUtils;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
import net.sf.samtools.SAMFileReader;
|
||||||
|
import net.sf.samtools.SAMFileWriter;
|
||||||
|
import net.sf.samtools.SAMFileWriterFactory;
|
||||||
|
import net.sf.samtools.SAMRecord;
|
||||||
|
|
||||||
|
public class MatchSQTagToStrand extends CommandLineProgram {
|
||||||
|
public static MatchSQTagToStrand Instance = null;
|
||||||
|
|
||||||
|
public File SAM_IN;
|
||||||
|
public File SAM_OUT;
|
||||||
|
|
||||||
|
public static void main(String[] argv) {
|
||||||
|
Instance = new MatchSQTagToStrand();
|
||||||
|
start(Instance, argv);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setupArgs() {
|
||||||
|
m_parser.addRequiredArg("sam_in", "I", "Input SAM file", "SAM_IN");
|
||||||
|
m_parser.addRequiredArg("sam_out", "O", "Output SAM file", "SAM_OUT");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected int execute() {
|
||||||
|
SAMFileReader sf = new SAMFileReader(SAM_IN);
|
||||||
|
sf.setValidationStringency(SAMFileReader.ValidationStringency.SILENT);
|
||||||
|
|
||||||
|
SAMFileWriter sw = new SAMFileWriterFactory().makeSAMOrBAMWriter(sf.getFileHeader(), true, SAM_OUT);
|
||||||
|
|
||||||
|
for (SAMRecord sr : sf) {
|
||||||
|
if (sr.getReadNegativeStrandFlag()) {
|
||||||
|
byte[] sq = (byte[]) sr.getAttribute("SQ");
|
||||||
|
sq = QualityUtils.reverseComplementCompressedQualityArray(sq);
|
||||||
|
|
||||||
|
sr.setAttribute("SQ", sq);
|
||||||
|
}
|
||||||
|
|
||||||
|
sw.addAlignment(sr);
|
||||||
|
}
|
||||||
|
|
||||||
|
sw.close();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue