src/hg/lib/hui.c 1.158

1.158 2009/02/21 02:49:33 aamp
Added filters to encodePeak tracks that work in the composite multi-view.
Index: src/hg/lib/hui.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/lib/hui.c,v
retrieving revision 1.157
retrieving revision 1.158
diff -b -B -U 4 -r1.157 -r1.158
--- src/hg/lib/hui.c	10 Feb 2009 01:13:04 -0000	1.157
+++ src/hg/lib/hui.c	21 Feb 2009 02:49:33 -0000	1.158
@@ -17,8 +17,9 @@
 #include "wiggle.h"
 #include "phyloTree.h"
 #include "hgMaf.h"
 #include "customTrack.h"
+#include "encode/encodePeak.h"
 
 static char const rcsid[] = "$Id$";
 
 #define SMALLBUF 128
@@ -2531,21 +2532,21 @@
 }
 
 static void cfgByCfgType(eCfgType cType,char *db, struct cart *cart, struct trackDb *tdb,char *prefix, char *title, boolean boxed)
 {
-char *scoreMax;
-int maxScore;
+/* char *scoreMax; */
+/* int maxScore; */
 switch(cType)
     {
     case cfgBedScore:
+/*     case cfgPeak: */
+/*                         scoreMax = trackDbSettingClosestToHome(tdb, "scoreFilterMax"); */
+/*                         maxScore = (scoreMax ? sqlUnsigned(scoreMax):1000); */
+/*                         scoreCfgUi(db, cart,tdb,prefix,title,maxScore,boxed); */
+/*                         break; */
     case cfgPeak:
-                        scoreMax = trackDbSettingClosestToHome(tdb, "scoreFilterMax");
-                        maxScore = (scoreMax ? sqlUnsigned(scoreMax):1000);
-                        scoreCfgUi(db, cart,tdb,prefix,title,maxScore,boxed);
+                        encodePeakCfgUi(cart,tdb,prefix,title,boxed);
                         break;
-    //case cfgPeak:
-    //                    encodePeakCfgUi(cart,tdb,prefix,title,boxed);
-    //                    break;
     case cfgWig:        wigCfgUi(cart,tdb,prefix,title,boxed);
                         break;
     case cfgWigMaf:     wigMafCfgUi(cart,tdb,prefix,title,boxed, db);
                         break;
@@ -3130,92 +3131,34 @@
 
 void encodePeakCfgUi(struct cart *cart, struct trackDb *tdb, char *name, char *title, boolean boxed)
 /* Put up UI for filtering wgEnocde peaks based on score, Pval and Qval */
 {
-char option[256];
 boolean compositeLevel = isNameAtCompositeLevel(tdb,name);
-
-cfgBeginBoxAndTitle(boxed, title);
-
+char varName[256];
 char *setting;
-char *min;
-char *max;
-printf("<TABLE>");
-//setting = trackDbSettingClosestToHome(tdb, SCORE_FILTER);//,"0:1000");
-setting = trackDbSettingClosestToHomeOrDefault(tdb, SCORE_FILTER,"0:1000");
-if(setting)
-    {
-    min = strSwapChar(cloneString(setting),':',0);
-    max = min + strlen(min) + 1;
-    puts("<TR><TD align='right'><B>Filter score range:  min:</B><TD align='left'>");
-    safef(option, sizeof(option), "%s.%s", name, SCORE_FILTER _MIN);
-    cgiMakeTextVar(option, cartUsualStringClosestToHome(cart, tdb, compositeLevel, SCORE_FILTER _MIN, min), 4);
-    puts("<TD align='right'><B>max:</B><TD align='left'>");
-    safef(option, sizeof(option), "%s.%s", name, SCORE_FILTER _MAX);
-    cgiMakeTextVar(option, cartUsualStringClosestToHome(cart, tdb, compositeLevel, SCORE_FILTER _MAX, max), 4);
-    puts("<TD align='left'> (0 to 1000)</TR>");
-    }
-//if(trackDbSettingClosestToHome(tdb, SCORE_MIN) != NULL)
-    scoreGrayLevelCfgUi(cart, tdb, name, 1000);
-
-//setting = trackDbSettingClosestToHome(tdb, SIGNAL_FILTER _MIN);//,"0.0");
-setting = trackDbSettingClosestToHomeOrDefault(tdb, SIGNAL_FILTER _MIN,"0.0");
-if(setting)
-    {
-    min = strSwapChar(cloneString(setting),':',0);
-    max = min + strlen(min) + 1;
-    puts("<TR><TD align='right'><B>Minimum Signal value:</B><TD align='left'>");
-    safef(option, sizeof(option), "%s.%s", name, SIGNAL_FILTER _MIN);
-    cgiMakeTextVar(option, cartUsualStringClosestToHome(cart, tdb, compositeLevel, SIGNAL_FILTER _MIN, min), 4);
-    //setting = trackDbSettingClosestToHome(tdb, SIGNAL_FILTER _LIMITS);//,"0.0:100.0");
-    setting = trackDbSettingClosestToHomeOrDefault(tdb, SIGNAL_FILTER _LIMITS,"0.0:100.0");
-    if(setting)
-        {
-        min = strSwapChar(cloneString(setting),':',0);
-        max = min + strlen(min) + 1;
-        printf("<TD align='left' colspan=3> (%s to %s)",min,max);
-        }
-    puts("</TR>");
-    }
-//setting = trackDbSettingClosestToHome(tdb, PVALUE_FILTER _MIN);//,"0.0");
-setting = trackDbSettingClosestToHomeOrDefault(tdb, PVALUE_FILTER _MIN,"0.0");
-if(setting)
+cfgBeginBoxAndTitle(boxed, title);
+puts("<TABLE>");
+setting = trackDbSettingClosestToHome(tdb, "filterPvalQval");
+if (setting)
     {
-    min = strSwapChar(cloneString(setting),':',0);
-    max = min + strlen(min) + 1;
     puts("<TR><TD align='right'><B>Minimum P-Value (-log 10):</B><TD align='left'>");
-    safef(option, sizeof(option), "%s.%s", name, PVALUE_FILTER _MIN);
-    cgiMakeTextVar(option, cartUsualStringClosestToHome(cart, tdb, compositeLevel, PVALUE_FILTER _MIN, min), 4);
-    //setting = trackDbSettingClosestToHome(tdb, PVALUE_FILTER _LIMITS);//,"0.0:20.0");
-    setting = trackDbSettingClosestToHomeOrDefault(tdb, PVALUE_FILTER _LIMITS,"0.0:20.0");
-    if(setting)
-        {
-        min = strSwapChar(cloneString(setting),':',0);
-        max = min + strlen(min) + 1;
-        printf("<TD align='left' colspan=3> (%s to %s)",min,max);
-        }
-    puts("</TR>");
-    }
-//setting = trackDbSettingClosestToHome(tdb, QVALUE_FILTER _MIN);//,"0.0");
-setting = trackDbSettingClosestToHomeOrDefault(tdb, QVALUE_FILTER _MIN,"0.0");
-if(setting)
-    {
-    min = strSwapChar(cloneString(setting),':',0);
-    max = min + strlen(min) + 1;
+    safef(varName, sizeof(varName), "%s.%s", name, ENCODE_PEAK_PVAL_FILTER_SUFFIX);
+    cgiMakeTextVar(varName, cartUsualStringClosestToHome(cart, tdb, compositeLevel, ENCODE_PEAK_PVAL_FILTER_SUFFIX, "0.00"), 6);
+    puts("</TD></TR>\n");
     puts("<TR><TD align='right'><B>Minimum Q-Value:</B><TD align='left'>");
-    safef(option, sizeof(option), "%s.%s", name, QVALUE_FILTER _MIN);
-    cgiMakeTextVar(option, cartUsualStringClosestToHome(cart, tdb, compositeLevel, QVALUE_FILTER _MIN, min), 4);
-    //setting = trackDbSettingClosestToHome(tdb, QVALUE_FILTER _LIMITS);//,"0.0:2.0");
-    setting = trackDbSettingClosestToHomeOrDefault(tdb, QVALUE_FILTER _LIMITS,"0.0:2.0");
-    if(setting)
-        {
-        min = strSwapChar(cloneString(setting),':',0);
-        max = min + strlen(min) + 1;
-        printf("<TD align='left' colspan=3> (%s to %s)",min,max);
+    safef(varName, sizeof(varName), "%s.%s", name, ENCODE_PEAK_QVAL_FILTER_SUFFIX);
+    cgiMakeTextVar(varName, cartUsualStringClosestToHome(cart, tdb, compositeLevel, ENCODE_PEAK_QVAL_FILTER_SUFFIX, "0.00"), 6);
+    puts("</TD></TR>\n");    
         }
-    puts("</TR>");
+else
+    {
+    safef(varName, sizeof(varName), "%s.%s", name, ENCODE_PEAK_SCORE_FILTER_SUFFIX);
+    puts("<TR><TD align='right'><B>Minimum score (0-1000):</B><TD align='left'>");
+    cgiMakeTextVar(varName, cartUsualStringClosestToHome(cart, tdb, compositeLevel, ENCODE_PEAK_SCORE_FILTER_SUFFIX, "0"), 4);
+    int scoreMax = atoi(trackDbSettingClosestToHomeOrDefault(tdb, "scoreMax", "1000"));
+    scoreGrayLevelCfgUi(cart, tdb, tdb->tableName, scoreMax);
     }
-    puts("</TABLE>");
+puts("</TABLE>");
 cfgEndBox(boxed);
 }
 
 void genePredCfgUi(struct cart *cart, struct trackDb *tdb, char *name, char *title, boolean boxed)