a4a68e3810d949f7e454d97ea3c3eb44f67926aa braney Wed Oct 16 14:25:56 2019 -0700 bigBed number filters put message in longLabel about how many items were filtered diff --git src/hg/hgTracks/encode.c src/hg/hgTracks/encode.c index 6f6d9ef..cd19eb3 100644 --- src/hg/hgTracks/encode.c +++ src/hg/hgTracks/encode.c @@ -189,45 +189,52 @@ struct bigBedInterval *bb, *bbList = bigBedIntervalQuery(bbi, chromName, winStart, winEnd, 0, lm); int fieldCount = 10; char *bedRow[fieldCount]; char startBuf[16], endBuf[16]; struct bigBedFilter *filters = NULL; struct bigBedFilter *filter; if ((filter = bigBedMakeNumberFilter(cart, bbi, tg->tdb, SCORE_FILTER, "0:1000", "score")) != NULL) slAddHead(&filters, filter); if ((filter = bigBedMakeNumberFilter(cart, bbi, tg->tdb, SIGNAL_FILTER, NULL, "signalValue")) != NULL) slAddHead(&filters, filter); if ((filter = bigBedMakeNumberFilter(cart, bbi, tg->tdb, PVALUE_FILTER, NULL, "pValue")) != NULL) slAddHead(&filters, filter); if ((filter = bigBedMakeNumberFilter(cart, bbi, tg->tdb, QVALUE_FILTER, NULL, "qValue")) != NULL) slAddHead(&filters, filter); -if (filters || compositeChildHideEmptySubtracks(cart, tg->tdb, NULL, NULL)) +if (compositeChildHideEmptySubtracks(cart, tg->tdb, NULL, NULL)) labelTrackAsFiltered(tg); +unsigned filtered = 0; for (bb = bbList; bb != NULL; bb = bb->next) { bigBedIntervalToRow(bb, chromName, startBuf, endBuf, bedRow, ArraySize(bedRow)); if (bigBedFilterInterval(bedRow, filters)) { struct encodePeak *peak = encodePeakGeneralLoad(bedRow, pt); struct linkedFeatures *lf = lfFromEncodePeak((struct slList *)peak, tg->tdb, scoreMin, scoreMax); if (lf) slAddHead(&lfList, lf); + else + filtered++; } + else + filtered++; } +if (filtered) + labelTrackAsFilteredNumber(tg, filtered); slReverse(&lfList); slSort(&lfList, linkedFeaturesCmp); tg->items = lfList; } static void encodePeakLoadItemsBoth(struct track *tg, struct customTrack *ct) /* Load up an encodePeak table from the regular database or the customTrash one. */ { char *db, *table; struct sqlConnection *conn; struct sqlResult *sr = NULL; char **row; char *filterConstraints = NULL; int rowOffset;