aba8125cb532df17beb7c7c9bc8467a43d09e3d6
braney
  Wed Feb 10 13:39:27 2016 -0800
changes to allow for GenBank metadata to be held in a common table.  #16809

diff --git src/hg/lib/genbank.c src/hg/lib/genbank.c
index bc1298b..1766507 100644
--- src/hg/lib/genbank.c
+++ src/hg/lib/genbank.c
@@ -1,26 +1,98 @@
 /* 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"
+
+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";
+char *cellTable = "cell";
+char *sourceTable = "source";
+char *libraryTable = "library";
+char *mrnaCloneTable = "mrnaClone";
+char *sexTable = "sex";
+char *keywordTable = "keyword";
+char *gbSeqTable = "gbSeq";
+char *gbExtFileTable = "gbExtFile";
+char *imageCloneTable = "imageClone";
+char *gbMiscDiffTable = "gbMiscDiff";
+
+#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);
+char buffer[MYBUFSIZE];
+
+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");       
+sourceTable = addDatabase(genbankDb, buffer, "source");
+libraryTable = addDatabase(genbankDb, buffer, "library");
+mrnaCloneTable = addDatabase(genbankDb, buffer, "mrnaClone");
+sexTable = addDatabase(genbankDb, buffer, "sex");
+keywordTable = addDatabase(genbankDb, buffer, "keyword");
+refPepTable = addDatabase(genbankDb, buffer, "refPep");
+imageCloneTable = addDatabase(genbankDb, buffer, "imageClone");
+gbMiscDiffTable = addDatabase(genbankDb, buffer, "gbMiscDiff");
+gbWarnTable = addDatabase(genbankDb, buffer, "gbWarn");
+
+inited = TRUE;
+}
 
 static char *JOIN_PREFIX = "join(";
 static char *COMPLEMENT_PREFIX = "complement(";
 
 static boolean convertCoord(char *numStr, int *coord)
 /* convert an CDS cooordinate, return false if invalid */
 {
 char *endPtr;
 *coord = strtoul(numStr, &endPtr, 10);
 return ((*numStr != '\0') && (*endPtr == '\0'));
 }
 
 static boolean parseStartCds(char *startBuf, struct genbankCds* cds)
 /* parse a starting CDS coordinate */
 {