src/hg/lib/hui.c 1.246

1.246 2009/11/06 22:25:42 braney
add transform function for wiggles
Index: src/hg/lib/hui.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/lib/hui.c,v
retrieving revision 1.245
retrieving revision 1.246
diff -b -B -U 4 -r1.245 -r1.246
--- src/hg/lib/hui.c	4 Nov 2009 01:12:18 -0000	1.245
+++ src/hg/lib/hui.c	6 Nov 2009 22:25:42 -0000	1.246
@@ -1398,8 +1398,29 @@
 cgiMakeDropList(var, wiggleGraphOptions, ArraySize(wiggleGraphOptions),
 	curVal);
 }
 
+static char *wiggleTransformFuncOptions[] = {
+    "NONE",
+    "LOG"
+    };
+
+enum wiggleTransformFuncEnum wiggleTransformFuncToEnum(char *string)
+/* Convert from string to enum representation. */
+{
+int x = stringIx(string, wiggleTransformFuncOptions);
+if (x < 0)
+   errAbort("hui::wiggleTransformFuncToEnum() - Unknown option %s", string);
+return x;
+}
+
+void wiggleTransformFuncDropDown(char *var, char *curVal)
+/* Make drop down of options. */
+{
+cgiMakeDropList(var, wiggleTransformFuncOptions,
+    ArraySize(wiggleTransformFuncOptions), curVal);
+}
+
 static char *wiggleAlwaysZeroOptions[] = {
     "OFF",
     "ON"
     };
@@ -3345,8 +3366,9 @@
 double tDbMinY;     /*  data range limits from trackDb type line */
 double tDbMaxY;     /*  data range limits from trackDb type line */
 int defaultHeight;  /*  pixels per item */
 char *horizontalGrid = NULL;    /*  Grid lines, off by default */
+char *transformFunc = NULL;    /* function to transform data points */
 char *alwaysZero = NULL;    /* Always include 0 in range */
 char *lineBar;  /*  Line or Bar graph */
 char *autoScale;    /*  Auto scaling on or off */
 char *windowingFunction;    /*  Maximum, Mean, or Minimum */
@@ -3364,8 +3386,9 @@
 
 wigFetchMinMaxYWithCart(cart,tdb,name, &minY, &maxY, &tDbMinY, &tDbMaxY, wordCount, words);
 freeMem(typeLine);
 
+(void) wigFetchTransformFuncWithCart(cart,tdb,name, &transformFunc);
 (void) wigFetchAlwaysZeroWithCart(cart,tdb,name, &alwaysZero);
 (void) wigFetchHorizontalGridWithCart(cart,tdb,name, &horizontalGrid);
 (void) wigFetchAutoScaleWithCart(cart,tdb,name, &autoScale);
 (void) wigFetchGraphTypeWithCart(cart,tdb,name, &lineBar);
@@ -3410,8 +3433,13 @@
 printf("Always include zero:&nbsp");
 wiggleAlwaysZeroDropDown(option, alwaysZero);
 puts("</TD></TR>");
 
+printf("<TR valign=center><th align=right>Transform function:</th><td align=left>");
+snprintf(option, sizeof(option), "%s.%s", name, TRANSFORMFUNC);
+printf("Transform data points by:&nbsp");
+wiggleTransformFuncDropDown(option, transformFunc);
+
 printf("<TR valign=center><th align=right>Windowing function:</th><td align=left>");
 snprintf(option, sizeof(option), "%s.%s", name, WINDOWINGFUNCTION );
 wiggleWindowingDropDown(option, windowingFunction);