244bcc8165458cea7030fbe22f7a8974ba1f78ce
kate
  Wed Jan 13 16:51:51 2016 -0800
First cut sortable table to select tissues. refs #15645

diff --git src/hg/lib/gtexTissue.c src/hg/lib/gtexTissue.c
index 5c71d80..7e9afd2 100644
--- src/hg/lib/gtexTissue.c
+++ src/hg/lib/gtexTissue.c
@@ -195,23 +195,45 @@
 ")\n",   table);
 sqlRemakeTable(conn, table, query);
 }
 
 struct gtexTissue *gtexGetTissues()
 /* Get tissue id, descriptions, colors, etc. */
 {
 char query[1024];
 struct sqlConnection *conn = hAllocConn("hgFixed");
 sqlSafef(query, sizeof(query), "select * from gtexTissue order by id");
 struct gtexTissue *gtexTissues = gtexTissueLoadByQuery(conn, query);
 hFreeConn(&conn);
 return gtexTissues;
 }
 
+struct hash *gtexGetTissueSampleCount()
+/* Return hash of sample counts keyed by tissue name */
+{
+char query[1024];
+struct sqlResult *sr;
+char **row;
+struct sqlConnection *conn = hAllocConn("hgFixed");
+sqlSafef(query, sizeof(query), "select tissue, count(tissue) from gtexSample group by tissue");
+struct hash *tscHash = hashNew(0);
+sr = sqlGetResult(conn,query);
+while ((row = sqlNextRow(sr)) != NULL)
+    {
+    char *tissue = cloneString(row[0]);
+    int samples = sqlUnsigned(row[1]);
+    hashAddInt(tscHash, tissue, samples);
+    }
+sqlFreeResult(&sr);
+hFreeConn(&conn);
+return tscHash;
+}
+
 struct rgbColor gtexTissueBrightenColor(struct rgbColor rgb)
 /* Increase brightness for better visibility of small items */
 {
 struct hslColor hsl = mgRgbToHsl(rgb);
 hsl.s = min(1000, hsl.s + 300);
 return mgHslToRgb(hsl);
 }
 
+