114bd9cc108feeb8b20ad0b98b35454ea3fde8e0
kate
  Mon May 2 11:45:50 2016 -0700
Add details page info to show highest expressed tissue with scores. refs #17244

diff --git src/hg/hgc/gtexClick.c src/hg/hgc/gtexClick.c
index c4326dd..dab7f9a 100644
--- src/hg/hgc/gtexClick.c
+++ src/hg/hgc/gtexClick.c
@@ -82,56 +82,60 @@
 struct sqlConnection *conn = hAllocConn(database);
 char *desc = sqlQuickString(conn, query);
 hFreeConn(&conn);
 return desc;
 }
 
 void doGtexGeneExpr(struct trackDb *tdb, char *item)
 /* Details of GTEx gene expression item */
 {
 int start = cartInt(cart, "o");
 int end = cartInt(cart, "t");
 struct gtexGeneBed *gtexGene = getGtexGene(item, seqName, start, end, tdb->table);
 if (gtexGene == NULL)
     errAbort("Can't find gene %s in GTEx gene table %s\n", item, tdb->table);
 
+char *version = gtexVersion(tdb->table);
 genericHeader(tdb, item);
 printf("<b>Gene: </b>");
 char *desc = getGeneDescription(gtexGene);
 if (desc == NULL)
     printf("%s<br>\n", gtexGene->name);
 else
     {
     printf("<a target='_blank' href='%s?db=%s&hgg_gene=%s'>%s</a><br>\n", 
                         hgGeneName(), database, gtexGene->name, gtexGene->name);
     printf("<b>Description:</b> %s<br>\n", desc);
     }
 printf("<b>Ensembl gene ID:</b> %s<br>\n", gtexGene->geneId);
 // The actual transcript model is a union, so this identification is approximate
 // (used just to find a transcript class)
 char *geneClass = gtexGeneClass(gtexGene);
 printf("<b>GENCODE biotype: </b> %s<br>\n", gtexGene->geneType); 
 printf("<b>Gene class: </b><span style='color: %s'>%s</span><br>\n", 
             geneClassColorCode(geneClass), geneClass);
+int tisId;
+float highLevel = gtexGeneHighestMedianExpression(gtexGene, &tisId);
+printf("<b>Highest median expression: </b> %0.2f RPKM in %s<br>\n", 
+                highLevel, gtexGetTissueDescription(tisId, version));
 printf("<b>Total median expression: </b> %0.2f RPKM<br>\n", gtexGeneTotalMedianExpression(gtexGene));
 printf("<b>Score: </b> %d<br>\n", gtexGene->score); 
 printf("<b>Genomic position: "
                 "</b>%s <a href='%s&db=%s&position=%s%%3A%d-%d'>%s:%d-%d</a><br>\n", 
                     database, hgTracksPathAndSettings(), database, 
                     gtexGene->chrom, gtexGene->chromStart+1, gtexGene->chromEnd,
                     gtexGene->chrom, gtexGene->chromStart+1, gtexGene->chromEnd);
 puts("<p>");
 
 // set gtexDetails (e.g. to 'log') to show log transformed details page 
 //      if hgTracks is log-transformed
 boolean doLogTransform = 
         (trackDbSetting(tdb, "gtexDetails") &&
             cartUsualBooleanClosestToHome(cart, tdb, FALSE, GTEX_LOG_TRANSFORM,
                                                 GTEX_LOG_TRANSFORM_DEFAULT));
-char *version = gtexVersion(tdb->table);
 struct tempName pngTn;
 if (gtexGeneBoxplot(gtexGene->geneId, gtexGene->name, version, doLogTransform, &pngTn))
     printf("<img src = \"%s\" border=1><br>\n", pngTn.forHtml);
 printf("<br>");
 gtexPortalLink(gtexGene->geneId);
 printTrackHtml(tdb);
 }