e260a83c1023f097f5fb1f3c0a8b3d464c536c3c braney Wed Sep 25 20:52:50 2019 -0700 support <columnName>.Filter* format for trackDb filtering variables diff --git src/hg/hgTracks/bigBedTrack.c src/hg/hgTracks/bigBedTrack.c index e5e885c..c7406ca 100644 --- src/hg/hgTracks/bigBedTrack.c +++ src/hg/hgTracks/bigBedTrack.c @@ -192,42 +192,42 @@ for(; choices; choices = choices->next) hashStore(filter->valueHash, choices->name); return filter; } struct bigBedFilter *bigBedBuildFilters(struct cart *cart, struct bbiFile *bbi, struct trackDb *tdb) /* Build all the numeric and filterBy filters for a bigBed */ { struct bigBedFilter *filters = NULL, *filter; struct slName *filterSettings = trackDbSettingsWildMatch(tdb, FILTER_NUMBER_WILDCARD); for(; filterSettings; filterSettings = filterSettings->next) { - char *fieldName = cloneString(filterSettings->name); - fieldName[strlen(fieldName) - sizeof FILTER_NUMBER_NAME + 1] = 0; + char *fieldName = extractFieldName(filterSettings->name, FILTER_NUMBER_NAME); + if (sameString(fieldName, "noScore")) + continue; if ((filter = bigBedMakeNumberFilter(cart, bbi, tdb, filterSettings->name, NULL, fieldName)) != NULL) slAddHead(&filters, filter); } filterSettings = trackDbSettingsWildMatch(tdb, FILTER_TEXT_WILDCARD); for(; filterSettings; filterSettings = filterSettings->next) { - char *fieldName = cloneString(filterSettings->name); - fieldName[strlen(fieldName) - sizeof FILTER_TEXT_NAME + 1] = 0; + char *fieldName = extractFieldName(filterSettings->name, FILTER_TEXT_NAME); if ((filter = bigBedMakeFilterText(cart, bbi, tdb, filterSettings->name, fieldName)) != NULL) slAddHead(&filters, filter); } filterBy_t *filterBySet = filterBySetGet(tdb, cart,NULL); filterBy_t *filterBy = filterBySet; for (;filterBy != NULL; filterBy = filterBy->next) { if (filterBy->slChoices && differentString(filterBy->slChoices->name, "All")) { if ((filter = bigBedMakeFilterBy(cart, bbi, tdb, filterBy->column, filterBy->slChoices)) != NULL) slAddHead(&filters, filter); } }