be4311c07e14feb728abc6425ee606ffaa611a58 markd Fri Jan 22 06:46:58 2021 -0800 merge with master diff --git src/hg/hgTracks/snakeTrack.c src/hg/hgTracks/snakeTrack.c index 8a7bdf5..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++; @@ -1342,31 +1342,31 @@ char *aliasName = chromName; if (chromAlias) { if (differentWord(chromAlias, aliasName)) aliasName = chromAlias; } boolean isPsl = sameString(tg->tdb->type, "pslSnake"); // if we have a network error we want to put out a message about it struct errCatch *errCatch = errCatchNew(); if (errCatchStart(errCatch)) { char *fileName = trackDbSetting(tg->tdb, "bigDataUrl"); char *otherSpecies = trackDbSetting(tg->tdb, "otherSpecies"); - char *errString = "empty"; + char *errString = ""; int handle = -1; if (!isPsl) { handle = halOpenLOD(fileName, &errString); if (handle < 0) { errAbort("HAL open error: %s\n", errString); goto out; } } boolean isPackOrFull = (tg->visibility == tvFull) || (tg->visibility == tvPack); hal_dup_type_t dupMode = (isPackOrFull) ? HAL_QUERY_AND_TARGET_DUPS : HAL_QUERY_DUPS; hal_seqmode_type_t needSeq = isPackOrFull && (winBaseCount < showSnpWidth) ? HAL_LOD0_SEQUENCE : HAL_NO_SEQUENCE; @@ -1532,30 +1532,31 @@ void halSnakeMethods(struct track *tg, struct trackDb *tdb, int wordCount, char *words[]) { linkedFeaturesMethods(tg); tg->canPack = tdb->canPack = TRUE; tg->loadItems = halSnakeLoadItems; tg->drawItems = snakeDraw; tg->mapItemName = lfMapNameFromExtra; tg->subType = lfSubChain; //tg->extraUiData = (void *) chainCart; tg->totalHeight = snakeHeight; tg->drawLeftLabels = halSnakeDrawLeftLabels; tg->drawItemAt = snakeDrawAt; tg->itemHeight = snakeItemHeight; +tg->nextItemButtonable = FALSE; } #endif // USE_HAL #ifdef NOTNOW // from here down are routines to support the visualization of chains as snakes // this code is currently BROKEN, and may be removed completely in the future struct cartOptions { enum chainColorEnum chainColor; /* ChromColors, ScoreColors, NoColors */ int scoreFilter ; /* filter chains by score if > 0 */ }; // mySQL code to read in chains