c32fc82297626a76c3d26a1e7785241f705f07e8
kent
  Mon Apr 8 17:29:12 2013 -0700
Made bigBedInfo -extraIndex give you item count and field offset too.
diff --git src/utils/bigBedInfo/bigBedInfo.c src/utils/bigBedInfo/bigBedInfo.c
index 102e1e9..a94425e 100644
--- src/utils/bigBedInfo/bigBedInfo.c
+++ src/utils/bigBedInfo/bigBedInfo.c
@@ -1,21 +1,22 @@
 /* bigBedInfo - Show information about a bigBed file.. */
 #include "common.h"
 #include "linefile.h"
 #include "hash.h"
 #include "options.h"
 #include "udc.h"
+#include "bPlusTree.h"
 #include "bbiFile.h"
 #include "bigBed.h"
 #include "obscure.h"
 #include "hmmstats.h"
 
 
 void usage()
 /* Explain usage and exit. */
 {
 errAbort(
   "bigBedInfo - Show information about a bigBed file.\n"
   "usage:\n"
   "   bigBedInfo file.bb\n"
   "options:\n"
   "   -udcDir=/dir/to/cache - place to put cache for remote bigBed/bigWigs\n"
@@ -44,31 +45,35 @@
 }
 
 void bigBedInfo(char *fileName)
 /* bigBedInfo - Show information about a bigBed file.. */
 {
 struct bbiFile *bbi = bigBedFileOpen(fileName);
 printf("version: %d\n", bbi->version);
 printf("hasHeaderExtension: %s\n", (bbi->extensionOffset != 0 ? "yes" : "no"));
 printf("isCompressed: %s\n", (bbi->uncompressBufSize > 0 ? "yes" : "no"));
 printf("isSwapped: %d\n", bbi->isSwapped);
 printf("extraIndexCount: %d\n", bbi->extraIndexCount);
 if (optionExists("extraIndex"))
     {
     struct slName *el, *list = bigBedListExtraIndexes(bbi);
     for (el = list; el != NULL; el = el->next)
-        printf("    %s\n", el->name);
+	{
+	int fieldIx = 0;
+	struct bptFile *bpt = bigBedOpenExtraIndex(bbi, el->name, &fieldIx);
+        printf("    %s (field %d) with %lld items\n", el->name, fieldIx, (long long)bpt->itemCount);
+	}
     }
 printLabelAndLongNumber("itemCount", bigBedItemCount(bbi));
 printLabelAndLongNumber("primaryDataSize", bbi->unzoomedIndexOffset - bbi->unzoomedDataOffset);
 if (bbi->levelList != NULL)
     {
     long long indexEnd = bbi->levelList->dataOffset;
     printLabelAndLongNumber("primaryIndexSize", indexEnd - bbi->unzoomedIndexOffset);
     }
 struct bbiChromInfo *chrom, *chromList = bbiChromList(bbi);
 printf("zoomLevels: %d\n", bbi->zoomLevels);
 if (optionExists("zooms"))
     {
     struct bbiZoomLevel *zoom;
     for (zoom = bbi->levelList; zoom != NULL; zoom = zoom->next)
 	{