b62b7ebcba1539338903f821930af33f823a1513 braney Wed Jan 21 13:18:29 2026 -0800 enable bigBeds with 3 or 4 fields to still use bigBed filters refs #28501 diff --git src/hg/lib/trackDbCustom.c src/hg/lib/trackDbCustom.c index 605a027e680..22f7b9ef258 100644 --- src/hg/lib/trackDbCustom.c +++ src/hg/lib/trackDbCustom.c @@ -749,30 +749,37 @@ // point are assumed to be flavors of bigBed. else if (startsWith("bed ", type) || startsWith("big", type) || startsWith("bedDetail", type)) { if (trackDbSetting(tdb, "bedFilter") != NULL) cType = cfgBedFilt; else if (!startsWith("big", type) || startsWith("bigBed", type)) { char *words[3]; int wordCount = chopLine(cloneString( type), words); if (sameString("bigBed", type) && (wordCount == 1)) // no following words { cType = cfgBedScore; if (!bedHasFilters(tdb)) cType = cfgNone; } + // bigBeds with 3 or 4 fields specified in trackDb will get the filter UI if they have bigBed filters + else if ((wordCount > 1) && ((atoi(words[1]) == 3) || atoi(words[1]) == 4)) + { + cType = cfgBedScore; + if (!bedHasFilters(tdb)) + cType = cfgNone; + } else if (( ((wordCount > 1) && (atoi(words[1]) >= 5)) || trackDbSetting(tdb, "scoreMin") != NULL) && // Historically needed 'bed n .' but encode didn't follow bed n . ( (wordCount >= 3) || (!tdbIsTrackUiTopLevel(tdb) && trackDbSettingClosestToHome(tdb, "wgEncode")))) { cType = cfgBedScore; if (!bedScoreHasCfgUi(tdb)) cType = cfgNone; // FIXME: UGLY SPECIAL CASE should be handled in trackDb! else if (startsWith("encodeGencodeIntron", tdb->track)) cType = cfgNone; }