8bbf80b91be7fcad3ac1c21d3cdd0f9a5c2fdce4 braney Mon Jan 4 13:17:28 2016 -0800 make -minMax option to bigWigAverageOverBed work on empty ranges. #16580 diff --git src/utils/bigWigAverageOverBed/bigWigAverageOverBed.c src/utils/bigWigAverageOverBed/bigWigAverageOverBed.c index c2fe3fd..2919f00 100644 --- src/utils/bigWigAverageOverBed/bigWigAverageOverBed.c +++ src/utils/bigWigAverageOverBed/bigWigAverageOverBed.c @@ -190,31 +190,36 @@ { int start = bed->chromStart + bed->chromStarts[i]; int end = start + bed->blockSizes[i]; addBigWigIntervalInfo(bbi, lm, bed->chrom, start, end, &size, &coverage, &sum, &minVal, &maxVal); } } } /* Print out result, fudging mean to 0 if no coverage at all. */ double mean = 0; if (coverage > 0) mean = sum/coverage; fprintf(f, "%s\t%d\t%d\t%g\t%g\t%g", bed->name, size, coverage, sum, sum/size, mean); if (outputMinMax) + { + if (coverage > 0) fprintf(f, "\t%g\t%g", minVal, maxVal); + else + fprintf(f, "\t0\t0"); // put out zeros for min/max if no coverage + } fputc('\n', f); optionallyPrintBedPlus(bedF, bed, fieldCount, mean, outputMinMax, minVal, maxVal); updateSums(sum, coverage, size); } } int bedCmpChrom(const void *va, const void *vb) /* Compare strings such as chromosome names that may have embedded numbers, * so that chr4 comes before chr14 */ { const struct bed *a = *((struct bed **)va); const struct bed *b = *((struct bed **)vb); return cmpStringsWithEmbeddedNumbers(a->chrom, b->chrom); }