Skip to content

Commit ef2ebe9

Browse files
committed
fix: seq len underflow
1 parent ffb0561 commit ef2ebe9

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/prefiltering/UngappedAlignment.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ void UngappedAlignment::scoreDiagonalAndUpdateHits(const char * queryProfile,
249249
// hack to avoid too long sequences
250250
// this sequences will be processed by computeLongScore later
251251
seqs[seqIdx].seq = (unsigned char *) tmp.first;
252-
seqs[seqIdx].seqLen = 1;
252+
seqs[seqIdx].seqLen = 0;
253253
seqs[seqIdx].id = seqIdx;
254254
}else{
255255
seqs[seqIdx].seq = (unsigned char *) tmp.first;
@@ -276,7 +276,7 @@ void UngappedAlignment::scoreDiagonalAndUpdateHits(const char * queryProfile,
276276
unsigned int minSeqLen = std::min(targetMaxLen - minDistToDiagonal, queryLen);
277277
for(size_t i = 0; i < DIAGONALBINSIZE; i++) {
278278
tmpSeqs[i] = seqs[i].seq + minDistToDiagonal;
279-
seqLength[i] = std::min(seqs[i].seqLen - minDistToDiagonal, minSeqLen);
279+
seqLength[i] = (seqs[i].seqLen == 0) ? 0 : std::min(seqs[i].seqLen - minDistToDiagonal, minSeqLen);
280280
}
281281
unrolledDiagonalScoring<Sequence::PROFILE_AA_SIZE + 1>(queryProfile, seqLength,
282282
tmpSeqs, score_arr);
@@ -286,7 +286,7 @@ void UngappedAlignment::scoreDiagonalAndUpdateHits(const char * queryProfile,
286286
for(size_t hitIdx = 0; hitIdx < hitSize; hitIdx++){
287287
hits[seqs[hitIdx].id]->count = static_cast<unsigned char>(std::min(static_cast<unsigned int>(255),
288288
score_arr[hitIdx]));
289-
if(seqs[hitIdx].seqLen == 1){
289+
if(seqs[hitIdx].seqLen == 0){
290290
std::pair<const unsigned char *, const unsigned int> dbSeq = sequenceLookup->getSequence(hits[hitIdx]->id);
291291
if(dbSeq.second >= 32768){
292292
int max = computeLongScore(queryProfile, queryLen, dbSeq, diagonal);

0 commit comments

Comments
 (0)