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(" (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> ");
float minHet = atof(cartUsualString(cart, HAP_MIN_HET, HAP_MIN_HET_DEFAULT));
cgiMakeDoubleVar(HAP_MIN_HET, minHet, 6);
puts("<B>max:</B> ");
-float maxHet = atof(cartUsualString(cart, HAP_MAX_HET, HAP_MAX_HET_DEFAULT));
-cgiMakeDoubleVar(HAP_MAX_HET, maxHet, 6);
-puts(" (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(" (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(" (range: 0.0 to 0.5)\n");
+ }
static char *orthoMenu[] =
{ "no filter",
"available",