4a7640f829879fd67b6160a41fb686d8e0c62e00 markd Mon Aug 3 15:16:52 2015 -0700 convert asserts to errAborts to help debug bogus GFF3 alignments (no redmine) diff --git src/lib/psl.c src/lib/psl.c index 8e4611a..0811ca4 100644 --- src/lib/psl.c +++ src/lib/psl.c @@ -1907,32 +1907,35 @@ tNext += size; qNext += size; break; case 'I': // inserted in target tNext += size; break; case 'D': // deleted from target qNext += size; break; default: errAbort("unrecognized CIGAR op %c in %s", op, cigar); } } } -assert(qNext == qBlkEnd); -assert(tNext == tBlkEnd); + +if (qNext != qBlkEnd) + errAbort("CIGAR query length does not match specified query range %s:%d-%d", qName, qStart, qEnd); +if (tNext != tBlkEnd) + errAbort("CIGAR target length does not match specified target range %s:%d-%d", tName, tStart, tEnd); psl->match = totalSize; return psl; } int pslRangeTreeOverlap(struct psl *psl, struct rbTree *rangeTree) /* Return amount that psl overlaps (on target side) with rangeTree. */ { int i; int overlap = 0; boolean isRc = (psl->strand[1] == '-'); for (i=0; i<psl->blockCount; ++i) { int start = psl->tStarts[i]; int end = start + psl->blockSizes[i]; if (isRc)