src/hg/hgc/lowelab.c 1.50

1.50 2010/05/11 01:43:29 kent
Refactoring to split the trackDb.tableName field into separate track and table fields. Similarly track.mapName field goes to the same track and table fields.
Index: src/hg/hgc/lowelab.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgc/lowelab.c,v
retrieving revision 1.49
retrieving revision 1.50
diff -b -B -U 4 -r1.49 -r1.50
--- src/hg/hgc/lowelab.c	15 Apr 2010 00:01:13 -0000	1.49
+++ src/hg/hgc/lowelab.c	11 May 2010 01:43:29 -0000	1.50
@@ -470,9 +470,9 @@
 char *temparray[160];
 char *giwords[5];
 char *spAcc = NULL;
 struct slName *el, *list;
-char *table = tdb->tableName;
+char *table = tdb->table;
 char *pdb = hPdbFromGdb(database);
 struct genePred *gpList = NULL, *gp = NULL;
 char tableName[64];
 boolean hasBin;
@@ -952,9 +952,8 @@
 struct bed *cb=NULL;
 struct sargassoSeaXra *cbs=NULL, *cbs2, *list=NULL;
 struct sqlConnection *conn = hAllocConn(database);
 struct sqlResult *sr;
-char *track = tdb->tableName;
 char query[512];
 char *dupe, *words[16];
 char **row;
 char tempstring[255]="";
@@ -968,11 +967,11 @@
 if (wordCount > 1)
     num = atoi(words[1]);
 if (num < 3) num = 3;
 genericBedClick(conn, tdb, trnaName, start, num);
-rowOffset = hOffsetPastBin(database, seqName, track);
+rowOffset = hOffsetPastBin(database, seqName, tdb->table);
 
-sprintf(query, "select * from %s where name = '%s'", track, trnaName);
+sprintf(query, "select * from %s where name = '%s'", tdb->table, trnaName);
 sr = sqlGetResult(conn, query);
 while ((row = sqlNextRow(sr)) != NULL)
     cb=bedLoadN(row+1, 6);
 sequenceLength=(cb->chromEnd - cb->chromStart);
