61308020150706a0ce4437616eea098620f92f6d markd Sun Dec 13 11:31:03 2020 -0800 fixed snake track requesting a negative length of DNA in self-alignments #25987 diff --git src/hg/hgTracks/snakeTrack.c src/hg/hgTracks/snakeTrack.c index 35ec460..1e9c9bc 100644 --- src/hg/hgTracks/snakeTrack.c +++ src/hg/hgTracks/snakeTrack.c @@ -1111,31 +1111,31 @@ if (frac > 1.0) frac = 1.0; red = 255 - 255 * frac; blue = 255 * frac; } else { double frac = ((double) targetInsertSize - queryInsertSize) / targetInsertSize; if (frac > 1.0) frac = 1.0; red = 255 - 255 * frac; green = 255 * frac; } color = hvGfxFindColorIx(hvg, red, green, blue); } double queryGapNFrac = 0.0; double queryGapMaskedFrac = 0.0; - if (qs - lastQEnd != 0 && qs - lastQEnd < 1000000) { + if ((qs > lastQEnd) && qs - lastQEnd < 1000000) { // sketchy char *fileName = trackDbSetting(tg->tdb, "bigDataUrl"); char *otherSpecies = trackDbSetting(tg->tdb, "otherSpecies"); int handle = halOpenLOD(fileName, NULL); char *queryGapDna = halGetDna(handle, otherSpecies, sf->qName, lastQEnd, qs, NULL); long long numNs = 0; long long numMasked = 0; char *i = queryGapDna; while (*i != '\0') { if (*i == 'N' || *i == 'n') { numNs++; numMasked++; } if (*i == 'a' || *i == 't' || *i == 'g' || *i == 'c') { numMasked++;