da33d70c10ddaae6c3290cb900d7d0cc2b6ee01b hiram Tue Mar 17 13:57:24 2026 -0700 allow calculation of GC percent on the fly with code help from claude refs #35958 diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c index 40aea9dece7..306cb390c49 100644 --- src/hg/hgTracks/hgTracks.c +++ src/hg/hgTracks/hgTracks.c @@ -7433,30 +7433,44 @@ * Best to load custom last. */ // load the track list and check to see if we need to rewrite the cart int cartVersionFromTrackDb = loadFromTrackDb(&trackList); int cartVersionFromCart = cartGetVersion(cart); if (cartVersionFromTrackDb > cartVersionFromCart) cartRewrite(cart, cartVersionFromTrackDb, cartVersionFromCart); if (measureTiming) measureTime("Time after trackDbLoad "); if (pcrResultParseCart(database, cart, NULL, NULL, NULL)) slSafeAddHead(&trackList, pcrResultTg()); if (userSeqString != NULL) slSafeAddHead(&trackList, userPslTg()); slSafeAddHead(&trackList, oligoMatchTg()); +if (cfgOptionBooleanDefault("gcOnTheFly", FALSE)) + { + if (cfgOptionBooleanDefault("gcOnTheFlyCoExist", FALSE)) + { + slSafeAddHead(&trackList, gc5BaseOnTheFlyTg(cart)); + } + else + { + if (rFindTrackWithTable("gc5Base", trackList) == NULL && + rFindTrackWithTable("gc5BaseBw", trackList) == NULL) + slSafeAddHead(&trackList, gc5BaseOnTheFlyTg(cart)); + } + } + if (restrictionEnzymesOk()) { slSafeAddHead(&trackList, cuttersTg()); } if (wikiTrackEnabled(database, NULL)) { addWikiTrack(&trackList); struct sqlConnection *conn = wikiConnect(); if (sqlTableExists(conn, "variome")) addVariomeWikiTrack(&trackList); wikiDisconnect(&conn); } struct grp *grpList = NULL; if (cartOptionalString(cart, "hgt.trackNameFilter") == NULL)