956500207b58c263485009212f223836152176d3 hiram Thu Mar 26 14:58:55 2026 -0700 simplify the gcOnFly track - it does not need to by completely synthetic - it only comes in from trackDb stanzas refs #35958 diff --git src/hg/hgTracks/bigWigTrack.c src/hg/hgTracks/bigWigTrack.c index 7d8d4433704..b09ebbda81c 100644 --- src/hg/hgTracks/bigWigTrack.c +++ src/hg/hgTracks/bigWigTrack.c @@ -445,73 +445,15 @@ 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"); -tdb->shortLabel = cloneString(GC_ON_FLY_TRACK_LABEL); -tdb->longLabel = cloneString(longLabel); -tdb->grp = cloneString("map"); -tdb->canPack = 0; -tdb->visibility = tvHide; - -/* Add wig display settings to match what gc5BaseBw trackDb would have. */ -trackDbAddSetting(tdb, "autoScale", "Off"); -trackDbAddSetting(tdb, "viewLimits", "30:70"); -trackDbAddSetting(tdb, "maxHeightPixels", "128:36:16"); -trackDbAddSetting(tdb, "graphTypeDefault", "Bar"); -trackDbAddSetting(tdb, "gridDefault", "OFF"); -trackDbAddSetting(tdb, "windowingFunction", "Mean"); -trackDbAddSetting(tdb, "color", "0,0,0"); -trackDbAddSetting(tdb, "altColor", "128,128,128"); -// trackDbAddSetting(tdb, "gcComputeOnTheFly", "on"); -// trackDbAddSetting(tdb, "gcOnTheFlyMaxBases", "500000"); -// trackDbAddSetting(tdb, "gcFallbackBigWig", "/gbdb/ce1x/bbi/gc5BaseBw/gc5Base.bw"); -trackDbAddSetting(tdb, "calcWinSize", gcOnFlyWinSize(cart)); -trackDbPolish(tdb); - -/* Set up bigWig display methods (drawItems, preDrawItems, etc.) */ -char *words[] = {"bigWig", "0", "100"}; -bigWigMethods(tg, tdb, 3, words); - -/* Override data loading with on-the-fly sequence computation. */ -tg->loadItems = gc5BaseOnTheFlyLoadItems; -tg->loadPreDraw = gc5BaseOnTheFlyLoadPreDraw; - -/* Fill in track struct fields. */ -tg->tdb = tdb; -tg->track = tdb->track; -tg->table = tdb->table; -tg->visibility = tdb->visibility; -tg->shortLabel = tdb->shortLabel; -tg->longLabel = tdb->longLabel; -tg->priority = tdb->priority; -tg->defaultPriority = tg->priority; -tg->groupName = tdb->grp; -tg->defaultGroupName = cloneString(tg->groupName); -tg->hasUi = TRUE; -return tg; -}