From c70e6376bfd5298e5c83b42354432654bf2d2b3f Mon Sep 17 00:00:00 2001 From: Gabriel Leventhal Date: Thu, 19 Jul 2018 17:13:51 -0400 Subject: [PATCH] Reverse complement sequence if necessary in SAM output. --- include/mummer/postnuc.hh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/include/mummer/postnuc.hh b/include/mummer/postnuc.hh index 3a9b552..05de86b 100644 --- a/include/mummer/postnuc.hh +++ b/include/mummer/postnuc.hh @@ -15,6 +15,10 @@ namespace mummer { + namespace nucmer { + void reverse_complement(std::string& s); + } + namespace postnuc { static const signed char FORWARD_CHAR = 1; static const signed char REVERSE_CHAR = -1; @@ -432,7 +436,13 @@ void printSAMAlignments(const std::vector& Alignments, if(long_format) { const auto start = hard_clip ? Al.sB : 1; const auto len = hard_clip ? Al.eB - start + 1 : B.len(); - SAMFile.write(B.seq() + start, len); + if (! fwd) { + std::string revComp(B.seq() + start, len); + nucmer::reverse_complement(revComp); + SAMFile << revComp; + } else { + SAMFile.write(B.seq() + start, len); + } } else { SAMFile << '*'; }