a15e95bf88dc310df10549c6bb17c288654aad64 kate Wed Oct 25 10:58:43 2017 -0700 Fix filter problem noted in RM note #77; effect and prob filters should change item label to correspond to eQTLs remaining in combined item after filtering. refs #15646 diff --git src/hg/hgTracks/gtexEqtlClusterTrack.c src/hg/hgTracks/gtexEqtlClusterTrack.c index 73d1f03..9471dc6 100644 --- src/hg/hgTracks/gtexEqtlClusterTrack.c +++ src/hg/hgTracks/gtexEqtlClusterTrack.c @@ -74,32 +74,39 @@ } static boolean eqtlIncludeFilter(struct track *track, void *item) /* Apply all filters (except gene) to eQTL item. Invoked by filterTissues method */ { int i; int excluded = 0; double maxEffect = 0.0; double maxProb = 0.0; struct gtexEqtlCluster *eqtl = (struct gtexEqtlCluster *)item; struct gtexEqtlClusterTrack *extras = (struct gtexEqtlClusterTrack *)track->extraUiData; for (i=0; iexpCount; i++) { if (hashFindVal(extras->tissueHash, eqtl->expNames[i])) { - maxEffect = fmax(maxEffect, fabs(eqtl->expScores[i])); - maxProb = fmax(maxProb, fabs(eqtl->expProbs[i])); + double effect = eqtl->expScores[i]; + double prob = eqtl->expProbs[i]; + maxEffect = fmax(maxEffect, fabs(effect)); + maxProb = fmax(maxProb, fabs(prob)); + if (effect < extras->minEffect || prob < extras->minProb) + { + eqtlExcludeTissue(eqtl, i); + excluded++; + } } else { eqtlExcludeTissue(eqtl, i); excluded++; } } // exclude if no tissues match selector if (excluded == eqtl->expCount || // or if variant has no selected tissue where effect size is above cutoff maxEffect < extras->minEffect || // or if variant has no selected tissue where probability is above cutoff maxProb < extras->minProb) return FALSE; return TRUE;