72d5004d94ad220eecb2868ee1d58d6257ab051d
kent
  Mon Jan 20 12:05:23 2014 -0800
Improving handling of empty data sets by bedToBigBed and bigBedInfo.
diff --git src/utils/bigBedInfo/bigBedInfo.c src/utils/bigBedInfo/bigBedInfo.c
index a94425e..cfb9670 100644
--- src/utils/bigBedInfo/bigBedInfo.c
+++ src/utils/bigBedInfo/bigBedInfo.c
@@ -95,33 +95,39 @@
     for (chrom=chromList; chrom != NULL; chrom = chrom->next)
 	printf("\t%s %d %d\n", chrom->name, chrom->id, chrom->size);
 if (optionExists("as"))
     {
     char *asText = bigBedAutoSqlText(bbi);
     if (asText == NULL)
         printf("as:  n/a\n");
     else
 	{
 	printf("as:\n");
 	printf("%s", asText);
 	}
     }
 struct bbiSummaryElement sum = bbiTotalSummary(bbi);
 printLabelAndLongNumber("basesCovered", sum.validCount);
-printf("meanDepth (of bases covered): %f\n", sum.sumData/sum.validCount);
+double meanDepth = 0, depthStd = 0;
+if (sum.validCount > 0)
+    {
+    meanDepth = sum.sumData/sum.validCount;
+    depthStd = calcStdFromSums(sum.sumData, sum.sumSquares, sum.validCount);
+    }
+printf("meanDepth (of bases covered): %f\n", meanDepth);
 printf("minDepth: %f\n", sum.minVal);
 printf("maxDepth: %f\n", sum.maxVal);
-printf("std of depth: %f\n", calcStdFromSums(sum.sumData, sum.sumSquares, sum.validCount));
+printf("std of depth: %f\n", depthStd);
 }
 
 int main(int argc, char *argv[])
 /* Process command line. */
 {
 optionInit(&argc, argv, options);
 if (argc != 2)
     usage();
 udcSetDefaultDir(optionVal("udcDir", udcDefaultDir()));
 bigBedInfo(argv[1]);
 if (verboseLevel() > 1)
     printVmPeak();
 return 0;
 }