diff --git a/src/assembler/assembleresult.cpp b/src/assembler/assembleresult.cpp index 078741d4..18435e2a 100644 --- a/src/assembler/assembleresult.cpp +++ b/src/assembler/assembleresult.cpp @@ -66,7 +66,8 @@ inline char* getRevFragment(const char* fragment, size_t fragLen, NucleotideMatr char *fragmentRev = new char[fragLen]; for (int pos = fragLen - 1; pos > -1; pos--) { int res = nuclMatrix->aa2int[static_cast(fragment[pos])]; - fragmentRev[(fragLen - 1) - pos] = nuclMatrix->int2aa[nuclMatrix->reverseResidue(res)]; + char revRes = nuclMatrix->int2aa[nuclMatrix->reverseResidue(res)]; + fragmentRev[(fragLen - 1) - pos] = (revRes == 'X')? 'N' : revRes; } return fragmentRev; } @@ -133,8 +134,8 @@ int doassembly(LocalParameters &par) { NucleotideMatrix *nuclMatrix = (NucleotideMatrix *) subMat; for (int pos = querySeqLen - 1; pos > -1; pos--) { int res = subMat->aa2int[static_cast(querySeq[pos])]; - res = (res == 'X')? 'N' : res; - queryRevSeq[(querySeqLen - 1) - pos] = subMat->int2aa[nuclMatrix->reverseResidue(res)]; + char revRes = subMat->int2aa[nuclMatrix->reverseResidue(res)]; + queryRevSeq[(querySeqLen - 1) - pos] = (revRes == 'X')? 'N' : revRes; } queryRev = std::string(queryRevSeq,querySeqLen);