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) {