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; i<eqtl->expCount; 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;