@@ -1161,9 +1160,8 @@
 
 
 void doTrnaGenes(struct trackDb *tdb, char *trnaName)
 {
-char *track = tdb->tableName;
 struct tRNAs *trna;
 char query[512];
 struct sqlConnection *conn = hAllocConn(database);
 struct sqlResult *sr;
@@ -1177,10 +1175,10 @@
 genericHeader(tdb,trnaName);
 dupe = cloneString(tdb->type);
 wordCount = chopLine(dupe, words);
 
-rowOffset = hOffsetPastBin(database, seqName, track);
-sprintf(query, "select * from %s where chrom = '%s' and name = '%s'", track, chrom, trnaName);
+rowOffset = hOffsetPastBin(database, seqName, tdb->table);
+sprintf(query, "select * from %s where chrom = '%s' and name = '%s'", tdb->table, chrom, trnaName);
 sr = sqlGetResult(conn, query);
 printf("<TABLE>\n");
 while ((row = sqlNextRow(sr)) != NULL)
   {
@@ -1230,9 +1228,8 @@
 }
 
 void doSnornaGenes(struct trackDb *tdb, char *snornaName)
 {
-char *track = tdb->tableName;
 struct snoRNAs *snorna;
 char query[512];
 struct sqlConnection *conn = hAllocConn(database);
 struct sqlResult *sr;
@@ -1244,10 +1241,10 @@
 genericHeader(tdb,snornaName);
 dupe = cloneString(tdb->type);
 wordCount = chopLine(dupe, words);
 
-rowOffset = hOffsetPastBin(database, seqName, track);
-sprintf(query, "select * from %s where name = '%s'", track, snornaName);
+rowOffset = hOffsetPastBin(database, seqName, tdb->table);
+sprintf(query, "select * from %s where name = '%s'", tdb->table, snornaName);
 sr = sqlGetResult(conn, query);
 while ((row = sqlNextRow(sr)) != NULL)
   {
     snorna = snoRNAsLoad(row+rowOffset);
@@ -1276,9 +1273,8 @@
 }
 
 void doGbRnaGenes(struct trackDb *tdb, char *gbRnaName)
 {
-char *track = tdb->tableName;
 struct gbRNAs *gbRna;
 char query[512];
 struct sqlConnection *conn = hAllocConn(database);
 struct sqlResult *sr;
@@ -1291,10 +1287,10 @@
 dupe = cloneString(tdb->type);
 wordCount = chopLine(dupe, words);
 
 
-rowOffset = hOffsetPastBin(database, seqName, track);
-sprintf(query, "select * from %s where name = '%s'", track, gbRnaName);
+rowOffset = hOffsetPastBin(database, seqName, tdb->table);
+sprintf(query, "select * from %s where name = '%s'", tdb->table, gbRnaName);
 sr = sqlGetResult(conn, query);
 
 
 while ((row = sqlNextRow(sr)) != NULL)
@@ -1325,19 +1321,18 @@
 }
 
 void doEasyGenes(struct trackDb *tdb, char *egName)
 {
-char *track = tdb->tableName;
 struct easyGene *egList = NULL, *eg;
 char query[512];
 struct sqlConnection *conn = hAllocConn(database);
 struct sqlResult *sr;
 char **row;
 int rowOffset;
 
 genericHeader(tdb,egName);
-rowOffset = hOffsetPastBin(database, seqName, track);
-sprintf(query, "select * from %s where name = '%s'", track, egName);
+rowOffset = hOffsetPastBin(database, seqName, tdb->table);
+sprintf(query, "select * from %s where name = '%s'", tdb->table, egName);
 sr = sqlGetResult(conn, query);
 while ((row = sqlNextRow(sr)) != NULL)
     slAddTail(&egList,easyGeneLoad(row+rowOffset));
 slReverse(&egList);
@@ -1376,9 +1371,8 @@
 struct codeBlast *cb=NULL;
 struct codeBlastScore *cbs=NULL, *cbs2, *list=NULL;
 struct sqlConnection *conn = hAllocConn(database);
 struct sqlResult *sr;
-char *track = tdb->tableName;
 char query[512];
 char *dupe, *words[16];
 char **row;
 char tempstring[255]="";
@@ -1392,11 +1386,11 @@
 if (wordCount > 1)
     num = atoi(words[1]);
 if (num < 3) num = 3;
 genericBedClick(conn, tdb, trnaName, start, num);
-rowOffset = hOffsetPastBin(database, seqName, track);
+rowOffset = hOffsetPastBin(database, seqName, tdb->table);
 
-sprintf(query, "select * from %s where name = '%s'", track, trnaName);
+sprintf(query, "select * from %s where name = '%s'", tdb->table, trnaName);
 sr = sqlGetResult(conn, query);
 while ((row = sqlNextRow(sr)) != NULL)
     {
     cb=codeBlastLoad(row);
@@ -1788,9 +1782,8 @@
 
 /*void doTigrOperons(struct trackDb *tdb, char *opName)*/
 /* track handler for the TIGR operon predictions */
 /*{
-char *track = tdb->tableName;
 struct tigrOperon *op;
 char query[512];
 struct sqlConnection *conn = hAllocConn(database);
 struct sqlResult *sr;
@@ -1805,9 +1798,9 @@
 if (wordCount > 1)
     num = atoi(words[1]);
 if (num < 3) num = 3;
 genericBedClick(conn, tdb, opName, start, num);
-sprintf(query, "select * from %sInfo where name = '%s'", track, opName);
+sprintf(query, "select * from %sInfo where name = '%s'", tdb->table, opName);
 sr = sqlGetResult(conn, query);*/
 /* Make the operon table like on the TIGR web page. */
 /*if ((row = sqlNextRow(sr)) != NULL)
     {
@@ -1853,9 +1846,8 @@
 
 void doTigrCmrGene(struct trackDb *tdb, char *tigrName)
 /* Handle the TIRG CMR gene track. */
 {
-  char *track = tdb->tableName;
   struct tigrCmrGene *tigr;
   char query[512];
   struct sqlConnection *conn = hAllocConn(database);
   struct sqlResult *sr;
@@ -1868,10 +1860,10 @@
   genericHeader(tdb,tigrName);
   dupe = cloneString(tdb->type);
   wordCount = chopLine(dupe, words);
 
-  rowOffset = hOffsetPastBin(database, seqName, track);
-  sprintf(query, "select * from %s where name = '%s'", track, tigrName);
+  rowOffset = hOffsetPastBin(database, seqName, tdb->table);
+  sprintf(query, "select * from %s where name = '%s'", tdb->table, tigrName);
   sr = sqlGetResult(conn, query);
   while ((row = sqlNextRow(sr)) != NULL)
     {
       tigr = tigrCmrGeneLoad(row);
@@ -1919,9 +1911,8 @@
 
 void doJgiGene(struct trackDb *tdb, char *jgiName)
 /* Handle the JGI gene track. */
 {
-  char *track = tdb->tableName;
   struct jgiGene *jgi;
   char query[512];
   struct sqlConnection *conn = hAllocConn(database);
   struct sqlResult *sr;
@@ -1933,10 +1924,10 @@
   genericHeader(tdb,jgiName);
   dupe = cloneString(tdb->type);
   wordCount = chopLine(dupe, words);
 
-  rowOffset = hOffsetPastBin(database, seqName, track);
-  sprintf(query, "select * from %s where name = '%s'", track, jgiName);
+  rowOffset = hOffsetPastBin(database, seqName, tdb->table);
+  sprintf(query, "select * from %s where name = '%s'", tdb->table, jgiName);
   sr = sqlGetResult(conn, query);
   while ((row = sqlNextRow(sr)) != NULL)
     {
       jgi = jgiGeneLoad(row+rowOffset);
@@ -1966,9 +1957,8 @@
 
 void doPfamHit(struct trackDb *tdb, char *hitName)
 /* Handle the Pfam hits track. */
 {
-  char *track = tdb->tableName;
   struct lowelabPfamHits *pfamHit;
   char query[512];
   struct sqlConnection *conn = hAllocConn(database);
   struct sqlConnection *spConn = NULL;
@@ -1985,11 +1975,11 @@
   genericHeader(tdb,hitName);
   dupe = cloneString(tdb->type);
   wordCount = chopLine(dupe, words);
 
-  rowOffset = hOffsetPastBin(database, seqName, track);
+  rowOffset = hOffsetPastBin(database, seqName, tdb->table);
 
-  sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d", track, hitName,seqName,start);
+  sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d", tdb->table, hitName,seqName,start);
   sr = sqlGetResult(conn, query);
   while ((row = sqlNextRow(sr)) != NULL)
     {
       pfamHit = lowelabPfamHitsLoad(row+rowOffset);
@@ -2037,9 +2027,8 @@
 
 void doTigrOperons(struct trackDb *tdb, char *tigrOperonName)
 /* Handle the TIGR operons track. */
 {
-    char *track = tdb->tableName;
     struct bed *tigrOperon;
     struct lowelabTIGROperonScore *tigrOperonScore;
     char query[512];
     struct sqlConnection *conn = hAllocConn(database);
@@ -2057,10 +2046,10 @@
     if (wordCount > 1)
         bedSize = atoi(words[1]);
     if (bedSize < 3) bedSize = 3;
 
-    rowOffset = hOffsetPastBin(database, seqName, track);
-    sprintf(query, "select * from %s where name = '%s'", track, tigrOperonName);
+    rowOffset = hOffsetPastBin(database, seqName, tdb->table);
+    sprintf(query, "select * from %s where name = '%s'", tdb->table, tigrOperonName);
     sr = sqlGetResult(conn, query);
     while ((row = sqlNextRow(sr)) != NULL)
     {
         tigrOperon = bedLoadN(row+rowOffset, bedSize);
@@ -2130,9 +2119,8 @@
 
 void doArkinOperons(struct trackDb *tdb, char *arkinOperonName)
 /* Handle the Arkin operons track. */
 {
-    char *track = tdb->tableName;
     struct bed *arkinOperon;
     struct lowelabArkinOperonScore *arkinOperonScore;
     char query[512];
     struct sqlConnection *conn = hAllocConn(database);
@@ -2150,10 +2138,10 @@
     if (wordCount > 1)
         bedSize = atoi(words[1]);
     if (bedSize < 3) bedSize = 3;
 
-    rowOffset = hOffsetPastBin(database, seqName, track);
-    sprintf(query, "select * from %s where name = '%s'", track, arkinOperonName);
+    rowOffset = hOffsetPastBin(database, seqName, tdb->table);
+    sprintf(query, "select * from %s where name = '%s'", tdb->table, arkinOperonName);
     sr = sqlGetResult(conn, query);
     while ((row = sqlNextRow(sr)) != NULL)
     {
         arkinOperon = bedLoadN(row+rowOffset, bedSize);
@@ -2224,9 +2212,8 @@
 
 struct bed * getBlastpTrackRecord(struct sqlConnection *conn, struct trackDb *tdb, char *targetName)
 /* Get blastp track record clicked by user*/
 {
-    char *track = tdb->tableName;
     struct bed *blastpTrack = NULL;
     char *dupe, *words[16];
     int wordCount;
     int bedSize = 0;
@@ -2244,11 +2231,11 @@
     if (wordCount > 1)
         bedSize = atoi(words[1]);
     if (bedSize < 3) bedSize = 3;
 
-    rowOffset = hOffsetPastBin(database, seqName, track);
+    rowOffset = hOffsetPastBin(database, seqName, tdb->table);
     sprintf(query, "select distinct * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = %d",
-            track, targetName, chrom, start, end);
+            tdb->table, targetName, chrom, start, end);
     sr = sqlGetResult(conn, query);
     if ((row = sqlNextRow(sr)) != NULL)
         blastpTrack = bedLoadN(row+rowOffset, bedSize);
 
@@ -3074,9 +3061,8 @@
 
 void doPrimers(struct trackDb *tdb, char *primerName)
 /* Handle the array primer and GOLD primer tracks. */
 {
-    char *track = tdb->tableName;
     struct bed *primer;
     struct dnaSeq *sequence;
     char query[512];
     struct sqlConnection *conn = hAllocConn(database);
@@ -3099,10 +3085,10 @@
     if (wordCount > 1)
         bedSize = atoi(words[1]);
     if (bedSize < 3) bedSize = 3;
 
-    rowOffset = hOffsetPastBin(database, seqName, track);
-    sprintf(query, "select * from %s where name = '%s'", track, primerName);
+    rowOffset = hOffsetPastBin(database, seqName, tdb->table);
+    sprintf(query, "select * from %s where name = '%s'", tdb->table, primerName);
     sr = sqlGetResult(conn, query);
     while ((row = sqlNextRow(sr)) != NULL)
     {
         primer = bedLoadN(row+rowOffset, bedSize);
@@ -3343,24 +3329,24 @@
         }
 
       if(strlen(rnaHyb->JGITarget) > 0)
         {
-          saveTableName = tdb->tableName;
-          tdb->tableName = jgiTable;
+          saveTableName = tdb->table;
+          tdb->table = jgiTable;
           printf("<b>Additional information for target<b><br/>");
           printf("<hr/>");
           doJgiGene(tdb, rnaHyb->JGITarget);
-          tdb->tableName = saveTableName;
+          tdb->table = saveTableName;
         }
 
       if(strlen(rnaHyb->trnaTarget) > 0)
         {
-          saveTableName = tdb->tableName;
-          tdb->tableName = tRNATable;
+          saveTableName = tdb->table;
+          tdb->table = tRNATable;
           printf("<b>Additional information for target<b><br/>");
           printf("<hr/>");
           doTrnaGenes(tdb, rnaHyb->trnaTarget);
-          tdb->tableName = saveTableName;
+          tdb->table = saveTableName;
         }
 
 
       freeMem(rnaHyb);
@@ -3373,9 +3359,8 @@
 }
 
 void doarCOGs(struct trackDb *tdb, char *itemName)
 {
-  char *track = tdb->tableName;
   char query[512];
   struct sqlConnection *conn = hAllocConn(database);
   struct sqlResult *sr;
   char *dupe, *words[16];
@@ -3405,11 +3390,11 @@
   genericHeader(tdb,itemName);
   dupe = cloneString(tdb->type);
   wordCount = chopLine(dupe, words);
 
-  rowOffset = hOffsetPastBin(database,seqName, track);
+  rowOffset = hOffsetPastBin(database,seqName, tdb->table);
 
-  sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = '%d';", track, itemName,seqName,start, end);
+  sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = '%d';", tdb->table, itemName,seqName,start, end);
   sr = sqlGetResult(conn, query);
   while ((row = sqlNextRow(sr)) != NULL)
     {
         infoload = arCOGsLoad(row+rowOffset);
@@ -3431,11 +3416,11 @@
   hFreeConn(&conn);
   arCOGsFree(&infoload);
   printTrackHtml(tdb);
 }
+
 void doloweOrthologs(struct trackDb *tdb, char *itemName)
 {
-  char *track = tdb->tableName;
   char query[512];
   struct sqlConnection *conn = hAllocConn(database);
   struct sqlResult *sr;
   char *dupe, *words[16];
@@ -3456,11 +3441,11 @@
   genericHeader(tdb,itemName);
   dupe = cloneString(tdb->type);
   wordCount = chopLine(dupe, words);
 
-  rowOffset = hOffsetPastBin(database,seqName, track);
+  rowOffset = hOffsetPastBin(database,seqName, tdb->table);
 
-  sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = '%d';", track, itemName,seqName,start, end);
+  sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = '%d';", tdb->table, itemName,seqName,start, end);
   sr = sqlGetResult(conn, query);
   while ((row = sqlNextRow(sr)) != NULL)
     {
         infoload = bedLoadN(row+rowOffset, bedSize);
@@ -3479,11 +3464,11 @@
   sqlFreeResult(&sr);
   hFreeConn(&conn);
   printTrackHtml(tdb);
 }
+
 void doCddInfo(struct trackDb *tdb, char *itemName)
 {
-  char *track = tdb->tableName;
   char query[512];
   struct sqlConnection *conn = hAllocConn(database);
   struct sqlResult *sr;
   char *dupe, *words[16];
@@ -3518,11 +3503,11 @@
   genericHeader(tdb,itemName);
   dupe = cloneString(tdb->type);
   wordCount = chopLine(dupe, words);
 
-  rowOffset = hOffsetPastBin(database,seqName, track);
+  rowOffset = hOffsetPastBin(database,seqName, tdb->table);
 
-  sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = '%d';", track, itemName,seqName,start, end);
+  sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = '%d';", tdb->table, itemName,seqName,start, end);
   sr = sqlGetResult(conn, query);
   while ((row = sqlNextRow(sr)) != NULL)
     {
         infoload = cddInfoLoad(row+rowOffset);
@@ -3547,11 +3532,11 @@
   hFreeConn(&conn);
   cddInfoFree(&infoload);
   printTrackHtml(tdb);
 }
+
 void domegablastInfo(struct trackDb *tdb, char *itemName)
 {
-  char *track = tdb->tableName;
   char query[512];
   struct sqlConnection *conn = hAllocConn(database);
   struct sqlResult *sr;
   char *dupe, *words[16];
@@ -3566,11 +3551,11 @@
   genericHeader(tdb,itemName);
   dupe = cloneString(tdb->type);
   wordCount = chopLine(dupe, words);
 
-  rowOffset = hOffsetPastBin(database,seqName, track);
+  rowOffset = hOffsetPastBin(database,seqName, tdb->table);
 
-  sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = '%d';", track, itemName,seqName,start, end);
+  sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = '%d';", tdb->table, itemName,seqName,start, end);
   sr = sqlGetResult(conn, query);
   while ((row = sqlNextRow(sr)) != NULL)
     {
         infoload = megablastInfoLoad(row+rowOffset);
@@ -3602,11 +3587,11 @@
   hFreeConn(&conn);
   megablastInfoFree(&infoload);
   printTrackHtml(tdb);
 }
+
 void doAlignInfo(struct trackDb *tdb, char *itemName)
 {
-  char *track = tdb->tableName;
   char query[512];
   struct sqlConnection *conn = hAllocConn(database);
   struct sqlResult *sr;
   char *dupe, *words[16];
@@ -3627,11 +3612,11 @@
   genericHeader(tdb,itemName);
   dupe = cloneString(tdb->type);
   wordCount = chopLine(dupe, words);
 
-  rowOffset = hOffsetPastBin(database, seqName, track);
+  rowOffset = hOffsetPastBin(database, seqName, tdb->table);
 
-  sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d;", track, itemName,seqName,start);
+  sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d;", tdb->table, itemName,seqName,start);
   sr = sqlGetResult(conn, query);
   while ((row = sqlNextRow(sr)) != NULL)
     {
         infoload = alignInfoLoad(row+rowOffset);
@@ -3660,9 +3645,8 @@
 
 void doCRISPRs(struct trackDb *tdb, char *crisprName)
 /* Handle the CRISPR array track. */
 {
-    char *track = tdb->tableName;
     struct bed *crispr;
     struct dnaSeq *sequence;
 	char tempSeq[512];
     char query[512];
@@ -3682,10 +3666,10 @@
     if (wordCount > 1)
         bedSize = atoi(words[1]);
     if (bedSize < 3) bedSize = 3;
 	
-    rowOffset = hOffsetPastBin(database, seqName, track);
-    safef(query, ArraySize(query), "select * from %s where name = '%s'", track, crisprName);
+    rowOffset = hOffsetPastBin(database, seqName, tdb->table);
+    safef(query, ArraySize(query), "select * from %s where name = '%s'", tdb->table, crisprName);
     sr = sqlGetResult(conn, query);
     while ((row = sqlNextRow(sr)) != NULL)
     {
         crispr = bedLoadN(row+rowOffset, bedSize);