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");