37f2949bd230359381df9070c80361bddc058fc3
braney
  Sat May 14 16:47:31 2016 -0700
add some logic so genbank tables are retrieved from hgFixed in genbankDb
is not in hg.conf and the table exists

diff --git src/hg/lib/genbank.c src/hg/lib/genbank.c
index 1766507..d6702af 100644
--- src/hg/lib/genbank.c
+++ src/hg/lib/genbank.c
@@ -1,26 +1,28 @@
 /* genbank.c - Various functions for dealing with genbank data */
 
 /* Copyright (C) 2014 The Regents of the University of California 
  * See README in this or parent directory for licensing information. */
 #include "common.h"
 #include "hash.h"
 #include "psl.h"
 #include "linefile.h"
 #include "genbank.h"
 #include "dystring.h"
 #include "hgConfig.h"
+#include "hdb.h"
+#include "trackHub.h"
 
 char *refSeqSummaryTable = "refSeqSummary";
 char *refSeqStatusTable = "refSeqStatus";
 char *gbCdnaInfoTable = "gbCdnaInfo";
 char *gbWarnTable = "gbWarn";
 char *authorTable = "author";
 char *descriptionTable = "description";
 char *productNameTable = "productName";
 char *organismTable = "organism";
 char *cdsTable = "cds";
 char *tissueTable = "tissue";
 char *developmentTable = "development";
 char *geneNameTable = "geneName";
 char *refLinkTable = "refLink";
 char *refPepTable = "refPep";
@@ -38,34 +40,47 @@
 #define MYBUFSIZE 2048
 inline char *addDatabase(char *database, char *buffer, char *table)
 {
 safef(buffer, MYBUFSIZE, "%s.%s",database,table);
 return cloneString(buffer);
 }
 
 void initGenbankTableNames(char *database)
 /* read hg.conf to get alternate table names */
 {
 static boolean inited = FALSE;
 
 if (inited)
     return;
 
-char *genbankDb = cfgOptionEnvDefault("GENBANKDB", "genbankDb",
-    database);
+if (trackHubDatabase(database))   // don't remap the names on assembly hubs
+    return;
+
+char *genbankDb = cfgOptionEnv("GENBANKDB", "genbankDb");
 char buffer[MYBUFSIZE];
 
+if (genbankDb == NULL)
+    {
+    // if there's no genbankDb specified, check to see if hgFixed has the table, else use the database
+    struct sqlConnection *conn = hAllocConn(database);
+    if (sqlTableExists(conn, "hgFixed.gbCdnaInfo"))
+        genbankDb = "hgFixed";
+    else 
+        genbankDb = database;
+    hFreeConn(&conn);
+    }
+
 refSeqStatusTable = addDatabase(genbankDb, buffer, "refSeqStatus");
 refSeqSummaryTable = addDatabase(genbankDb, buffer, "refSeqSummary");
 gbSeqTable = addDatabase(genbankDb, buffer, "gbSeq");
 gbExtFileTable = addDatabase(genbankDb, buffer, "gbExtFile");
 gbCdnaInfoTable = addDatabase(genbankDb, buffer, "gbCdnaInfo");
 authorTable = addDatabase(genbankDb, buffer, "author");
 descriptionTable = addDatabase(genbankDb, buffer, "description");
 productNameTable = addDatabase(genbankDb, buffer, "productName");
 organismTable = addDatabase(genbankDb, buffer, "organism");
 cdsTable = addDatabase(genbankDb, buffer, "cds");
 tissueTable = addDatabase(genbankDb, buffer, "tissue");       
 developmentTable = addDatabase(genbankDb, buffer, "development");
 geneNameTable = addDatabase(genbankDb, buffer, "geneName");
 refLinkTable = addDatabase(genbankDb, buffer, "refLink");
 cellTable = addDatabase(genbankDb, buffer, "cell");