9020b599f0a4960ef55d43477f28fca83e6dc162 braney Thu Feb 7 13:09:41 2019 -0800 add score filtering to interact type diff --git src/hg/hgTracks/interactTrack.c src/hg/hgTracks/interactTrack.c index 7b4691a..2efc300 100644 --- src/hg/hgTracks/interactTrack.c +++ src/hg/hgTracks/interactTrack.c @@ -72,33 +72,42 @@ // TODO BRANEY: make this behavior generic for bigBeds // (bigBedSelectRange) tg->drawItems = bigDrawWarning; tg->networkErrMsg = "Too many items in display (zoom in)"; tg->totalHeight = bigWarnTotalHeight; return; } // filters struct interact *inter, *next, *filteredItems = NULL; int count = slCount(tg->items); // exclude if missing endpoint(s) in window char *endsVisible = cartUsualStringClosestToHome(cart, tg->tdb, FALSE, INTERACT_ENDS_VISIBLE, INTERACT_ENDS_VISIBLE_DEFAULT); +char *scoreFilter = cartOrTdbString(cart, tg->tdb, "scoreFilter", NULL); +int minScore = 0; +if (scoreFilter) + minScore = atoi(scoreFilter); + for (inter = tg->items; inter; inter = next) { next = inter->next; + + if (inter->score < minScore) + continue; + if (differentString(endsVisible, INTERACT_ENDS_VISIBLE_ANY)) { boolean sOnScreen = interactSourceInWindow(inter); boolean tOnScreen = interactTargetInWindow(inter); if (sameString(endsVisible, INTERACT_ENDS_VISIBLE_TWO)) { if (!(sOnScreen && tOnScreen)) continue; } if (sameString(endsVisible, INTERACT_ENDS_VISIBLE_ONE)) { if (!(sOnScreen || tOnScreen)) continue; } }