c3bb4207fb2a58064b937ba9fef1cc11852f7576 hiram Wed Mar 25 10:48:49 2026 -0700 allow trackDb entry to override the in-code defaults of the gcOnFly track refs #35958 diff --git src/hg/hgTracks/bigWigTrack.c src/hg/hgTracks/bigWigTrack.c index 10471d972b5..1974f096599 100644 --- src/hg/hgTracks/bigWigTrack.c +++ src/hg/hgTracks/bigWigTrack.c @@ -431,30 +431,40 @@ gc5BaseOnTheFlyLoadPreDraw(tg, fetchStart, fetchEnd, insideWidth); } void bigWigMethods(struct track *track, struct trackDb *tdb, int wordCount, char *words[]) /* Set up bigWig methods. */ { bedGraphMethods(track, tdb, wordCount, words); track->loadItems = bigWigLoadItems; track->preDrawItems = bigWigPreDrawItems; track->preDrawMultiRegion = wigMultiRegionGraphLimits; track->drawItems = bigWigDrawItems; track->loadPreDraw = bigWigLoadPreDraw; } +void gc5BaseOnTheFlyMethods(struct track *tg, struct cart *cart) +/* Install on-the-fly GC computation methods on a track that was + * loaded from trackDb. Overrides the bigWig loadItems/loadPreDraw + * so data is computed from genome sequence instead of read from a file. + */ +{ +tg->loadItems = gc5BaseOnTheFlyLoadItems; +tg->loadPreDraw = gc5BaseOnTheFlyLoadPreDraw; +} + struct track *gc5BaseOnTheFlyTg(struct cart *cart) /* Create an on-the-fly GC percent track computed directly from * genome sequence. Default visibility is dense; the cart * override happens later in the getTrackList() visibility loop. */ { struct track *tg = trackNew(); struct trackDb *tdb = trackDbNew(); char longLabel[1024]; safef(longLabel, sizeof(longLabel), "GC FLY Percent in %s-Base Windows", gcOnFlyWinSize(cart)); /* Fill in trackDb fields needed by wigCartOptionsNew and bigWigMethods. */ tdb->track = cloneString(GC_ON_FLY_TRACK_NAME); tdb->table = cloneString(GC_ON_FLY_TRACK_NAME); tdb->type = cloneString("bigWig 0 100");