0a33a218681208ca6365a73f7424758340225aea
angie
  Sun Sep 28 23:20:55 2014 -0700
Make sure to call hReplaceGbdb on the path given to annoAssemblyNew.refs #11957

diff --git src/hg/hgVai/libifyMe.c src/hg/hgVai/libifyMe.c
index 7f5b3b1..8baf084 100644
--- src/hg/hgVai/libifyMe.c
+++ src/hg/hgVai/libifyMe.c
@@ -264,36 +264,43 @@
     fullTrackList = getFullTrackList(cart, hubList, &hubGrpList);
     char *db= cartString(cart, "db");
     fullGroupList = makeGroupList(db, fullTrackList, &hubGrpList, FALSE);
     inited = TRUE;
     }
 if (retFullTrackList != NULL)
     *retFullTrackList = fullTrackList;
 if (retFullGroupList != NULL)
     *retFullGroupList = fullGroupList;
 }
 
 //#*** duplicated in hgVarAnnoGrator and annoGratorTester
 struct annoAssembly *getAnnoAssembly(char *db)
 /* Make annoAssembly for db. */
 {
+static struct annoAssembly *aa = NULL;
+if (aa == NULL)
+    {
     char *nibOrTwoBitDir = hDbDbNibPath(db);
     if (nibOrTwoBitDir == NULL)
         errAbort("Can't find .2bit for db '%s'", db);
     char twoBitPath[HDB_MAX_PATH_STRING];
     safef(twoBitPath, sizeof(twoBitPath), "%s/%s.2bit", nibOrTwoBitDir, db);
-return annoAssemblyNew(db, twoBitPath);
+    char *path = hReplaceGbdb(twoBitPath);
+    aa = annoAssemblyNew(db, path);
+    freeMem(path);
+    }
+return aa;
 }
 
 static boolean columnsMatch(struct asObject *asObj, struct sqlFieldInfo *fieldList)
 /* Return TRUE if asObj's column names match the given SQL fields. */
 {
 if (asObj == NULL)
     return FALSE;
 struct sqlFieldInfo *firstRealField = fieldList;
 if (sameString("bin", fieldList->field) && differentString("bin", asObj->columnList->name))
     firstRealField = fieldList->next;
 boolean columnsMatch = TRUE;
 struct sqlFieldInfo *field = firstRealField;
 struct asColumn *asCol = asObj->columnList;
 for (;  field != NULL && asCol != NULL;  field = field->next, asCol = asCol->next)
     {