src/hg/hgTracks/wigTrack.c 1.94
1.94 2009/11/06 22:27:12 braney
add transform function for wiggles
Index: src/hg/hgTracks/wigTrack.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgTracks/wigTrack.c,v
retrieving revision 1.93
retrieving revision 1.94
diff -b -B -U 4 -r1.93 -r1.94
--- src/hg/hgTracks/wigTrack.c 18 Sep 2009 20:05:16 -0000 1.93
+++ src/hg/hgTracks/wigTrack.c 6 Nov 2009 22:27:12 -0000 1.94
@@ -564,9 +564,10 @@
return preDraw;
}
void preDrawWindowFunction(struct preDrawElement *preDraw, int preDrawSize,
- enum wiggleWindowingEnum windowingFunction)
+ enum wiggleWindowingEnum windowingFunction,
+ enum wiggleTransformFuncEnum transformFunc)
/* apply windowing function to the values in preDraw array */
{
int i;
@@ -597,8 +598,10 @@
else
dataValue = preDraw[i].max;
break;
}
+ if (transformFunc == wiggleTransformFuncLog)
+ dataValue = log(1+dataValue);
preDraw[i].plotValue = dataValue;
preDraw[i].smooth = dataValue;
}
}
@@ -1048,9 +1051,10 @@
/* width - width of drawing window in pixels
* pixelsPerBase - pixels per base
* basesPerPixel - calculated as 1.0/pixelsPerBase
*/
-preDrawWindowFunction(preDraw, preDrawSize, wigCart->windowingFunction);
+preDrawWindowFunction(preDraw, preDrawSize, wigCart->windowingFunction,
+ wigCart->transformFunc);
preDrawSmoothing(preDraw, preDrawSize, wigCart->smoothingWindow);
overallRange = preDrawLimits(preDraw, preDrawZero, width,
&overallUpperLimit, &overallLowerLimit);
graphRange = preDrawAutoScale(preDraw, preDrawZero, width,
@@ -1424,8 +1428,9 @@
wigFetchYLineMarkValueWithCart(cart,tdb,tdb->tableName, &yLineMark);
wigCart->yLineMark = yLineMark;
wigCart->yLineOnOff = wigFetchYLineMarkWithCart(cart,tdb,tdb->tableName, (char **) NULL);
wigCart->alwaysZero = wigFetchAlwaysZeroWithCart(cart,tdb,tdb->tableName, (char **) NULL);
+wigCart->transformFunc = wigFetchTransformFuncWithCart(cart,tdb,tdb->tableName, (char **) NULL);
wigCart->maxHeight = maxHeight;
wigCart->defaultHeight = defaultHeight;
wigCart->minHeight = minHeight;