a8ad5a3d588d9dc27f734a8a9639343db83f1d9d
kate
  Mon Jun 29 11:50:32 2015 -0700
Minor work on GTEX details during meeting (much more needed). refs #13504

diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c
index 24a92f6..9848c5d 100644
--- src/hg/hgc/hgc.c
+++ src/hg/hgc/hgc.c
@@ -24457,80 +24457,89 @@
 doBedDetail(tdb, NULL, itemName);
 } /* end of doQPCRPrimers */
 
 void doGtexGeneExpr(struct trackDb *tdb, char *item)
 /* Details of GTEX gene expression item */
 {
 // Load item from table */
 
 // TODO:  Get full details from Data table 
 struct dyString *dy = dyStringNew(0);
 //char sampleTable[128];
 //safef(sampleTable, sizeof(able), "%sSampleData", tdb->table);
 
 struct sqlConnection *conn = hAllocConn(database);
 char **row;
+struct gtexGeneBed *gtexGene = NULL;
 int expCount = 0;
 if (sqlTableExists(conn, tdb->table))
     {
     char query[512];
     sqlSafef(query, sizeof(query), "select * from %s where name = '%s'", tdb->table, item);
     struct sqlResult *sr = sqlGetResult(conn, query);
     row = sqlNextRow(sr);
     if (row != NULL)
         {
-        struct gtexGeneBed *gtexGene = gtexGeneBedLoad(row);
-        //printf("<b>Gene name</b> %s<br>\n", gtexGene->name);
-        //printf("<b>Ensembl gene</b> %s<br>\n", gtexGene->geneId);
-        //printf("<b>Ensembl transcript</b> %s<br>\n", gtexGene->transcriptId);
+        gtexGene = gtexGeneBedLoad(row);
         expCount = gtexGene->expCount;
         }
     sqlFreeResult(&sr);
     }
 hFreeConn(&conn);
 
+genericHeader(tdb, item);
+
+if (gtexGene != NULL)
+    {
+    printf("<b>Gene name:</b> %s<br>\n", gtexGene->name);
+    printf("<b>Ensembl gene:</b> %s<br>\n", gtexGene->geneId);
+    printf("<b>Ensembl transcript:</b> %s<br>\n", gtexGene->transcriptId);
+    }
+printTrackHtml(tdb);
+
 // Print out tissue table with color assignments
 conn = hAllocConn("hgFixed");
 char *tissueTable = "gtexTissue";
 if (sqlTableExists(conn, tissueTable))
     {
     dyStringPrintf(dy, "<table>");
-    dyStringPrintf(dy, "<tr><td>Color</td><td>Tissue</td></tr>\n");
+    dyStringPrintf(dy, "<tr><td><b>Color<b></td><td><b>Tissue<b></td></tr>\n");
     int i;
     double invExpCount = 1.0/expCount;
     char query[512];
     sqlSafef(query, sizeof(query), "select * from %s", tissueTable);
     struct sqlResult *sr = sqlGetResult(conn, query);
     for (i=0; i<expCount; i++)
         {
         row = sqlNextRow(sr);
         if (row == NULL)
             break;
         struct gtexTissue *tissue = gtexTissueLoad(row);
         double colPos = invExpCount * i;
         struct rgbColor color = saturatedRainbowAtPos(colPos);
         dyStringPrintf(dy, "<tr><td bgcolor='#%02X%02X%02X'></td><td>%s</td></tr>\n",
                     color.r, color.g, color.b, tissue->description);
         }
     sqlFreeResult(&sr);
     }
 hFreeConn(&conn);
 dyStringPrintf(dy, "</table>");
+puts(dy->string);
 
 //cartWebStart(cart, database, "List of items assayed in %s", clusterTdb->shortLabel);
 
-genericClickHandlerPlus(tdb, item, item, dy->string);
+//genericClickHandlerPlus(tdb, item, item, dy->string);
 dyStringFree(&dy);
 }
 
 void doSnakeClick(struct trackDb *tdb, char *itemName)
 /* Put up page for snakes. */
 {
 genericHeader(tdb, itemName);
 char *otherSpecies = trackHubSkipHubName(tdb->table) + strlen("snake");
 char *hubName = cloneString(database);
 char *ptr = strchr(hubName + 4, '_');
 *ptr = 0;
 char otherDb[4096];
 char *qName = cartOptionalString(cart, "qName");
 int qs = atoi(cartOptionalString(cart, "qs"));
 int qe = atoi(cartOptionalString(cart, "qe"));