src/hg/hgTracks/bedTrack.c 1.23
1.23 2010/01/14 22:36:30 kent
Making bigBed code in dense mode bypass the fast summary based method if a score filter is on.
Index: src/hg/hgTracks/bedTrack.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgTracks/bedTrack.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -b -B -U 4 -r1.22 -r1.23
--- src/hg/hgTracks/bedTrack.c 14 Jan 2010 07:39:20 -0000 1.22
+++ src/hg/hgTracks/bedTrack.c 14 Jan 2010 22:36:30 -0000 1.23
@@ -82,15 +82,17 @@
/* Get list of items */
if (tg->isBigBed)
{
+ char *scoreFilter = cartOrTdbString(cart, tg->tdb, "scoreFilter", NULL);
+ if (scoreFilter != NULL || tg->visibility != tvDense)
+ {
struct lm *lm = lmInit(0);
struct bigBedInterval *bb, *bbList = bigBedSelectRange(conn, tg,
chromName, winStart, winEnd, lm);
char *bedRow[32];
char startBuf[16], endBuf[16];
int minScore = 0;
- char *scoreFilter = cartOrTdbString(cart, tg->tdb, "scoreFilter", NULL);
if (scoreFilter)
minScore = atoi(scoreFilter);
for (bb = bbList; bb != NULL; bb = bb->next)
@@ -101,8 +103,9 @@
slAddHead(&list, bed);
}
lmCleanup(&lm);
}
+ }
else
{
struct sqlResult *sr = NULL;
/* limit to items above a specified score */
@@ -563,10 +566,12 @@
{
if (!tg->drawItemAt)
errAbort("missing drawItemAt in track %s", tg->mapName);
-if (vis == tvDense && tg->isBigBed)
+if (vis == tvDense && canDrawBigBedDense(tg))
+ {
bigBedDrawDense(tg, seqStart, seqEnd, hvg, xOff, yOff, width, font, color);
+ }
else
genericDrawItems(tg, seqStart, seqEnd, hvg, xOff, yOff, width,
font, color, vis);
}