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"));