834f46edc09af6e2b82bad2021629615a678221b braney Wed Nov 15 11:45:33 2023 -0800 bigBed items that match hgFind.matches automatically pass filters (this time pay attention to bbi->definedFieldCount to make sure there is a name field. diff --git src/hg/hgTracks/variation.c src/hg/hgTracks/variation.c index 59cd5cf..62246bd 100644 --- src/hg/hgTracks/variation.c +++ src/hg/hgTracks/variation.c @@ -2784,38 +2784,38 @@ static boolean filterMaf(struct bigDbSnp *bds, int freqSourceIx, double minMaf) /* Return TRUE if bds passes minimum Minor Allele Frequency filter. */ { if (freqSourceIx < 0) return TRUE; if (bds->freqSourceCount > freqSourceIx) { double maf = bds->minorAlleleFreq[freqSourceIx]; if (maf >= minMaf) return TRUE; } return FALSE; } struct linkedFeatures *lfFromBigDbSnp(struct trackDb *tdb, struct bigBedInterval *bb, - struct bigBedFilter *filters, int freqSourceIx) + struct bigBedFilter *filters, int freqSourceIx, struct bbiFile *bbi) /* Convert one bigDbSnp item to a linkedFeatures for drawing if it passes filter, else NULL. */ { struct linkedFeatures *lf = NULL; char startBuf[16], endBuf[16]; char *bedRow[32]; bigBedIntervalToRow(bb, chromName, startBuf, endBuf, bedRow, ArraySize(bedRow)); -if (bigBedFilterInterval(bedRow, filters)) +if (bigBedFilterInterval(bbi, bedRow, filters)) { struct bigDbSnp *bds = bigDbSnpLoad(bedRow); double minMaf = cartUsualDoubleClosestToHome(cart, tdb, FALSE, "minMaf", 0.0); if (! filterMaf(bds, freqSourceIx, minMaf)) return NULL; AllocVar(lf); lf->name = cloneString(bds->name); AllocVar(lf->components); lf->start = lf->components->start = bds->chromStart; lf->tallStart = lf->start + bds->shiftBases; lf->tallEnd = lf ->end = lf->components->end = bds->chromEnd; lf->label = bdsLabel(tdb, bds); lf->mouseOver = bdsMouseOver(bds); lf->filterColor = colorFromSoTerm(bds->maxFuncImpact); lf->original = bds;