c1cc70cd12d5bf2723feffa4ad45262749145dec braney Wed Jun 16 19:33:10 2010 -0700 add maxWindowToQuery setting for bigWigs. diff --git src/hg/hgc/wiggleClick.c src/hg/hgc/wiggleClick.c index be0a8a4..5de7c3c 100644 --- src/hg/hgc/wiggleClick.c +++ src/hg/hgc/wiggleClick.c @@ -214,9 +214,20 @@ char *chrom = cartString(cart, "c"); /* Open BigWig file and get interval list. */ -struct bbiFile *bbi = bigWigFileOpen(fileName); +struct bbiFile *bbi = NULL; struct lm *lm = lmInit(0); -struct bbiInterval *bbList = bigWigIntervalQuery(bbi, chrom, winStart, winEnd, lm); +struct bbiInterval *bbList = NULL; +char *maxWinToQuery = trackDbSettingClosestToHome(tdb, "maxWindowToQuery"); + +unsigned maxWTQ = 0; +if (isNotEmpty(maxWinToQuery)) + maxWTQ = sqlUnsigned(maxWinToQuery); + +if ((maxWinToQuery == NULL) || (maxWTQ > winEnd-winStart)) + { + bbi = bigWigFileOpen(fileName); + bbList = bigWigIntervalQuery(bbi, chrom, winStart, winEnd, lm); + } char num1Buf[64], num2Buf[64]; /* big enough for 2^64 (and then some) */ sprintLongWithCommas(num1Buf, BASE_1(winStart)); @@ -229,6 +240,11 @@ { bbiIntervalStatsReport(bbList, tdb->table, chrom, winStart, winEnd); } +else if (maxWTQ <= winEnd-winStart) + { + sprintLongWithCommas(num1Buf, maxWTQ); + printf("<P>Zoom into a view less than %s bases to see data summary.</P>",num1Buf); + } else { printf("<P>No data overlapping current position.</P>");