src/hg/hgTrackUi/hgTrackUi.c 1.475

1.475 2009/03/06 23:19:40 angie
HapMap SNPs: Added distinction between expected and observed heterozygosity for filtering. Finally checking in Phase III filtering code in hgTracks/hapmapTrack.c.
Index: src/hg/hgTrackUi/hgTrackUi.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgTrackUi/hgTrackUi.c,v
retrieving revision 1.474
retrieving revision 1.475
diff -b -B -U 4 -r1.474 -r1.475
--- src/hg/hgTrackUi/hgTrackUi.c	3 Mar 2009 01:02:46 -0000	1.474
+++ src/hg/hgTrackUi/hgTrackUi.c	6 Mar 2009 23:19:40 -0000	1.475
@@ -1983,9 +1983,13 @@
 /* snp track also sets global variables, don't actually need this? */
 /* Consider using radio buttons */
 {
 struct sqlConnection *conn = hAllocConn(database);
-boolean isPhaseIII = (! sqlTableExists(conn, "hapmapAllelesSummary"));
+boolean isPhaseIII = sameString(trackDbSettingOrDefault(tdb, "hapmapPhase", "II"), "III");
+
+if ((isPhaseIII && !sqlTableExists(conn, "hapmapPhaseIIISummary")) ||
+    (!isPhaseIII & !sqlTableExists(conn, "hapmapAllelesSummary")))
+    return;
 
 puts("<P>");
 puts("<B>Display filters (applied to all subtracks):</B>");
 puts("<BR>\n");
@@ -2025,9 +2029,9 @@
 	    puts("<TR>");
 	printf("<TD align=right><B>%s:</B></TD><TD>", pops[i]);
 	safef(cartVar, sizeof(cartVar), "%s_%s", HAP_MONO_PREFIX, pops[i]);
 	cgiMakeDropList(cartVar, noYesNoMenu, 3,
-			cartUsualString(cart, HAP_MONO_PREFIX, HAP_FILTER_DEFAULT));
+			cartUsualString(cart, cartVar, HAP_FILTER_DEFAULT));
 	printf("</TD>\n");
 	cellCount += 2;
 	if (cellCount == 12)
 	    {
@@ -2057,17 +2061,29 @@
 float maxFreq = atof(cartUsualString(cart, HAP_MAX_FREQ, HAP_MAX_FREQ_DEFAULT));
 cgiMakeDoubleVar(HAP_MAX_FREQ, maxFreq, 6);
 puts("&nbsp;(range: 0.0 to 0.5)\n");
 
-puts("<BR><B>Overall heterozygosity: </B>");
+if (isPhaseIII)
+    puts("<BR><B>Average of populations' observed heterozygosities: </B>");
+else
+    puts("<BR><B>Expected heterozygosity (from total allele frequencies): </B>");
 puts("<B>min:</B>&nbsp;");
 float minHet = atof(cartUsualString(cart, HAP_MIN_HET, HAP_MIN_HET_DEFAULT));
 cgiMakeDoubleVar(HAP_MIN_HET, minHet, 6);
 
 puts("<B>max:</B>&nbsp;");
-float maxHet = atof(cartUsualString(cart, HAP_MAX_HET, HAP_MAX_HET_DEFAULT));
-cgiMakeDoubleVar(HAP_MAX_HET, maxHet, 6);
-puts("&nbsp;(range: 0.0 to 0.5)\n");
+if (isPhaseIII)
+    {
+    float maxHet = atof(cartUsualString(cart, HAP_MAX_OBSERVED_HET, HAP_MAX_OBSERVED_HET_DEFAULT));
+    cgiMakeDoubleVar(HAP_MAX_OBSERVED_HET, maxHet, 6);
+    puts("&nbsp;(range: 0.0 to 1.0)\n");
+    }
+else
+    {
+    float maxHet = atof(cartUsualString(cart, HAP_MAX_EXPECTED_HET, HAP_MAX_EXPECTED_HET_DEFAULT));
+    cgiMakeDoubleVar(HAP_MAX_EXPECTED_HET, maxHet, 6);
+    puts("&nbsp;(range: 0.0 to 0.5)\n");
+    }
 
 static char *orthoMenu[] =
     { "no filter", 
       "available",