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; }