src/lib/bbiRead.c 1.12
1.12 2009/08/14 20:56:48 kent
Fixing bug in coverage calcs.
Index: src/lib/bbiRead.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/lib/bbiRead.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -b -B -U 4 -r1.11 -r1.12
--- src/lib/bbiRead.c 5 Aug 2009 23:06:27 -0000 1.11
+++ src/lib/bbiRead.c 14 Aug 2009 20:56:48 -0000 1.12
@@ -418,9 +418,9 @@
struct bbiInterval *intervalList, struct bbiSummaryElement *el)
/* Update retVal with the average value if there is any data in interval. Return number
* of valid data bases in interval. */
{
-bits32 validCount = 0;
+double validCount = 0;
if (intervalList != NULL)
{
struct bbiInterval *interval;
@@ -445,15 +445,15 @@
if (minVal > interval->val)
minVal = interval->val;
}
}
- el->validCount = validCount;
+ el->validCount = round(validCount);
el->minVal = minVal;
el->maxVal = maxVal;
el->sumData = sumData;
el->sumSquares = sumSquares;
}
-return validCount;
+return round(validCount);
}
static boolean bbiSummaryArrayFromFull(struct bbiFile *bbi,
@@ -539,8 +539,9 @@
fetchIntervals, summarySize, elements);
if (ret)
{
int i;
+ double covFactor = (double)summarySize/(end - start);
for (i=0; i<summarySize; ++i)
{
struct bbiSummaryElement *el = &elements[i];
if (el->validCount > 0)
@@ -557,9 +558,9 @@
case bbiSumMin:
val = el->minVal;
break;
case bbiSumCoverage:
- val = (double)el->validCount/(end-start);
+ val = covFactor*el->validCount;
break;
default:
internalErr();
val = 0.0;