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>");