void ReadAlignment(int alignmentIndex, AlignmentCandidate<FASTASequence, FASTASequence> &alignment) { CmpAlignment cmpAln; ReadAlignment(alignmentIndex, cmpAln); string refSequence; string readSequence; readSequence.resize(cmpAln.alignmentArray.size()); refSequence.resize(cmpAln.alignmentArray.size()); ByteAlignmentToQueryString(&cmpAln.alignmentArray[0], cmpAln.alignmentArray.size(), &readSequence[0]); ByteAlignmentToRefString(&cmpAln.alignmentArray[0], cmpAln.alignmentArray.size(), &refSequence[0]); string ungappedRead, ungappedRef; RemoveGaps(readSequence, ungappedRead); RemoveGaps(refSequence, ungappedRef); GappedStringsToAlignment(readSequence, refSequence, alignment); FASTASequence qAlignedSeq, rAlignedSeq; qAlignedSeq.seq = (Nucleotide*) &ungappedRead[0]; qAlignedSeq.length = ungappedRead.size(); rAlignedSeq.seq = (Nucleotide*) &ungappedRef[0]; rAlignedSeq.length = ungappedRef.size(); alignment.tAlignedSeq.Copy(rAlignedSeq); alignment.qAlignedSeq.Copy(qAlignedSeq); unsigned int qStart = cmpAln.GetQueryStart(); unsigned int tStart = cmpAln.GetRefStart(); alignment.tPos = cmpAln.GetRefStart(); alignment.qPos = cmpAln.GetQueryStart(); alignment.nIns = cmpAln.GetNInsertions(); alignment.nDel = cmpAln.GetNDeletions(); alignment.nMatch = cmpAln.GetNMatch(); alignment.nMismatch=cmpAln.GetNMismatch(); alignment.qStrand= 0; alignment.tStrand = cmpAln.GetTStrand(); alignment.pctSimilarity = ((float)alignment.nMatch) / (alignment.nMatch + alignment.nMismatch + alignment.nIns + alignment.nDel); alignment.mapQV = cmpAln.GetMapQV(); }