534feaa0bd15fe67eafcc900ebecbd44ad0e74a7
braney
  Tue Jan 31 15:35:00 2017 -0800
with snakes, get other db name from otherSpecies, not from track name

diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c
index c7a6d17..fcfbab4 100644
--- src/hg/hgc/hgc.c
+++ src/hg/hgc/hgc.c
@@ -24995,31 +24995,34 @@
     errAbort("no trackDb entry for %s", table);
 return tdb;
 }
 
 void doQPCRPrimers(struct trackDb *tdb, char *itemName)
 /* Put up page for QPCRPrimers. */
 {
 genericHeader(tdb, itemName);
 doBedDetail(tdb, NULL, itemName);
 } /* end of doQPCRPrimers */
 
 void doSnakeClick(struct trackDb *tdb, char *itemName)
 /* Put up page for snakes. */
 {
 struct trackDb *parentTdb = trackDbTopLevelSelfOrParent(tdb);
-char *otherSpecies = trackHubSkipHubName(tdb->table) + strlen("snake");
+char *otherSpecies = trackDbSetting(tdb, "otherSpecies");
+if (otherSpecies == NULL)
+    otherSpecies = trackHubSkipHubName(tdb->table) + strlen("snake");
+
 char *hubName = cloneString(database);
 char otherDb[4096];
 char *qName = cartOptionalString(cart, "qName");
 int qs = atoi(cartOptionalString(cart, "qs"));
 int qe = atoi(cartOptionalString(cart, "qe"));
 int qWidth = atoi(cartOptionalString(cart, "qWidth"));
 char *qTrack = cartString(cart, "g");
 if(isHubTrack(qTrack) && ! trackHubDatabase(database))
     hubName = cloneString(qTrack);
 
 struct hash *dbAliasHash = NULL;  // create later when needed
 char * dbAliasList = trackDbSetting(tdb, "dbAliasList");
 if (dbAliasList)
     dbAliasHash = hashFromString(dbAliasList);