314b81670d2d1446d4da81108ac0ce2a72fc569d
markd
  Fri Jan 6 15:32:57 2017 -0800
bigTransMap hgc working

diff --git src/hg/lib/hdb.c src/hg/lib/hdb.c
index 358e252..bd91c71 100644
--- src/hg/lib/hdb.c
+++ src/hg/lib/hdb.c
@@ -2496,30 +2496,56 @@
 char *hGenome(char *database)
 /* Return genome associated with database.
  * use freeMem on this when done. */
 {
 return hDbDbOptionalField(database, "genome");
 }
 
 char *hScientificName(char *database)
 /* Return scientific name for organism represented by this database */
 /* Return NULL if unknown database */
 /* NOTE: must free returned string after use */
 {
 return hDbDbOptionalField(database, "scientificName");
 }
 
+char *hOrgShortName(char *org)
+/* Get the short name for an organism.  Returns NULL if org is NULL.
+ * WARNING: static return */
+{
+static int maxOrgSize = 7;
+static char orgNameBuf[128];
+if (org == NULL)
+    return NULL;
+strncpy(orgNameBuf, org, sizeof(orgNameBuf)-1);
+orgNameBuf[sizeof(orgNameBuf)-1] = '\0';
+char *shortOrg = firstWordInLine(orgNameBuf);
+if (strlen(shortOrg) > maxOrgSize)
+    shortOrg[maxOrgSize] = '\0';
+return shortOrg;
+}
+
+char *hOrgShortForDb(char *db)
+/* look up the short organism scientific name given an organism db.
+ * WARNING: static return */
+{
+char *org = hScientificName(db);
+char *shortOrg = hOrgShortName(org);
+freeMem(org);
+return shortOrg;
+}
+
 char *hHtmlPath(char *database)
 /* Return /gbdb path name to html description for this database */
 /* Return NULL if unknown database */
 /* NOTE: must free returned string after use */
 {
 char *htmlPath = hDbDbOptionalField(database, "htmlPath");
 char *newPath = hReplaceGbdb(htmlPath);
 freez(&htmlPath);
 return newPath;
 }
 
 char *hFreezeDate(char *database)
 /* Return freeze date of database. Use freeMem when done. */
 {
 return hDbDbField(database, "description");