4c1d2a0a761f1afc9da81243357e462ae14c3756
braney
  Thu Dec 15 14:49:26 2022 -0800
add assembly aliasing to hub connection

diff --git src/hg/lib/hubConnect.c src/hg/lib/hubConnect.c
index 503a1e7..c7383fa 100644
--- src/hg/lib/hubConnect.c
+++ src/hg/lib/hubConnect.c
@@ -13,30 +13,31 @@
 #include "dystring.h"
 #include "sqlNum.h"
 #include "jksql.h"
 #include "hdb.h"
 #include "net.h"
 #include "trackHub.h"
 #include "hubConnect.h"
 #include "hui.h"
 #include "errCatch.h"
 #include "obscure.h"
 #include "hgConfig.h"
 #include "grp.h"
 #include "udc.h"
 #include "hubPublic.h"
 #include "genark.h"
+#include "asmAlias.h"
 
 boolean isHubTrack(char *trackName)
 /* Return TRUE if it's a hub track. */
 {
 return startsWith(hubTrackPrefix, trackName);
 }
 
 static char *hubStatusTableName = NULL;
 static char *_hubPublicTableName = NULL;
 
 static char *getHubStatusTableName()
 /* return the hubStatus table name from the environment, 
  * or hg.conf, or use the default.  Cache the result */
 {
 if (hubStatusTableName == NULL)
@@ -925,30 +926,31 @@
 boolean added = FALSE;
 
 struct hubConnectStatus  *hub;
 for(hub = hubList; hub; hub = hub->next)
     {
     struct trackHub *tHub = hub->trackHub;
     if (tHub == NULL)
         continue;
 
     struct trackHubGenome *genomeList = tHub->genomeList, *genome;
 
     for(genome = genomeList; genome; genome = genome->next)
         {
         char *name = genome->name;
 
+        name = asmAliasFind(name);
         if (!hDbIsActive(name) )
             {
             char buffer[4096];
             unsigned newId = 0;
 
             // look with undecorated name for an attached assembly hub
             if (!(newId = lookForUndecoratedDb(name)))
                 {
                 // see if genark has this assembly
                 char query[4096];
                 sqlSafef(query, sizeof query, "select hubUrl from %s where gcAccession='%s'", genarkTableName(), name);
                 if (sqlQuickQuery(conn, query, buffer, sizeof buffer))
                     {
                     char url[4096];
                     safef(url, sizeof url, "%s/%s", genarkPrefix, buffer);
@@ -1042,30 +1044,31 @@
 }
 
 
 char *hubConnectLoadHubs(struct cart *cart)
 /* load the track data hubs.  Set a static global to remember them */
 {
 int newCuratedHubId = 0;
 char *dbSpec = cartOptionalString(cart, "db");
 char *curatedHubPrefix = cfgOption("curatedHubPrefix");
 if (isEmpty(curatedHubPrefix))
     curatedHubPrefix = "public";
 if (dbSpec != NULL)
     newCuratedHubId = lookForCuratedHubs(cart, trackHubSkipHubName(dbSpec), curatedHubPrefix);
 
 char *newDatabase = checkForNew( cart);
+newDatabase = asmAliasFind(newDatabase);
 if (newCuratedHubId)
     newDatabase = dbOveride;
 cartSetString(cart, hgHubConnectRemakeTrackHub, "on");
 struct hubConnectStatus  *hubList =  hubConnectStatusListFromCart(cart);
 
 char *genarkPrefix = cfgOption("genarkHubPrefix");
 if (genarkPrefix && lookForLonelyHubs(cart, hubList, &newDatabase, genarkPrefix))
     hubList = hubConnectStatusListFromCart(cart);
 
 globalHubList = hubList;
 
 return newDatabase;
 }
 
 char *hubNameFromUrl(char *hubUrl)