src/hg/hgc/hgc.c 1.1620
1.1620 2010/05/11 01:43:28 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/hgc.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgc/hgc.c,v
retrieving revision 1.1619
retrieving revision 1.1620
diff -b -B -U 4 -r1.1619 -r1.1620
--- src/hg/hgc/hgc.c 4 May 2010 00:03:28 -0000 1.1619
+++ src/hg/hgc/hgc.c 11 May 2010 01:43:28 -0000 1.1620
@@ -832,9 +832,9 @@
sprintf(endString, "%d", winEnd);
ins[0] = "$$";
outs[0] = idInUrl;
ins[1] = "$T";
- outs[1] = tdb->tableName;
+ outs[1] = tdb->track;
ins[2] = "$S";
outs[2] = seqName;
ins[3] = "$[";
outs[3] = startString;
@@ -871,9 +871,9 @@
printf("<B>%s </B>",
trackDbSettingOrDefault(tdb, urlLabelSetting, "Outside Link:"));
printf("<A HREF=\"%s\" target=_blank>", eUrl->string);
- if (sameWord(tdb->tableName, "npredGene"))
+ if (sameWord(tdb->table, "npredGene"))
{
printf("%s (%s)</A><BR>\n", idInUrl, "NCBI MapView");
}
else
@@ -917,9 +917,9 @@
struct sqlResult *sr;
char **row;
boolean firstTime = TRUE;
-hFindSplitTable(database, seqName, tdb->tableName, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d",
table, item, seqName, start);
/*errAbort( "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d",
@@ -986,9 +986,9 @@
filterTable, filterCt);
}
else
{
- hFindSplitTable(database, seqName, tdb->tableName, table, &hasBin);
+ hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
safef(query, sizeof(query),
"select * from %s where chrom = '%s' and chromEnd > %d and "
"chromStart < %d order by score desc",
table, seqName, winStart, winEnd);
@@ -1087,9 +1087,9 @@
continue;
*title = '\0';
title++;
if((table = strchr(words[ix],'.')) == NULL)
- table = tdb->tableName;
+ table = tdb->table;
else
{
*table++ = '\0'; // assigns before advance
if((words[ix] = strchr(table,'.')) != NULL)
@@ -1113,9 +1113,9 @@
gotOne = TRUE;
printf("<P>The item \"%s\" has been located in other genomes:\n<UL>\n",name);
}
printf("<LI>");
- safef(extra,sizeof(extra),"%s=full",tdb->tableName);
+ safef(extra,sizeof(extra),"%s=full",tdb->track);
linkToOtherBrowserExtra(db, chrom, beg, end, extra);
printf("%s</A></LI>\n",strSwapChar(title,'_',' '));
sqlFreeResult(&sr);
}
@@ -1147,9 +1147,9 @@
struct sqlConnection *sc;
struct atom ret;
genericHeader(tdb, item);
-hFindSplitTable(database, seqName, tdb->tableName, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
#if 0
sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d", table, escapedName, seqName, start);
sr = sqlGetResult(conn, query);
printf("<B>This is the item you clicked on:</B><BR>\n");
@@ -1298,14 +1298,14 @@
char **row;
boolean firstTime = TRUE;
char *escapedName = sqlEscapeString(item);
-hFindSplitTable(database, seqName, tdb->tableName, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
if (bedSize <= 3)
sprintf(query, "select * from %s where chrom = '%s' and chromStart = %d", table, seqName, start);
else
{
- struct hTableInfo *hti = hFindTableInfoWithConn(conn, seqName, tdb->tableName);
+ struct hTableInfo *hti = hFindTableInfoWithConn(conn, seqName, tdb->table);
if (hti && *hti->nameField && differentString("name", hti->nameField))
sprintf(query, "select * from %s where %s = '%s' and chrom = '%s' and chromStart = %d",
table, hti->nameField, escapedName, seqName, start);
else
@@ -1452,9 +1452,9 @@
struct sqlResult *sr;
char **row;
boolean firstTime = TRUE;
-hFindSplitTable(database, seqName, tdb->tableName, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
if (bedSize <= 3)
sprintf(query, "select * from %s where chrom = '%s' and chromStart = %d", table, seqName, start);
else
sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d",
@@ -2174,9 +2174,9 @@
void showGenePos(char *name, struct trackDb *tdb)
/* Show gene prediction position and other info. */
{
-char *track = tdb->tableName;
+char *rootTable = tdb->table;
char query[512];
struct sqlConnection *conn = hAllocConn(database);
struct genePred *gpList = NULL, *gp = NULL;
boolean hasBin;
@@ -2184,9 +2184,9 @@
struct sqlResult *sr = NULL;
char **row = NULL;
char *classTable = trackDbSetting(tdb, GENEPRED_CLASS_TBL);
-hFindSplitTable(database, seqName, track, table, &hasBin);
+hFindSplitTable(database, seqName, rootTable, table, &hasBin);
safef(query, sizeof(query), "name = \"%s\"", name);
gpList = genePredReaderLoadQuery(conn, table, query);
for (gp = gpList; gp != NULL; gp = gp->next)
{
@@ -2253,17 +2253,17 @@
struct sqlConnection *connMm)
/* Show gene prediction position and other info. */
{
char query[512];
-char *track = tdb->tableName;
+char *rootTable = tdb->table;
struct sqlResult *sr;
char **row;
struct genePred *gp = NULL;
boolean hasBin;
int posCount = 0;
char table[64] ;
-hFindSplitTable(database, seqName, track, table, &hasBin);
+hFindSplitTable(database, seqName, rootTable, table, &hasBin);
sprintf(query, "select * from %s where name = '%s'", table, name);
sr = sqlGetResult(connMm, query);
while ((row = sqlNextRow(sr)) != NULL)
{
@@ -2282,9 +2282,9 @@
char *mrnaClick, char *genomicClick, char *mrnaDescription)
/* Show parts of gene common to everything. If pepTable is not null,
* it's the old table name, but will check gbSeq first. */
{
-char *geneTable = tdb->tableName;
+char *geneTable = tdb->table;
boolean foundPep = FALSE;
showGenePos(geneName, tdb);
if (startsWith("ENCODE Gencode",tdb->longLabel))
@@ -2365,9 +2365,9 @@
}
puts("<LI>\n");
hgcAnchorSomewhere(mrnaClick, geneName, geneTable, seqName);
-/* ugly hack to put out a correct message describing the mRNA */
+/* hack to put out a correct message describing the mRNA */
if (sameString(mrnaClick, "htcGeneMrna"))
printf("%s</A> from genomic sequences\n", mrnaDescription);
else
printf("%s</A> may be different from the genomic sequence.\n",
@@ -2385,9 +2385,9 @@
char *pepTable, char *pepClick,
char *mrnaClick, char *genomicClick, char *mrnaDescription)
/* Show parts of a DNA based RefSeq gene */
{
-char *geneTable = tdb->tableName;
+char *geneTable = tdb->table;
showGenePos(geneName, tdb);
printf("<H3>Links to sequence:</H3>\n");
printf("<UL>\n");
@@ -2403,9 +2403,9 @@
struct sqlConnection *connMm, char *pepClick,
char *mrnaClick, char *genomicClick, char *mrnaDescription)
/* Show parts of gene common to everything */
{
-char *geneTable = tdb->tableName;
+char *geneTrack = tdb->track;
showGenePosMouse(geneName, tdb, connMm);
printf("<H3>Links to sequence:</H3>\n");
printf("<UL>\n");
@@ -2413,11 +2413,11 @@
{
hgcAnchorSomewhereDb(pepClick, pepName, pepTable, seqName, mousedb);
printf("<LI>Translated Protein</A> \n");
}
-hgcAnchorSomewhereDb(mrnaClick, geneName, geneTable, seqName, mousedb);
+hgcAnchorSomewhereDb(mrnaClick, geneName, geneTrack, seqName, mousedb);
printf("<LI>%s</A>\n", mrnaDescription);
-hgcAnchorSomewhereDb(genomicClick, geneName, geneTable, seqName, mousedb);
+hgcAnchorSomewhereDb(genomicClick, geneName, geneTrack, seqName, mousedb);
printf("<LI>Genomic Sequence</A> DNA sequence from assembly\n");
printf("</UL>\n");
}
@@ -2487,20 +2487,20 @@
void genericPslClick(struct sqlConnection *conn, struct trackDb *tdb,
char *item, int start, char *subType)
/* Handle click in generic psl track. */
{
-struct psl* pslList = getAlignments(conn, tdb->tableName, item);
+struct psl* pslList = getAlignments(conn, tdb->table, item);
/* check if there is an alignment available for this sequence. This checks
* both genbank sequences and other sequences in the seq table. If so,
* set it up so they can click through to the alignment. */
if (hGenBankHaveSeq(database, item, NULL))
{
printf("<H3>%s/Genomic Alignments</H3>", item);
if (sameString("protein", subType))
- printAlignments(pslList, start, "htcProteinAli", tdb->tableName, item);
+ printAlignments(pslList, start, "htcProteinAli", tdb->track, item);
else
- printAlignments(pslList, start, "htcCdnaAli", tdb->tableName, item);
+ printAlignments(pslList, start, "htcCdnaAli", tdb->track, item);
}
else
{
/* just dump the psls */
@@ -2509,46 +2509,54 @@
pslFreeList(&pslList);
}
+static char *getParentTableName(struct trackDb *tdb)
+/* Get the track table or composite track parent table if applicable. */
+{
+tdb = trackDbTopLevelSelfOrParent(tdb);
+return tdb->table;
+}
+
static char *getParentTrackName(struct trackDb *tdb)
-/* Get the track table name or composite track parent name if applicable. */
+/* Get the track name or composite track parent name if applicable. */
{
tdb = trackDbTopLevelSelfOrParent(tdb);
-return tdb->tableName;
+return tdb->track;
}
+
void printTBSchemaLink(struct trackDb *tdb)
/* Make link to TB schema -- unless this is an on-the-fly (tableless) track. */
{
-if (hTableOrSplitExists(database, tdb->tableName))
+if (hTableOrSplitExists(database, tdb->table))
{
- char *trackTable = getParentTrackName(tdb);
+ char *trackTable = getParentTableName(tdb);
printf("<P><A HREF=\"../cgi-bin/hgTables?db=%s&hgta_group=%s&hgta_track=%s"
"&hgta_table=%s&position=%s:%d-%d&"
"hgta_doSchema=describe+table+schema\" target=ucscSchema title='Open schema in new window'>"
"View table schema</A></P>\n",
- database, tdb->grp, trackTable, tdb->tableName,
+ database, tdb->grp, trackTable, tdb->table,
seqName, winStart+1, winEnd);
}
}
void printTrackUiLink(struct trackDb *tdb)
/* Make link to hgTrackUi. */
{
-char *trackTable = getParentTrackName(tdb);
+char *trackName = getParentTrackName(tdb);
struct trackDb *parentTdb = tdb;
-if (!sameString(trackTable, tdb->tableName))
- parentTdb = hTrackDbForTrack(database, trackTable);
+if (!sameString(trackName, tdb->track))
+ parentTdb = hTrackDbForTrack(database, trackName);
printf("<P><A HREF=\"../cgi-bin/hgTrackUi?g=%s&%s\">"
"Go to %s track controls</A></P>\n",
- trackTable, cartSidUrlString(cart), parentTdb->shortLabel);
+ trackName, cartSidUrlString(cart), parentTdb->shortLabel);
}
void printDataVersion(struct trackDb *tdb)
/* If this annotation has a dataVersion trackDb setting, print it */
{
-(void)metadataForTable(database,tdb,NULL);
+metadataForTable(database,tdb,NULL);
const char *version = metadataFindValue(tdb,"dataVersion");
if(version != NULL)
printf("<B>Data version:</B> %s <BR>\n", version);
else
@@ -2596,15 +2604,15 @@
* to the TB table schema page for this table. */
{
char *tableName;
-if (!isCustomTrack(tdb->tableName))
+if (!isCustomTrack(tdb->track))
{
extraUiLinks(database,tdb);
printTrackUiLink(tdb);
printDataVersion(tdb);
printOrigAssembly(tdb);
- if ((tableName = hTableForTrack(database, tdb->tableName)) != NULL)
+ if ((tableName = hTableForTrack(database, tdb->table)) != NULL)
{
struct sqlConnection *conn = hAllocConnTrack(database, tdb);
char *date = firstWordInLine(sqlTableUpdate(conn, tableName));
@@ -2721,9 +2729,8 @@
void genericChainClick(struct sqlConnection *conn, struct trackDb *tdb,
char *item, int start, char *otherDb)
/* Handle click in chain track, at least the basics. */
{
-char *track = tdb->tableName;
char *thisOrg = hOrganism(database);
char *otherOrg = NULL;
struct chain *chain = NULL, *subChain = NULL, *toFree = NULL;
int chainWinSize;
@@ -2740,9 +2747,9 @@
/* use first word of chain label (count on org name as first word) */
otherOrg = firstWordInLine(cloneString(tdb->shortLabel));
}
-chain = chainLoadIdRange(database, track, seqName, winStart, winEnd, atoi(item));
+chain = chainLoadIdRange(database, tdb->table, seqName, winStart, winEnd, atoi(item));
chainSubsetOnT(chain, winStart, winEnd, &subChain, &toFree);
if (subChain == NULL)
nullSubset = TRUE;
@@ -2827,9 +2834,9 @@
if (normScoreAvailable)
{
boolean hasBin;
char tableName[HDB_MAX_TABLE_STRING];
- hFindSplitTable(database, chain->tName, track, tableName, &hasBin);
+ hFindSplitTable(database, chain->tName, tdb->table, tableName, &hasBin);
char query[256];
struct sqlResult *sr;
char **row;
safef(query, ArraySize(query),
@@ -2853,9 +2860,9 @@
if (sqlDatabaseExists(otherDb) && chromSeqFileExists(otherDb, chain->qName))
{
if (chainWinSize < 1000000)
{
- hgcAnchorSomewhere("htcChainAli", item, track, chain->tName);
+ hgcAnchorSomewhere("htcChainAli", item, tdb->track, chain->tName);
printf("View details of parts of chain within browser "
"window</A>.<BR>\n");
}
else
@@ -2968,9 +2975,9 @@
{
/* use first word in short track label */
otherOrg = firstWordInLine(cloneString(tdb->shortLabel));
}
-hFindSplitTable(database, seqName, tdb->tableName, table, &rowOffset);
+hFindSplitTable(database, seqName, tdb->table, table, &rowOffset);
snprintf(query, sizeof(query),
"select * from %s where tName = '%s' and tStart <= %d and tEnd > %d "
"and level = %s",
table, seqName, start, start, item);
@@ -3099,9 +3106,9 @@
dupe = cloneString(tdb->type);
genericHeader(tdb, item);
wordCount = chopLine(dupe, words);
-hFindSplitTable(database, seqName, tdb->tableName, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d",
table, item, seqName, start);
sr = sqlGetResult(conn, query);
@@ -3210,9 +3217,9 @@
dupe = cloneString(tdb->type);
genericHeader(tdb, item);
wordCount = chopLine(dupe, words);
-hFindSplitTable(database, seqName, tdb->tableName, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d",
table, item, seqName, start);
sr = sqlGetResult(conn, query);
@@ -3323,9 +3330,9 @@
wordCount = chopLine(dupe, words);
printCustomUrl(tdb, item, FALSE);
/* printCustomUrl(tdb, itemForUrl, item == itemForUrl); */
-hFindSplitTable(database, seqName, tdb->tableName, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d",
table, item, seqName, start);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
@@ -3360,9 +3367,9 @@
boolean firstTime = TRUE;
int start = cartInt(cart, "o");
int bedSize = 5;
-hFindSplitTable(database, seqName, tdb->tableName, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
dyStringPrintf(query, "select * from %s where chrom = '%s' and ",
table, seqName);
hAddBinToQuery(winStart, winEnd, query);
dyStringPrintf(query, "name = '%s' and chromStart = %d", item, start);
@@ -3403,9 +3410,9 @@
int start = cartInt(cart, "o");
genericHeader(tdb, item);
-hFindSplitTable(database, seqName, tdb->tableName, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
dyStringPrintf(query, "select * from %s where chrom = '%s' and ",
table, seqName);
hAddBinToQuery(winStart, winEnd, query);
dyStringPrintf(query, "name = '%s' and chromStart = %d", item, start);
@@ -3433,9 +3440,9 @@
struct sqlResult *sr;
char query[256];
char **row;
genericHeader(tdb, item);
-safef(query, sizeof(query), "select chrom,chromStart,chromEnd,name,score,strand from %s where name='%s'", tdb->tableName, item);
+safef(query, sizeof(query), "select chrom,chromStart,chromEnd,name,score,strand from %s where name='%s'", tdb->table, item);
sr = sqlGetResult(conn, query);
if ((row = sqlNextRow(sr)) != NULL)
{
struct bed *itemBed = bedLoad6(row);
@@ -3618,13 +3625,13 @@
char *bigImagePath = trackDbSettingClosestToHome(tdb, ITEM_BIG_IMAGE_PATH);
char *bothWords[2];
int shouldBeTwo = chopLine(imagePath, bothWords);
if (shouldBeTwo != 2)
- errAbort("itemImagePath setting for %s track incorrect. Needs to be \"itemImagePath <path> <suffix>\".", tdb->tableName);
+ errAbort("itemImagePath setting for %s track incorrect. Needs to be \"itemImagePath <path> <suffix>\".", tdb->track);
printf("<BR><IMG SRC=\"%s/%s.%s\"><BR><BR>\n", bothWords[0], item, bothWords[1]);
shouldBeTwo = chopLine(bigImagePath, bothWords);
if (shouldBeTwo != 2)
- errAbort("bigItemImagePath setting for %s track incorrect. Needs to be \"itemImagePath <path> <suffix>\".", tdb->tableName);
+ errAbort("bigItemImagePath setting for %s track incorrect. Needs to be \"itemImagePath <path> <suffix>\".", tdb->track);
printf("<A HREF=\"%s/%s.%s\">Download Original Image</A><BR>\n", bothWords[0], item, bothWords[1]);
}
printTrackHtml(tdb);
@@ -3777,9 +3784,10 @@
for (ct=ctList; ct != NULL; ct=ct->next)
{
AllocVar(tdb);
- tdb->tableName = ct->tdb->tableName;
+ tdb->track = ct->tdb->track;
+ tdb->table = ct->tdb->table;
tdb->shortLabel = ct->tdb->shortLabel;
tdb->type = ct->tdb->type;
tdb->longLabel = ct->tdb->longLabel;
tdb->visibility = ct->tdb->visibility;
@@ -3809,9 +3817,9 @@
{
struct customTrack *ct;
for (ct=getCtList(); ct != NULL; ct=ct->next)
- if (sameString(name, ct->tdb->tableName))
+ if (sameString(name, ct->tdb->track))
return(ct);
return(NULL);
}
@@ -3867,9 +3875,10 @@
else
{
struct trackDb *tdb;
AllocVar(tdb);
- tdb->tableName = cloneString(USER_PSL_TRACK_NAME);
+ tdb->track = cloneString(USER_PSL_TRACK_NAME);
+ tdb->table = cloneString(USER_PSL_TRACK_NAME);
tdb->shortLabel = cloneString(USER_PSL_TRACK_LABEL);
tdb->type = cloneString("psl");
tdb->longLabel = cloneString(USER_PSL_TRACK_LONGLABEL);
tdb->visibility = tvFull;
@@ -3931,9 +3940,9 @@
struct trackDb *rtdb;
char *visString = cartOptionalString(cart, "rmsk");
for (rtdb = tdbList; rtdb != NULL; rtdb=rtdb->next)
{
- if (startsWith(rtdb->tableName, "rmsk"))
+ if (startsWith(rtdb->table, "rmsk"))
break;
}
printf("<P> <B>Note:</B> repeat masking style from previous page will <B>not</B> apply to this page.\n");
if ((rtdb != NULL) &&
@@ -3974,12 +3983,13 @@
printf("<TABLE BORDER=1>\n");
printf("<TR><TD>Track<BR>Name</TD><TD>Toggle<BR>Case</TD><TD>Under-<BR>line</TD><TD>Bold</TD><TD>Italic</TD><TD>Red</TD><TD>Green</TD><TD>Blue</TD></TR>\n");
for (tdb = tdbList; tdb != NULL; tdb = tdb->next)
{
- char *track = tdb->tableName;
- if (sameString(USER_PSL_TRACK_NAME, track) ||
+ char *table = tdb->table;
+ char *track = tdb->track;
+ if (sameString(USER_PSL_TRACK_NAME, table) ||
(lookupCt(track) != NULL) ||
- (fbUnderstandTrack(database, track) && !dnaIgnoreTrack(track)))
+ (fbUnderstandTrack(database, table) && !dnaIgnoreTrack(table)))
{
char *visString = cartUsualString(cart, track, hStringFromTv(tdb->visibility));
if (differentString(visString, "hide") && tdb->parent)
{
@@ -4010,34 +4020,34 @@
else
{
printf("<TR>");
printf("<TD>%s</TD>", tdb->shortLabel);
- sprintf(buf, "%s_case", tdb->tableName);
+ sprintf(buf, "%s_case", tdb->track);
printf("<TD>");
cgiMakeCheckBox(buf, cartUsualBoolean(cart, buf, FALSE));
printf("</TD>");
- sprintf(buf, "%s_u", tdb->tableName);
+ sprintf(buf, "%s_u", tdb->track);
printf("<TD>");
cgiMakeCheckBox(buf, cartUsualBoolean(cart, buf, FALSE));
printf("</TD>");
- sprintf(buf, "%s_b", tdb->tableName);
+ sprintf(buf, "%s_b", tdb->track);
printf("<TD>");
cgiMakeCheckBox(buf, cartUsualBoolean(cart, buf, FALSE));
printf("</TD>");
- sprintf(buf, "%s_i", tdb->tableName);
+ sprintf(buf, "%s_i", tdb->track);
printf("<TD>");
cgiMakeCheckBox(buf, cartUsualBoolean(cart, buf, FALSE));
printf("</TD>");
printf("<TD>");
- sprintf(buf, "%s_red", tdb->tableName);
+ sprintf(buf, "%s_red", tdb->track);
cgiMakeIntVar(buf, cartUsualInt(cart, buf, 0), 3);
printf("</TD>");
printf("<TD>");
- sprintf(buf, "%s_green", tdb->tableName);
+ sprintf(buf, "%s_green", tdb->track);
cgiMakeIntVar(buf, cartUsualInt(cart, buf, 0), 3);
printf("</TD>");
printf("<TD>");
- sprintf(buf, "%s_blue", tdb->tableName);
+ sprintf(buf, "%s_blue", tdb->track);
cgiMakeIntVar(buf, cartUsualInt(cart, buf, 0), 3);
printf("</TD>");
printf("</TR>\n");
}
@@ -4284,9 +4294,9 @@
{
struct hTableInfo *hti;
AllocVar(hti);
-hti->rootName = cloneString(ct->tdb->tableName);
+hti->rootName = cloneString(ct->tdb->table);
hti->isPos = TRUE;
hti->isSplit = FALSE;
hti->hasBin = FALSE;
hti->type = cloneString(ct->tdb->type);
@@ -4523,14 +4533,15 @@
AllocArray(colors, winSize);
for (tdb = tdbList; tdb != NULL; tdb = tdb->next)
{
- char *track = tdb->tableName;
+ char *track = tdb->track;
+ char *table = tdb->table;
struct featureBits *fbList = NULL, *fb;
struct customTrack *ct = lookupCt(track);
- if (sameString(USER_PSL_TRACK_NAME, track) ||
+ if (sameString(USER_PSL_TRACK_NAME, table) ||
(ct != NULL) ||
- (fbUnderstandTrack(database, track) && !dnaIgnoreTrack(track)))
+ (fbUnderstandTrack(database, table) && !dnaIgnoreTrack(table)))
{
char buf[256];
int r,g,b;
/* to save a LOT of time, don't fetch track features unless some
@@ -4610,9 +4621,9 @@
if (!ct->bedList)
bedFreeList(&ctBedList);
}
else
- fbList = fbGetRange(database, track, seqName, winStart, winEnd);
+ fbList = fbGetRange(database, tdb->table, seqName, winStart, winEnd);
/* Flip underline/italic/bold bits. */
getDnaHandleBits(track, "u", uBits, winStart, winEnd, isRc, fbList);
getDnaHandleBits(track, "b", bBits, winStart, winEnd, isRc, fbList);
@@ -5108,9 +5119,9 @@
}
if (hGenBankHaveSeq(database, acc, NULL))
{
printf("<B>%s sequence:</B> ", type);
- hgcAnchorSomewhere("htcDisplayMrna", acc, tdb->tableName, seqName);
+ hgcAnchorSomewhere("htcDisplayMrna", acc, tdb->track, seqName);
printf("%s</A><BR>\n", acc);
}
}
else
@@ -5262,36 +5273,33 @@
void doHgRna(struct trackDb *tdb, char *acc)
/* Click on an individual RNA. */
{
-char *track = tdb->tableName;
+char *track = tdb->track;
+char *table = tdb->table;
struct sqlConnection *conn = hAllocConn(database);
char *type;
-char *table;
int start = cartInt(cart, "o");
struct psl *pslList = NULL;
if (sameString("xenoMrna", track) || sameString("xenoBestMrna", track) || sameString("xenoEst", track) || sameString("sim4", track) )
{
char temp[256];
sprintf(temp, "non-%s RNA", organism);
type = temp;
- table = track;
}
else if ( sameWord("blatzHg17KG", track) )
{
type = "Human mRNA";
- table = track;
}
else if (stringIn("estFiltered",track))
{
type = "EST";
- table = track;
}
else if (stringIn("est", track) || stringIn("Est", track))
{
type = "EST";
- table = "all_est";
+ // table = "all_est"; // Should fall out of wash now
}
else if (startsWith("psu", track))
{
type = "Pseudo & Real Genes";
@@ -5299,14 +5307,12 @@
}
else if (sameWord("xenoBlastzMrna", track) )
{
type = "Blastz to foreign mRNA";
- table = "xenoBlastzMrna";
}
else if (startsWith("mrnaBlastz",track ))
{
type = "mRNA";
- table = track;
}
else if (startsWith("pseudoMrna",track) || startsWith("pseudoGeneLink",track))
{
type = "mRNA";
@@ -5314,19 +5320,17 @@
}
else if (startsWith("celeraMrna",track))
{
type = "mRNA";
- table = "celeraMrna";
}
else if (startsWith("all_mrnaFiltered",track))
{
type = "mRNA";
- table = track;
}
else
{
type = "mRNA";
- table = "all_mrna";
+ // table = "all_mrna"; // should fall out of wash now
}
/* Print non-sequence info. */
cartWebStart(cart, database, "%s", acc);
@@ -5345,22 +5349,22 @@
return;
}
htmlHorizontalLine();
printf("<H3>%s/Genomic Alignments</H3>", type);
-if (startsWith("mrnaBlastz",tdb->tableName))
+if (startsWith("mrnaBlastz",tdb->table))
slSort(&pslList, pslCmpScoreDesc);
-printAlignments(pslList, start, "htcCdnaAli", table, acc);
+printAlignments(pslList, start, "htcCdnaAli", track, acc);
printTrackHtml(tdb);
hFreeConn(&conn);
}
void printPslFormat(struct sqlConnection *conn, struct trackDb *tdb, char *item, int start, char *subType)
/* Handles click in affyU95 or affyU133 tracks */
{
-struct psl* pslList = getAlignments(conn, tdb->tableName, item);
-struct psl* psl;
+struct psl *pslList = getAlignments(conn, tdb->table, item);
+struct psl *psl;
char *face = "Times"; /* specifies font face to use */
char *fsize = "+1"; /* specifies font size */
/* check if there is an alignment available for this sequence. This checks
@@ -5368,9 +5372,9 @@
* set it up so they can click through to the alignment. */
if (hGenBankHaveSeq(database, item, NULL))
{
printf("<H3>%s/Genomic Alignments</H3>", item);
- printAlignments(pslList, start, "htcCdnaAli", tdb->tableName, item);
+ printAlignments(pslList, start, "htcCdnaAli", tdb->track, item);
}
else
{
/* print out the psls */
@@ -5408,9 +5412,9 @@
wordCount = chopLine(dupe, words);
printCustomUrl(tdb, itemForUrl, item == itemForUrl);
/* If this is the affyZebrafish track, check for human ortholog information */
-if (sameString("affyZebrafish", tdb->tableName))
+if (sameString("affyZebrafish", tdb->table))
{
if (orthoTable != NULL && hTableExists(database, orthoTable))
{
safef(query, sizeof(query), "select geneSymbol, description from %s where name = '%s' ", orthoTable, item);
@@ -5569,9 +5573,9 @@
genericHeader(tdb, item);
wordCount = chopLine(dupe, words);
printCustomUrl(tdb, itemForUrl, item == itemForUrl);
-safef(query, sizeof(query), "select tName, tEnd, strand from %s where qName='%s' and tStart=%d;", tdb->tableName, item, start);
+safef(query, sizeof(query), "select tName, tEnd, strand from %s where qName='%s' and tStart=%d;", tdb->table, item, start);
sr = sqlMustGetResult(conn, query);
row = sqlNextRow(sr);
@@ -5855,9 +5859,8 @@
void doHgGold(struct trackDb *tdb, char *fragName)
/* Click on a fragment of golden path. */
{
-char *track = tdb->tableName;
struct sqlConnection *conn = hAllocConn(database);
struct sqlConnection *conn2 = hAllocConn(database);
struct sqlConnection *conn3 = hAllocConn(database);
char query[256];
@@ -5881,9 +5884,9 @@
char *tmpString;
int first;
cartWebStart(cart, database, "%s", fragName);
-hFindSplitTable(database, seqName, track, splitTable, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, splitTable, &hasBin);
sprintf(query, "select * from %s where frag = '%s' and chromStart = %d",
splitTable, fragName, start);
sr = sqlMustGetResult(conn, query);
row = sqlNextRow(sr);
@@ -6003,9 +6006,8 @@
void doHgGap(struct trackDb *tdb, char *gapType)
/* Print a teeny bit of info about a gap. */
{
-char *track = tdb->tableName;
struct sqlConnection *conn = hAllocConn(database);
char query[256];
struct sqlResult *sr;
char **row;
@@ -6014,10 +6016,10 @@
boolean hasBin;
char splitTable[64];
cartWebStart(cart, database, "Gap in Sequence");
-hFindSplitTable(database, seqName, track, splitTable, &hasBin);
-if (sameString(track, splitTable))
+hFindSplitTable(database, seqName, tdb->table, splitTable, &hasBin);
+if (sameString(tdb->table, splitTable))
safef(query, sizeof(query), "select * from %s where chrom = '%s' and "
"chromStart = %d",
splitTable, seqName, start);
else
@@ -6057,9 +6059,8 @@
void doHgContig(struct trackDb *tdb, char *ctgName)
/* Click on a contig. */
{
-char *track = tdb->tableName;
struct sqlConnection *conn = hAllocConn(database);
struct sqlConnection *conn2 = hAllocConn(database);
char query[256], query2[256];
struct sqlResult *sr, *sr2;
@@ -6079,12 +6080,12 @@
printf("<B>Name:</B> <A HREF=\"%s\" TARGET=_blank>%s</A><BR>\n",
query, ctgName);
freeMem(ncbiTerm);
safef(query, sizeof(query), "select * from %s where contig = '%s'",
- track, ctgName);
-selectOneRow(conn, track, query, &sr, &row);
+ tdb->table, ctgName);
+selectOneRow(conn, tdb->table, query, &sr, &row);
-if (sameString("ctgPos2", track))
+if (sameString("ctgPos2", tdb->table))
{
ctg2 = ctgPos2Load(row);
printf("<B>Type:</B> %s<BR>\n", ctg2->type);
ctg = (struct ctgPos*)ctg2;
@@ -6144,19 +6145,18 @@
void doHgCover(struct trackDb *tdb, char *cloneName)
/* Respond to click on clone. */
{
-char *track = tdb->tableName;
struct sqlConnection *conn = hAllocConn(database);
char query[256];
struct sqlResult *sr;
char **row;
struct clonePos *clone;
int fragCount;
cartWebStart(cart, database, "%s", cloneName);
-sprintf(query, "select * from %s where name = '%s'", track, cloneName);
-selectOneRow(conn, track, query, &sr, &row);
+sprintf(query, "select * from %s where name = '%s'", tdb->table, cloneName);
+selectOneRow(conn, tdb->table, query, &sr, &row);
clone = clonePosLoad(row);
sqlFreeResult(&sr);
sprintf(query,
@@ -6194,17 +6194,16 @@
struct bactigPos *bactig;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
-char *track = tdb->tableName;
char query[256];
char goldTable[16];
char ctgStartStr[16];
int ctgStart;
genericHeader(tdb, bactigName);
-sprintf(query, "select * from %s where name = '%s'", track, bactigName);
-selectOneRow(conn, track, query, &sr, &row);
+sprintf(query, "select * from %s where name = '%s'", tdb->table, bactigName);
+selectOneRow(conn, tdb->table, query, &sr, &row);
bactig = bactigPosLoad(row);
sqlFreeResult(&sr);
printf("<B>Name:</B> %s<BR>\n", bactigName);
@@ -7017,9 +7016,8 @@
void doHgRepeat(struct trackDb *tdb, char *repeat)
/* Do click on a repeat track. */
{
-char *track = tdb->tableName;
int offset = cartInt(cart, "o");
cartWebStart(cart, database, "Repeat");
if (offset >= 0)
{
@@ -7032,13 +7030,13 @@
char table[64];
boolean hasBin;
int start = cartInt(cart, "o");
- hFindSplitTable(database, seqName, track, table, &hasBin);
+ hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
sprintf(query, "select * from %s where repName = '%s' and genoName = '%s' and genoStart = %d",
table, repeat, seqName, start);
sr = sqlGetResult(conn, query);
- if (sameString(track,"rmskNew"))
+ if (sameString(tdb->table,"rmskNew"))
printf("<H3>CENSOR Information</H3>\n");
else
printf("<H3>RepeatMasker Information</H3>\n");
while ((row = sqlNextRow(sr)) != NULL)
@@ -7078,9 +7076,8 @@
void doHgIsochore(struct trackDb *tdb, char *item)
/* do click on isochore track. */
{
-char *track = tdb->tableName;
cartWebStart(cart, database, "Isochore Info");
printf("<H2>Isochore Information</H2>\n");
if (cgiVarExists("o"))
{
@@ -7090,9 +7087,9 @@
char **row;
char query[256];
int start = cartInt(cart, "o");
sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d",
- track, item, seqName, start);
+ tdb->table, item, seqName, start);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
{
iso = isochoresLoad(row);
@@ -7112,9 +7109,8 @@
void doSimpleRepeat(struct trackDb *tdb, char *item)
/* Print info on simple repeat. */
{
-char *track = tdb->tableName;
cartWebStart(cart, database, "Simple Repeat Info");
printf("<H2>Simple Tandem Repeat Information</H2>\n");
if (cgiVarExists("o"))
{
@@ -7123,11 +7119,11 @@
struct sqlResult *sr;
char **row;
char query[256];
int start = cartInt(cart, "o");
- int rowOffset = hOffsetPastBin(database, seqName, track);
+ int rowOffset = hOffsetPastBin(database, seqName, tdb->table);
sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d",
- track, item, seqName, start);
+ tdb->table, item, seqName, start);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
{
rep = simpleRepeatLoad(row+rowOffset);
@@ -7214,9 +7210,9 @@
void doCpgIsland(struct trackDb *tdb, char *item)
/* Print info on CpG Island. */
{
-char *table = tdb->tableName;
+char *table = tdb->table;
boolean isExt = hHasField(database, table, "obsExp");
cartWebStart(cart, database, "CpG Island Info");
printf("<H2>CpG Island Info</H2>\n");
if (cgiVarExists("o"))
@@ -7304,17 +7300,16 @@
void doIlluminaProbes(struct trackDb *tdb, char *item)
/* The details page of the Illumina Probes track. */
{
-char *track = tdb->tableName;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
-int rowOffset = hOffsetPastBin(database, seqName, track);
+int rowOffset = hOffsetPastBin(database, seqName, tdb->table);
char query[256];
int start = cartInt(cart, "o");
genericHeader(tdb, item);
-safef(query, sizeof(query), "select * from %s where name = '%s' and chromStart = '%d'", track, item, start);
+safef(query, sizeof(query), "select * from %s where name = '%s' and chromStart = '%d'", tdb->table, item, start);
sr = sqlGetResult(conn, query);
if ((row = sqlNextRow(sr)) != NULL)
{
struct bed *bed = bedLoad12(row+rowOffset);
@@ -7343,16 +7338,15 @@
void doSwitchDbTss(struct trackDb *tdb, char *item)
/* Print SwitchDB TSS details. */
{
-char *track = tdb->tableName;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
-int rowOffset = hOffsetPastBin(database, seqName, track);
+int rowOffset = hOffsetPastBin(database, seqName, tdb->table);
char query[256];
genericHeader(tdb, item);
-safef(query, sizeof(query), "select * from %s where name = '%s'", track, item);
+safef(query, sizeof(query), "select * from %s where name = '%s'", tdb->table, item);
sr = sqlGetResult(conn, query);
if ((row = sqlNextRow(sr)) != NULL)
{
struct switchDbTss tss;
@@ -7487,13 +7481,13 @@
char *prot = NULL;
hgcStart("Protein Translation from Genome");
safef(where, sizeof(where), "name = \"%s\"", geneName);
-gp = genePredReaderLoadQuery(conn, tdb->tableName, where);
+gp = genePredReaderLoadQuery(conn, tdb->table, where);
hFreeConn(&conn);
if (gp == NULL)
errAbort("%s not found in %s when translating to protein",
- geneName, tdb->tableName);
+ geneName, tdb->table);
else if (gp->cdsStart == gp->cdsEnd)
errAbort("No CDS defined: no protein translation for %s", geneName);
prot = getPredMRnaProtSeq(gp);
safef(protName, sizeof(protName), "%s_prot", geneName);
@@ -7834,19 +7828,18 @@
* alignment. */
{
int start = cartInt(cart, "o");
int total = 0, i = 0;
-char *track = tdb->tableName;
struct psl *pslList = NULL;
struct sqlConnection *conn = hAllocConn(database);
genericHeader(tdb, item);
printCustomUrl(tdb, item, TRUE);
puts("<P>");
puts("<B>Alignment Summary:</B><BR>\n");
-pslList = getAlignments(conn, track, item);
-printAlignments(pslList, start, "htcCdnaAli", track, item);
+pslList = getAlignments(conn, tdb->table, item);
+printAlignments(pslList, start, "htcCdnaAli", tdb->track, item);
puts("<P>");
total = 0;
for (i=0; i < pslList -> blockCount; i++)
@@ -8068,17 +8061,17 @@
char dbUrl[256];
char geneType[256];
char gtpTable[256];
-if (startsWith("ens", tdb->tableName))
+if (startsWith("ens", tdb->table))
{
isEnsembl = TRUE;
safef(geneType, sizeof(geneType), "Ensembl");
safef(gtpTable, sizeof(gtpTable), "ensGtp");
if (hTableExists(database, gtpTable))
hasEnsGtp = TRUE;
}
-else if (startsWith("vega", tdb->tableName))
+else if (startsWith("vega", tdb->table))
{
isVega = TRUE;
safef(geneType, sizeof(geneType), "Vega");
safef(gtpTable, sizeof(gtpTable), "vegaGtp");
@@ -8117,9 +8110,9 @@
boolean nonCoding = FALSE;
char query[512];
safef(query, sizeof(query), "name = \"%s\"", itemName);
-struct genePred *gpList = genePredReaderLoadQuery(conn, tdb->tableName, query);
+struct genePred *gpList = genePredReaderLoadQuery(conn, tdb->table, query);
if (gpList && (gpList->cdsStart == gpList->cdsEnd))
nonCoding = TRUE;
genePredFreeList(&gpList);
/* get gene and protein IDs */
@@ -8218,16 +8211,16 @@
sprintf(condStr, "name='%s'", item);
/* if this is a non-coding gene track, then print the biotype and
the external ID */
-if (sameWord(tdb->tableName, "ensGeneNonCoding"))
+if (sameWord(tdb->table, "ensGeneNonCoding"))
{
struct sqlConnection *conn2 = hAllocConn(database);
char query[256];
struct sqlResult *sr = NULL;
char **row;
safef(query, sizeof(query), "select biotype, extGeneId from %s where %s",
- tdb->tableName, condStr);
+ tdb->table, condStr);
sr = sqlGetResult(conn, query);
if ((row = sqlNextRow(sr)) != NULL)
{
printf("<B>Gene Type:</B> %s<BR>\n", row[0]);
@@ -8269,9 +8262,9 @@
}
/* skip the rest if this gene is not in ensGene */
sprintf(condStr, "name='%s'", item);
-if (sqlGetField(database, tdb->tableName, "name", condStr) != NULL)
+if (sqlGetField(database, tdb->table, "name", condStr) != NULL)
{
if (wordCount > 0)
{
type = words[0];
@@ -8510,9 +8503,9 @@
struct sqlResult *sr;
char **row;
char *otherDb = trackDbSetting(tdb, "otherDb");
char *qtlOrg;
-if (sameString(tdb->tableName, "rgdQtl"))
+if (sameString(tdb->table, "rgdQtl"))
qtlOrg = organism;
else if (isNotEmpty(otherDb))
qtlOrg = hOrganism(otherDb);
else
@@ -8521,9 +8514,9 @@
genericHeader(tdb, item);
printf("<B>%s QTL %s: ", qtlOrg, item);
safef(query, sizeof(query),
"select description from %sLink where name='%s';",
- tdb->tableName, item);
+ tdb->table, item);
sr = sqlMustGetResult(conn, query);
if ((row = sqlNextRow(sr)) != NULL)
printf("%s", row[0]);
sqlFreeResult(&sr);
@@ -8532,9 +8525,9 @@
if (isNotEmpty(tdb->url))
{
boolean gotId = FALSE;
safef(query, sizeof(query), "select id from %sLink where name='%s';",
- tdb->tableName, item);
+ tdb->table, item);
sr = sqlMustGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
{
char *qtlId = row[0];
@@ -8552,9 +8545,9 @@
struct bed *selectedPos=NULL, *otherPosList=NULL, *bed=NULL;
safef(query, sizeof(query),
"select chrom, chromStart, chromEnd from %s where name='%s' "
"order by (chromEnd-chromStart);",
- tdb->tableName, item);
+ tdb->table, item);
sr = sqlMustGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
{
bed = bedLoad3(row);
@@ -9089,9 +9082,9 @@
/* Put up VAX 004 info. */
{
char *id;
struct sqlConnection *conn = hAllocConn(database);
-char *aliTbl = tdb->tableName;
+char *aliTbl = tdb->table;
int start = cartInt(cart, "o");
char cond_str[255], *subjId;
genericHeader(tdb, item);
@@ -9110,9 +9103,9 @@
/* print alignments that track was based on */
struct psl *pslList = getAlignments(conn, aliTbl, item);
printf("<H3>Genomic Alignments</H3>");
-printAlignments(pslList, start, "htcCdnaAli", aliTbl, item);
+printAlignments(pslList, start, "htcCdnaAli", tdb->track, item);
hFreeConn(&conn);
printTrackHtml(tdb);
}
@@ -9121,9 +9115,9 @@
{
char *url = tdb->url;
char *id;
struct sqlConnection *conn = hAllocConn(database);
-char *aliTbl = tdb->tableName;
+char *aliTbl = tdb->table;
int start = cartInt(cart, "o");
genericHeader(tdb, item);
@@ -9135,9 +9129,9 @@
/* print alignments that track was based on */
struct psl *pslList = getAlignments(conn, aliTbl, item);
printf("<H3>Genomic Alignments</H3>");
-printAlignments(pslList, start, "htcCdnaAli", aliTbl, item);
+printAlignments(pslList, start, "htcCdnaAli", tdb->track, item);
hFreeConn(&conn);
printTrackHtml(tdb);
}
@@ -9183,9 +9177,8 @@
void doRgdGene(struct trackDb *tdb, char *rnaName)
/* Process click on a RGD gene. */
{
-char *track = tdb->tableName;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
char query[256];
@@ -9256,9 +9249,9 @@
htmlHorizontalLine();
/* print alignments that track was based on */
{
-char *aliTbl = (sameString(track, "rgdGene") ? "refSeqAli" : "xenoRGDAli");
+char *aliTbl = (sameString(tdb->table, "rgdGene") ? "refSeqAli" : "xenoRGDAli");
struct psl *pslList = getAlignments(conn, aliTbl, rl->mrnaAcc);
printf("<H3>mRNA/Genomic Alignments</H3>");
printAlignments(pslList, start, "htcCdnaAli", aliTbl, rl->mrnaAcc);
}
@@ -9702,9 +9695,9 @@
char **row;
char query[256];
char *sqlRnaName = rnaName;
char *summary = NULL;
-boolean isXeno = sameString(tdb->tableName, "xenoRefGene");
+boolean isXeno = sameString(tdb->table, "xenoRefGene");
struct refLink *rl;
int start = cartInt(cart, "o");
int left = cartInt(cart, "l");
int right = cartInt(cart, "r");
@@ -9732,9 +9725,9 @@
prRefGeneInfo(conn, rnaName, sqlRnaName, rl, isXeno);
addGeneExtra(rl->name); /* adds columns if extra info is available */
if (genbankIsRefSeqCodingMRnaAcc(rnaName))
- addPalLink(conn, tdb->tableName, chrom, left, right, rnaName);
+ addPalLink(conn, tdb->track, chrom, left, right, rnaName);
printf("</tr>\n</table>\n");
/* optional summary text */
@@ -9749,9 +9742,9 @@
htmlHorizontalLine();
/* print alignments that track was based on */
{
-char *aliTbl = (sameString(tdb->tableName, "refGene") ? "refSeqAli" : "xenoRefSeqAli");
+char *aliTbl = (sameString(tdb->table, "refGene") ? "refSeqAli" : "xenoRefSeqAli");
struct psl *pslList = getAlignments(conn, aliTbl, rl->mrnaAcc);
printf("<H3>mRNA/Genomic Alignments</H3>");
printAlignments(pslList, start, "htcCdnaAli", aliTbl, rl->mrnaAcc);
}
@@ -10121,9 +10114,9 @@
else
{
/* display mrna */
printf("<LI><B>mRna:</B> %s \n", pg->name);
- linkToOtherBrowserExtra(database, pg->gChrom, pg->gStart, pg->gEnd, "all_mrna=pack");
+ linkToOtherBrowserExtra(database, pg->gChrom, pg->gStart, pg->gEnd, "mrna=pack");
printf("%s:%d-%d \n", pg->gChrom, pg->gStart, pg->gEnd);
printf("</A></LI>");
}
if (!sameString(pg->mgc,"noMgc"))
@@ -10187,9 +10180,9 @@
#endif /* NOT_USED */
if (pslList != NULL)
{
- printAlignments(pslList, pslList->tStart, "htcCdnaAli", "all_mrna", \
+ printAlignments(pslList, pslList->tStart, "htcCdnaAli", "mrna", \
pg->name);
htmlHorizontalLine();
safef(chainTable_chrom,sizeof(chainTable_chrom), "%s_chainSelf",\
pg->chrom);
@@ -10259,9 +10252,9 @@
void doPseudoPsl(struct trackDb *tdb, char *acc)
/* Click on an pseudogene based on mrna alignment. */
{
-char *track = tdb->tableName;
+char *tableName = tdb->table;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr = NULL;
char **row;
char where[256];
@@ -10283,9 +10276,9 @@
alignTable = cloneString("pseudoMrna");
if (startsWith("pseudoUcsc",alignTable))
{
alignTable = cloneString("pseudoMrna");
- track = cloneString("pseudoGeneLink3");
+ tableName = cloneString("pseudoGeneLink3");
}
if (hTableExists(database, alignTable) )
{
pslList = loadPslRangeT(alignTable, acc, chrom, winStart, winEnd);
@@ -10300,9 +10293,9 @@
cartWebStart(cart, database, "%s", acc);
safef(where, sizeof(where), "name = '%s'", acc);
-sr = hRangeQuery(conn, track, chrom, start, end, where, &rowOffset);
+sr = hRangeQuery(conn, tableName, chrom, start, end, where, &rowOffset);
while ((row = sqlNextRow(sr)) != NULL)
{
pg = pseudoGeneLinkLoad(row+rowOffset);
if (pg != NULL)
@@ -10347,12 +10340,12 @@
headerItem = cloneString(geneName);
genericHeader(tdb, headerItem);
printCustomUrl(tdb, geneName, FALSE);
-if ((sameString(tdb->tableName, "encodePseudogeneConsensus")) ||
- (sameString(tdb->tableName, "encodePseudogeneYale")))
+if ((sameString(tdb->table, "encodePseudogeneConsensus")) ||
+ (sameString(tdb->table, "encodePseudogeneYale")))
{
- safef(query, sizeof(query), "select name2 from %s where name = '%s'", tdb->tableName, geneName);
+ safef(query, sizeof(query), "select name2 from %s where name = '%s'", tdb->table, geneName);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
{
name2 = cloneString(row[0]);
@@ -10453,9 +10446,8 @@
}
void doTrnaGenesGb(struct trackDb *tdb, char *trnaName)
{
-char *track = tdb->tableName;
struct tRNAs *trna;
char query[512];
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
@@ -10470,12 +10462,12 @@
genericHeader(tdb,trnaName);
dupe = cloneString(tdb->type);
wordCount = chopLine(dupe, words);
-rowOffset = hOffsetPastBin(database, seqName, track);
+rowOffset = hOffsetPastBin(database, seqName, tdb->table);
safef(query, ArraySize(query),
"select * from %s where name = '%s' and chromStart=%d and chromEnd=%d",
-track, trnaName, start, end);
+tdb->table, trnaName, start, end);
sr = sqlGetResult(conn, query);
/* use TABLE to align image with other info side by side */
@@ -10708,9 +10700,9 @@
/* Show Berkeley Drosophila Genome Project gene info. */
{
struct bdgpGeneInfo *bgi = NULL;
struct flyBaseSwissProt *fbsp = NULL;
-char *geneTable = tdb->tableName;
+char *geneTable = tdb->table;
char *truncName = cloneString(geneName);
char *ptr = strchr(truncName, '-');
char infoTable[128];
char pepTable[128];
@@ -10818,15 +10810,15 @@
puts("</LI>\n");
}
puts("<LI>\n");
-hgcAnchorSomewhere("htcGeneMrna", geneName, geneTable, seqName);
+hgcAnchorSomewhere("htcGeneMrna", geneName, tdb->track, seqName);
printf("%s</A> may be different from the genomic sequence.\n",
"Predicted mRNA");
puts("</LI>\n");
puts("<LI>\n");
-hgcAnchorSomewhere("htcGeneInGenome", geneName, geneTable, seqName);
+hgcAnchorSomewhere("htcGeneInGenome", geneName, tdb->track, seqName);
printf("Genomic Sequence</A> from assembly\n");
puts("</LI>\n");
printf("</UL>\n");
printTrackHtml(tdb);
@@ -10863,9 +10855,9 @@
if (n < 3)
n = 3;
if (n > maxN)
n = maxN;
-hFindSplitTable(database, seqName, tdb->tableName, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
safef(query, sizeof(query),
"select * from %s where chrom = '%s' and chromStart = %d "
"and name = '%s'",
table, seqName, start, name);
@@ -10965,9 +10957,8 @@
printCustomUrl(tdb, geneName, FALSE);
if (startsWith("genePred", tdb->type))
{
- char *geneTable = tdb->tableName;
char *pepTable = pepTableFromType(tdb->type);
showGenePos(geneName, tdb);
printf("<H3>Links to sequence:</H3>\n");
printf("<UL>\n");
@@ -10979,18 +10970,19 @@
seqName);
printf("Predicted Protein</A> \n");
puts("</LI>\n");
}
- else { uglyf("Doh, no go for %s from %s<BR>\n", geneName, pepTable); }
+ else
+ errAbort("Doh, no go for %s from %s<BR>\n", geneName, pepTable);
puts("<LI>\n");
- hgcAnchorSomewhere("htcGeneMrna", geneName, geneTable, seqName);
+ hgcAnchorSomewhere("htcGeneMrna", geneName, tdb->track, seqName);
printf("%s</A> may be different from the genomic sequence.\n",
"Predicted mRNA");
puts("</LI>\n");
puts("<LI>\n");
- hgcAnchorSomewhere("htcGeneInGenome", geneName, geneTable, seqName);
+ hgcAnchorSomewhere("htcGeneInGenome", geneName, tdb->track, seqName);
printf("Genomic Sequence</A> from assembly\n");
puts("</LI>\n");
printf("</UL>\n");
}
@@ -11007,9 +10999,9 @@
void doBGIGene(struct trackDb *tdb, char *geneName)
/* Show Beijing Genomics Institute gene annotation info. */
{
struct bgiGeneInfo *bgi = NULL;
-char *geneTable = tdb->tableName;
+char *geneTable = tdb->table;
char infoTable[128];
char pepTable[128];
char query[512];
@@ -11135,15 +11127,15 @@
puts("</LI>\n");
}
puts("<LI>\n");
-hgcAnchorSomewhere("htcGeneMrna", geneName, geneTable, seqName);
+hgcAnchorSomewhere("htcGeneMrna", geneName, tdb->track, seqName);
printf("%s</A> may be different from the genomic sequence.\n",
"Predicted mRNA");
puts("</LI>\n");
puts("<LI>\n");
-hgcAnchorSomewhere("htcGeneInGenome", geneName, geneTable, seqName);
+hgcAnchorSomewhere("htcGeneInGenome", geneName, tdb->track, seqName);
printf("Genomic Sequence</A> from assembly\n");
puts("</LI>\n");
printf("</UL>\n");
printTrackHtml(tdb);
@@ -11152,9 +11144,9 @@
void doBGISnp(struct trackDb *tdb, char *itemName)
/* Put up info on a Beijing Genomics Institute SNP. */
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct bgiSnp snp;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
@@ -11247,9 +11239,8 @@
void doGenomicDups(struct trackDb *tdb, char *dupName)
/* Handle click on genomic dup track. */
{
-char *track = tdb->tableName;
struct genomicDups dup;
char query[512];
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
@@ -11261,14 +11252,14 @@
printf("<H2>Genomic Duplication Region</H2>\n");
if (cgiVarExists("o"))
{
int start = cartInt(cart, "o");
- int rowOffset = hOffsetPastBin(database, seqName, track);
+ int rowOffset = hOffsetPastBin(database, seqName, tdb->table);
parseChromPointPos(dupName, oChrom, &oStart);
sprintf(query, "select * from %s where chrom = '%s' and chromStart = %d "
"and otherChrom = '%s' and otherStart = %d",
- track, seqName, start, oChrom, oStart);
+ tdb->table, seqName, start, oChrom, oStart);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)))
{
genomicDupsStaticLoad(row+rowOffset, &dup);
@@ -11310,9 +11301,8 @@
void doBlatMouse(struct trackDb *tdb, char *itemName)
/* Handle click on blatMouse track. */
{
-char *track = tdb->tableName;
char query[256];
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr = NULL;
char **row;
@@ -11372,9 +11362,9 @@
}
/* Get alignment info and print. */
printf("<H2>Alignments</H2>\n");
-hFindSplitTable(database, seqName, track, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
sprintf(query, "select * from %s where qName = '%s'", table, itemName);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
{
@@ -11382,9 +11372,9 @@
slAddHead(&pslList, psl);
}
sqlFreeResult(&sr);
slReverse(&pslList);
-printAlignments(pslList, start, "htcBlatXeno", track, itemName);
+printAlignments(pslList, start, "htcBlatXeno", tdb->track, itemName);
printTrackHtml(tdb);
}
boolean parseRange(char *range, char **retSeq, int *retStart, int *retEnd)
@@ -11508,9 +11498,9 @@
char *cgiItem = cgiEncode(item);
char *thisOrg = hOrganism(database);
cartWebStart(cart, database, "%s", tdb->longLabel);
-psl = loadPslFromRangePair(tdb->tableName, item);
+psl = loadPslFromRangePair(tdb->table, item);
printf("<B>%s position:</B> <a target=\"_blank\" href=\"%s?db=%s&position=%s%%3A%d-%d\">%s:%d-%d</a><BR>\n",
otherOrg, hgTracksName(), otherDb, psl->qName, psl->qStart+1, psl->qEnd,
psl->qName, psl->qStart+1, psl->qEnd);
printf("<B>%s size:</B> %d<BR>\n", otherOrg, psl->qEnd - psl->qStart);
@@ -11524,9 +11514,9 @@
printf("<B>Strand:</B> %s<BR>\n",psl->strand);
printf("<B>Browser window position:</B> %s:%d-%d<BR>\n", seqName, winStart+1, winEnd);
printf("<B>Browser window size:</B> %d<BR>\n", winEnd - winStart);
sprintf(otherString, "%d&pslTable=%s&otherOrg=%s&otherChromTable=%s&otherDb=%s", psl->tStart,
- tdb->tableName, otherOrg, otherChromTable, otherDb);
+ tdb->table, otherOrg, otherChromTable, otherDb);
/* joni */
if (pslTrimToTargetRange(psl, winStart, winEnd) != NULL)
{
hgcAnchorSomewhere("htcLongXenoPsl2", cgiItem, otherString, psl->tName);
@@ -11553,9 +11543,9 @@
char *cgiItem = cgiEncode(item);
char *thisOrg = hOrganism(database);
cartWebStart(cart, database, "%s", tdb->longLabel);
-psl = loadPslFromRangePair(tdb->tableName, item);
+psl = loadPslFromRangePair(tdb->table, item);
printf("<B>%s position:</B> %s:%d-%d<BR>\n", otherOrg,
psl->qName, psl->qStart+1, psl->qEnd);
printf("<B>%s size:</B> %d<BR>\n", otherOrg, psl->qEnd - psl->qStart);
printf("<B>%s position:</B> %s:%d-%d<BR>\n", thisOrg,
@@ -11568,9 +11558,9 @@
printf("<B>Strand:</B> %s<BR>\n",psl->strand);
printf("<B>Browser window position:</B> %s:%d-%d<BR>\n", seqName, winStart+1, winEnd);
printf("<B>Browser window size:</B> %d<BR>\n", winEnd - winStart);
sprintf(otherString, "%d&pslTable=%s&otherOrg=%s&otherChromTable=%s&otherDb=%s", psl->tStart,
- tdb->tableName, otherOrg, otherChromTable, otherDb);
+ tdb->table, otherOrg, otherChromTable, otherDb);
printCustomUrl(tdb, item, TRUE);
printTrackHtml(tdb);
freez(&cgiItem);
@@ -11587,9 +11577,9 @@
char *cgiItem = cgiEncode(item);
char *thisOrg = hOrganism(database);
cartWebStart(cart, database, "%s", tdb->longLabel);
-psl = loadPslFromRangePair(tdb->tableName, item);
+psl = loadPslFromRangePair(tdb->table, item);
printf("<B>%s position:</B> %s:%d-%d<BR>\n", otherOrg,
psl->qName, psl->qStart+1, psl->qEnd);
printf("<B>%s size:</B> %d<BR>\n", otherOrg, psl->qEnd - psl->qStart);
printf("<B>%s position:</B> %s:%d-%d<BR>\n", thisOrg,
@@ -11608,9 +11598,9 @@
printf("Link to <a href=\"http://hgwdev-tcbruen.cse.ucsc.edu/cgi-bin/hgTracks?db=zoo%s1&position=chr1:%d-%d\">%s database</a><BR>\n",
anotherString, psl->qStart, psl->qEnd, otherOrg);
sprintf(otherString, "%d&pslTable=%s&otherOrg=%s&otherChromTable=%s", psl->tStart,
- tdb->tableName, otherOrg, otherChromTable);
+ tdb->table, otherOrg, otherChromTable);
if (pslTrimToTargetRange(psl, winStart, winEnd) != NULL)
{
hgcAnchorSomewhere("htcLongXenoPsl2", cgiItem, otherString, psl->tName);
printf("<BR>View details of parts of alignment within browser window</A>.<BR>\n");
@@ -11908,9 +11898,8 @@
void doAlignCompGeno(struct trackDb *tdb, char *itemName, char *otherGenome)
/* Handle click on blat or blastz track in a generic fashion */
/* otherGenome is the text to display for genome name on details page */
{
-char *track = tdb->tableName;
char query[256];
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr = NULL;
char **row;
@@ -11946,12 +11935,12 @@
printf("%s DNA</A><BR>\n", otherGenome);
/* Get alignment info and print. */
printf("<H2>Alignments</H2>\n");
-hFindSplitTable(database, seqName, track, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
/* if this is a non-split table then query with tName */
-if (startsWith(track, table))
+if (startsWith(tdb->table, table))
safef(query, sizeof(query), "select * from %s where qName = '%s' and tName = '%s'", table, itemName,seqName);
else
safef(query, sizeof(query), "select * from %s where qName = '%s'", table, itemName);
sr = sqlGetResult(conn, query);
@@ -11961,16 +11950,15 @@
slAddHead(&pslList, psl);
}
sqlFreeResult(&sr);
slReverse(&pslList);
-printAlignments(pslList, start, "htcBlatXeno", track, itemName);
+printAlignments(pslList, start, "htcBlatXeno", tdb->track, itemName);
printTrackHtml(tdb);
}
void doTSS(struct trackDb *tdb, char *itemName)
/* Handle click on DBTSS track. */
{
-char *track = tdb->tableName;
char query[256];
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr = NULL;
char **row = NULL;
@@ -11997,9 +11985,9 @@
}
sqlFreeResult(&sr);
slReverse(&pslList);
-printAlignments(pslList, start, "htcCdnaAli", track, itemName);
+printAlignments(pslList, start, "htcCdnaAli", tdb->track, itemName);
printTrackHtml(tdb);
}
void doEst3(char *itemName)
@@ -12039,9 +12027,8 @@
void doEncodeRna(struct trackDb *tdb, char *itemName)
/* Handle click on encodeRna track. */
{
-char *track = tdb->tableName;
struct encodeRna rna;
int start = cartInt(cart, "o");
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
@@ -12050,11 +12037,11 @@
int rowOffset;
struct slName *nameList, *sl;
genericHeader(tdb, itemName);
-rowOffset = hOffsetPastBin(database, seqName, track);
+rowOffset = hOffsetPastBin(database, seqName, tdb->table);
sprintf(query, "select * from %s where chrom = '%s' and chromStart = %d and name = '%s'",
- track, seqName, start, itemName);
+ tdb->table, seqName, start, itemName);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
{
encodeRnaStaticLoad(row + rowOffset, &rna);
@@ -12084,9 +12071,8 @@
void doRnaGene(struct trackDb *tdb, char *itemName)
/* Handle click on RNA Genes track. */
{
-char *track = tdb->tableName;
struct rnaGene rna;
int start = cartInt(cart, "o");
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
@@ -12094,11 +12080,11 @@
char query[256];
int rowOffset;
genericHeader(tdb, itemName);
-rowOffset = hOffsetPastBin(database, seqName, track);
+rowOffset = hOffsetPastBin(database, seqName, tdb->table);
sprintf(query, "select * from %s where chrom = '%s' and chromStart = %d and name = '%s'",
- track, seqName, start, itemName);
+ tdb->table, seqName, start, itemName);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
{
rnaGeneStaticLoad(row + rowOffset, &rna);
@@ -12118,9 +12104,9 @@
void doStsMarker(struct trackDb *tdb, char *marker)
/* Respond to click on an STS marker. */
{
-char *table = tdb->tableName;
+char *table = tdb->table;
char query[256];
char title[256];
struct sqlConnection *conn = hAllocConn(database);
boolean stsInfo2Exists = sqlTableExists(conn, "stsInfo2");
@@ -12448,9 +12434,9 @@
void doStsMapMouse(struct trackDb *tdb, char *marker)
/* Respond to click on an STS marker. */
{
-char *table = tdb->tableName;
+char *table = tdb->table;
char title[256];
char query[256];
struct sqlConnection *conn = hAllocConn(database);
struct sqlConnection *conn1 = hAllocConn(database);
@@ -12574,9 +12560,9 @@
void doStsMapMouseNew(struct trackDb *tdb, char *marker)
/* Respond to click on an STS marker. */
{
-char *table = tdb->tableName;
+char *table = tdb->table;
char title[256];
char query[256];
char query1[256];
struct sqlConnection *conn = hAllocConn(database);
@@ -12753,9 +12739,9 @@
void doStsMapRat(struct trackDb *tdb, char *marker)
/* Respond to click on an STS marker. */
{
-char *table = tdb->tableName;
+char *table = tdb->table;
char title[256];
char query[256];
char query1[256];
struct sqlConnection *conn = hAllocConn(database);
@@ -13241,9 +13227,8 @@
void doMouseOrthoDetail(struct trackDb *tdb, char *itemName)
/* Handle click on mouse synteny track. */
{
-char *track = tdb->tableName;
struct mouseSyn el;
int start = cartInt(cart, "o");
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
@@ -13254,10 +13239,10 @@
cartWebStart(cart, database, "Mouse Synteny");
printf("<H2>Mouse Synteny</H2>\n");
sprintf(query, "select * from %s where chrom = '%s' and chromStart = %d",
- track, seqName, start);
-rowOffset = hOffsetPastBin(database, seqName, track);
+ tdb->table, seqName, start);
+rowOffset = hOffsetPastBin(database, seqName, tdb->table);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
{
htmlHorizontalLine();
@@ -13275,9 +13260,8 @@
void doMouseSyn(struct trackDb *tdb, char *itemName)
/* Handle click on mouse synteny track. */
{
-char *track = tdb->tableName;
struct mouseSyn el;
int start = cartInt(cart, "o");
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
@@ -13288,10 +13272,10 @@
cartWebStart(cart, database, "Mouse Synteny");
printf("<H2>Mouse Synteny</H2>\n");
sprintf(query, "select * from %s where chrom = '%s' and chromStart = %d",
- track, seqName, start);
-rowOffset = hOffsetPastBin(database, seqName, track);
+ tdb->table, seqName, start);
+rowOffset = hOffsetPastBin(database, seqName, tdb->table);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
{
htmlHorizontalLine();
@@ -13309,9 +13293,8 @@
void doMouseSynWhd(struct trackDb *tdb, char *itemName)
/* Handle click on Whitehead mouse synteny track. */
{
-char *track = tdb->tableName;
struct mouseSynWhd el;
int start = cartInt(cart, "o");
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
@@ -13322,10 +13305,10 @@
cartWebStart(cart, database, "Mouse Synteny (Whitehead)");
printf("<H2>Mouse Synteny (Whitehead)</H2>\n");
sprintf(query, "select * from %s where chrom = '%s' and chromStart = %d",
- track, seqName, start);
-rowOffset = hOffsetPastBin(database, seqName, track);
+ tdb->table, seqName, start);
+rowOffset = hOffsetPastBin(database, seqName, tdb->table);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
{
htmlHorizontalLine();
@@ -13348,9 +13331,8 @@
void doEnsPhusionBlast(struct trackDb *tdb, char *itemName)
/* Handle click on Ensembl Phusion Blast synteny track. */
{
-char *track = tdb->tableName;
struct ensPhusionBlast el;
int start = cartInt(cart, "o");
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
@@ -13364,10 +13346,10 @@
cartWebStart(cart, database, "%s", tdb->longLabel);
printf("<H2>%s</H2>\n", tdb->longLabel);
sprintf(query, "select * from %s where chrom = '%s' and chromStart = %d",
- track, seqName, start);
-rowOffset = hOffsetPastBin(database, seqName, track);
+ tdb->table, seqName, start);
+rowOffset = hOffsetPastBin(database, seqName, tdb->table);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
{
htmlHorizontalLine();
@@ -13534,9 +13516,9 @@
void doSnpEntrezGeneLink(struct trackDb *tdb, char *name)
/* print link to EntrezGene for this SNP */
{
-char *table = tdb->tableName;
+char *table = tdb->table;
if (hTableExists(database, "knownGene") && hTableExists(database, "refLink") &&
hTableExists(database, "mrnaRefseq") && hTableExists(database, table))
{
struct sqlConnection *conn = hAllocConn(database);
@@ -13574,9 +13556,9 @@
void doSnpOld(struct trackDb *tdb, char *itemName)
/* Put up info on a SNP. */
{
-char *group = tdb->tableName;
+char *snpTable = tdb->table;
struct snp snp;
struct snpMap snpMap;
int start = cartInt(cart, "o");
struct sqlConnection *conn = hAllocConn(database);
@@ -13593,12 +13575,12 @@
"from %s "
"where chrom = '%s' "
" and chromStart = %d "
" and name = '%s'",
- group, seqName, start, itemName);
-rowOffset = hOffsetPastBin(database, seqName, group);
+ snpTable, seqName, start, itemName);
+rowOffset = hOffsetPastBin(database, seqName, snpTable);
sr = sqlGetResult(conn, query);
-if (sameString(group,"snpMap"))
+if (sameString(snpTable,"snpMap"))
while ((row = sqlNextRow(sr)) != NULL)
{
snpMapStaticLoad(row+rowOffset, &snpMap);
bedPrintPos((struct bed *)&snpMap, 3, tdb);
@@ -13728,9 +13710,9 @@
return -1;
}
else
{
- safef(snpSeqTable, sizeof(snpSeqTable), "%sSeq", tdb->tableName);
+ safef(snpSeqTable, sizeof(snpSeqTable), "%sSeq", tdb->table);
if (!hTableExists(database, snpSeqTable))
{
safecpy(snpSeqTable, sizeof(snpSeqTable), "snpSeq");
if (!hTableExists(database, snpSeqTable))
@@ -13762,9 +13744,9 @@
return NULL;
}
char seqFileBuf[512];
safef(seqFileBuf, sizeof(seqFileBuf), "/gbdb/%s/snp/%s.fa",
- database, tdb->tableName);
+ database, tdb->table);
if (fileExists(seqFileBuf))
return cloneString(seqFileBuf);
safef(seqFileBuf, sizeof(seqFileBuf), "/gbdb/%s/snp/snp.fa", database);
if (fileExists(seqFileBuf))
@@ -14089,25 +14071,25 @@
void doSnp(struct trackDb *tdb, char *itemName)
/* Process SNP details. */
{
-char *group = tdb->tableName;
+char *snpTable = tdb->table;
struct snp snp;
int start = cartInt(cart, "o");
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
char query[256];
-int rowOffset=hOffsetPastBin(database, seqName, group);
+int rowOffset=hOffsetPastBin(database, seqName, snpTable);
int firstOne=1;
char *exception=0;
char *chrom="";
int chromStart=0;
cartWebStart(cart, database, "Simple Nucleotide Polymorphism (SNP)");
printf("<H2>Simple Nucleotide Polymorphism (SNP) %s</H2>\n", itemName);
safef(query, sizeof(query), "select * from %s where chrom='%s' and "
- "chromStart=%d and name='%s'", group, seqName, start, itemName);
+ "chromStart=%d and name='%s'", snpTable, seqName, start, itemName);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr))!=NULL)
{
snpStaticLoad(row+rowOffset, &snp);
@@ -14239,9 +14221,9 @@
}
void doCnpLocke(struct trackDb *tdb, char *itemName)
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct cnpLocke thisItem;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
@@ -14269,9 +14251,9 @@
}
void doCnpIafrate(struct trackDb *tdb, char *itemName)
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct cnpIafrate cnpIafrate;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
@@ -14300,9 +14282,9 @@
}
void doCnpIafrate2(struct trackDb *tdb, char *itemName)
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct cnpIafrate2 thisItem;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
@@ -14340,9 +14322,9 @@
}
void doDelHinds2(struct trackDb *tdb, char *itemName)
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct delHinds2 thisItem;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
@@ -14367,9 +14349,9 @@
}
void doDelConrad2(struct trackDb *tdb, char *itemName)
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct delConrad2 thisItem;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
@@ -14396,9 +14378,9 @@
void doCnpSebat(struct trackDb *tdb, char *itemName)
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct cnpSebat cnpSebat;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
@@ -14424,9 +14406,9 @@
}
void doCnpSebat2(struct trackDb *tdb, char *itemName)
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct cnpSebat2 cnpSebat2;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
@@ -14542,9 +14524,9 @@
}
void doCnpSharp(struct trackDb *tdb, char *itemName)
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct cnpSharp cnpSharp;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
@@ -14585,9 +14567,9 @@
void doCnpSharp2(struct trackDb *tdb, char *itemName)
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct cnpSharp2 cnpSharp2;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
@@ -14623,9 +14605,9 @@
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
char query[512];
-int rowOffset = hOffsetPastBin(database, seqName, tdb->tableName);
+int rowOffset = hOffsetPastBin(database, seqName, tdb->table);
genericHeader(tdb, id);
printCustomUrl(tdb, id, FALSE);
safef(query, sizeof(query), "select * from dgv where name = '%s'", id);
@@ -14678,9 +14660,9 @@
void doAffy120K(struct trackDb *tdb, char *itemName)
/* Put up info on an Affymetrix SNP. */
{
-char *group = tdb->tableName;
+char *table = tdb->table;
struct snp snp;
int start = cartInt(cart, "o");
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
@@ -14695,9 +14677,9 @@
"where chrom = '%s' "
" and chromStart = %d "
" and name = '%s'",
seqName, start, itemName);
-rowOffset = hOffsetPastBin(database, seqName, group);
+rowOffset = hOffsetPastBin(database, seqName, table);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
{
snpStaticLoad(row+rowOffset, &snp);
@@ -14764,9 +14746,9 @@
void doAffy10K(struct trackDb *tdb, char *itemName)
/* Put up info on an Affymetrix SNP. */
{
-char *group = tdb->tableName;
+char *table = tdb->table;
struct snp snp;
int start = cartInt(cart, "o");
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
@@ -14781,9 +14763,9 @@
"where chrom = '%s' "
" and chromStart = %d "
" and name = '%s'",
seqName, start, itemName);
-rowOffset = hOffsetPastBin(database, seqName, group);
+rowOffset = hOffsetPastBin(database, seqName, table);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
{
snpStaticLoad(row+rowOffset, &snp);
@@ -15304,9 +15286,9 @@
/* If the user has selected a gene track for functional annotation,
* report how this SNP relates to any nearby genes. */
{
char varName[512];
-safef(varName, sizeof(varName), "%s_geneTrack", tdb->tableName);
+safef(varName, sizeof(varName), "%s_geneTrack", tdb->track);
struct slName *geneTracks = cartOptionalSlNameList(cart, varName);
if (geneTracks == NULL)
{
char *defaultGeneTracks = trackDbSetting(tdb, "defaultGeneTracks");
@@ -15677,9 +15659,9 @@
void doSnpWithVersion(struct trackDb *tdb, char *itemName, int version)
/* Process SNP details. */
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct snp125 snp;
struct snp *snpAlign = NULL;
int start = cartInt(cart, "o");
struct sqlConnection *conn = hAllocConn(database);
@@ -15770,14 +15752,14 @@
char query[512];
char **row;
int start = cartInt(cart, "o");
boolean isBed4 = startsWith("bed 4", tdb->type);
-boolean hasBin = hIsBinned(database, tdb->tableName);
+boolean hasBin = hIsBinned(database, tdb->table);
genericHeader(tdb, item);
safef(query, sizeof(query),
"select * from %s where name = '%s' and chrom = '%s' and chromStart = %d",
- tdb->tableName, item, seqName, start);
+ tdb->table, item, seqName, start);
sr = sqlGetResult(conn, query);
if ((row = sqlNextRow(sr)) != NULL)
{
char *itemForUrl=NULL, *name=NULL, *description=NULL, *marker=NULL;
@@ -15938,13 +15920,13 @@
int itemStart = cartInt(cart, "o"), itemEnd = cartInt(cart, "t");
genericHeader(tdb, item);
struct sqlConnection *conn = hAllocConn(database);
struct dyString *dy = dyStringNew(512);
-dyStringPrintf(dy, "select * from %s where chrom = '%s' and ", tdb->tableName, seqName);
+dyStringPrintf(dy, "select * from %s where chrom = '%s' and ", tdb->table, seqName);
hAddBinToQuery(itemStart, itemEnd, dy);
dyStringPrintf(dy, "chromStart = %d and name = '%s'", itemStart, item);
struct sqlResult *sr = sqlGetResult(conn, dy->string);
-int rowOffset = hOffsetPastBin(database, seqName, tdb->tableName);
+int rowOffset = hOffsetPastBin(database, seqName, tdb->table);
boolean first = TRUE;
char **row;
while ((row = sqlNextRow(sr)) != NULL)
{
@@ -16017,9 +15999,9 @@
int bedSize;
genericHeader(tdb, item);
bedSize = 8;
-hFindSplitTable(database, seqName, tdb->tableName, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
sprintf(query, "select * from %s where name = '%s'", table, item);
sr = sqlGetResult(conn, query);
if ((row = sqlNextRow(sr)) != NULL)
{
@@ -16052,9 +16034,9 @@
int bedSize;
genericHeader(tdb, item);
bedSize = 8;
-hFindSplitTable(database, seqName, tdb->tableName, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
sprintf(query, "select * from %s where name = '%s'", table, item);
sr = sqlGetResult(conn, query);
if ((row = sqlNextRow(sr)) != NULL)
{
@@ -16146,9 +16128,8 @@
void doJaxAllele(struct trackDb *tdb, char *item)
/* Show gene prediction position and other info. */
{
-char *track = tdb->tableName;
char query[512];
struct sqlConnection *conn = hAllocConn(database);
struct sqlConnection *conn2 = hAllocConn(database);
boolean hasBin;
@@ -16160,9 +16141,9 @@
genericHeader(tdb, item);
safef(aliasTable, sizeof(aliasTable), "jaxAlleleInfo");
safef(phenoTable, sizeof(phenoTable), "jaxAllelePheno");
safef(query, sizeof(query), "name = \"%s\"", item);
-sr = hRangeQuery(conn, track, seqName, winStart, winEnd, query, &hasBin);
+sr = hRangeQuery(conn, tdb->table, seqName, winStart, winEnd, query, &hasBin);
while ((row = sqlNextRow(sr)) != NULL)
{
struct bed *bed = bedLoadN(row+hasBin, 12);
/* Watch out for case-insensitive matches (e.g. one allele is <sla>,
@@ -16257,12 +16238,12 @@
*selectedPheno = '\0';
selectedPheno += strlen(" source=");
}
genericHeader(tdb, item);
-safef(aliasTable, sizeof(aliasTable), "%sAlias", tdb->tableName);
+safef(aliasTable, sizeof(aliasTable), "%sAlias", tdb->table);
safef(phenoTable, sizeof(phenoTable), "jaxAllelePheno");
safef(query, sizeof(query), "name = \"%s\"", item);
-sr = hRangeQuery(conn, tdb->tableName, seqName, winStart, winEnd, query,
+sr = hRangeQuery(conn, tdb->table, seqName, winStart, winEnd, query,
&hasBin);
while ((row = sqlNextRow(sr)) != NULL)
{
struct bed *bed = bedLoadN(row+hasBin, 12);
@@ -16364,9 +16345,8 @@
void doJaxAliasGenePred(struct trackDb *tdb, char *item)
/* Show gene prediction position and other info. */
{
-char *track = tdb->tableName;
char query[512];
struct sqlConnection *conn = hAllocConn(database);
struct sqlConnection *conn2 = hAllocConn(database);
struct genePred *gpList = NULL, *gp = NULL;
@@ -16375,11 +16355,11 @@
char aliasTable[256];
boolean gotAlias = FALSE;
genericHeader(tdb, item);
-safef(aliasTable, sizeof(aliasTable), "%sAlias", track);
+safef(aliasTable, sizeof(aliasTable), "%sAlias", tdb->table);
gotAlias = hTableExists(database, aliasTable);
-hFindSplitTable(database, seqName, track, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
safef(query, sizeof(query), "name = \"%s\"", item);
gpList = genePredReaderLoadQuery(conn, table, query);
for (gp = gpList; gp != NULL; gp = gp->next)
{
@@ -16460,9 +16440,9 @@
" thickStart, thickEnd, reserved, blockCount, blockSizes, "
" chromStarts, Id, color "
"from %s "
"where name = '%s' and chromStart = %d "
- "order by Id ", tdb->tableName, item, start);
+ "order by Id ", tdb->table, item, start);
for (ee = encodeErgeLoadByQuery(conn, query); ee!=NULL; ee=ee->next)
{
printf("<BR>\n");
if (ee->Id>0)
@@ -16505,9 +16485,9 @@
" thickStart, thickEnd, reserved, blockCount, blockSizes, "
" chromStarts, Id, color, allLines "
"from %s "
"where name = '%s' and chromStart = %d "
- "order by Id ", tdb->tableName, item, start);
+ "order by Id ", tdb->table, item, start);
for (ee = encodeErgeHssCellLinesLoadByQuery(conn, query); ee!=NULL; ee=ee->next)
{
if (ee->Id>0)
{
@@ -16533,9 +16513,9 @@
void doEncodeIndels(struct trackDb *tdb, char *itemName)
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct encodeIndels encodeIndel;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
@@ -16907,9 +16887,8 @@
void doCeleraDupPositive(struct trackDb *tdb, char *dupName)
/* Handle click on celeraDupPositive track. */
{
-char *track = tdb->tableName;
struct celeraDupPositive dup;
char query[512];
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
@@ -16925,13 +16904,13 @@
if (cgiVarExists("o"))
{
int start = cgiInt("o");
- int rowOffset = hOffsetPastBin(database, seqName, track);
+ int rowOffset = hOffsetPastBin(database, seqName, tdb->table);
safef(query, sizeof(query),
"select * from %s where chrom = '%s' and chromStart = %d and name= '%s'",
- track, seqName, start, dupName);
+ tdb->table, seqName, start, dupName);
sr = sqlGetResult(conn, query);
i = 0;
while ((row = sqlNextRow(sr)))
{
@@ -17010,9 +16989,8 @@
cartWebStart(cart, database, "%s", tdb->longLabel);
if (cgiVarExists("o"))
{
- char *track = tdb->tableName;
struct genomicSuperDups dup;
struct dyString *query = newDyString(512);
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
@@ -17029,12 +17007,12 @@
else if (sameString("hg17", database))
alignUrl = "http://humanparalogy.gs.washington.edu";
else if (sameString("hg15", database) || sameString("hg16", database))
alignUrl = "http://humanparalogy.gs.washington.edu/jab/der_oo33";
- rowOffset = hOffsetPastBin(database, seqName, track);
+ rowOffset = hOffsetPastBin(database, seqName, tdb->table);
parseSuperDupsChromPointPos(dupName, oChrom, &oStart, &dupId);
dyStringPrintf(query, "select * from %s where chrom = '%s' and ",
- track, seqName);
+ tdb->table, seqName);
if (rowOffset > 0)
hAddBinToQuery(start, end, query);
if (dupId >= 0)
dyStringPrintf(query, "uid = %d and ", dupId);
@@ -17054,9 +17032,9 @@
printf("<A HREF=\"%s&o=%d&t=%d&g=getDna&i=%s&c=%s&l=%d&r=%d&strand=%s&db=%s&table=%s\">"
"View DNA for other position</A><BR>\n",
hgcPathAndSettings(), dup.otherStart, dup.otherEnd, "",
dup.otherChrom, dup.otherStart, dup.otherEnd, dup.strand,
- database, track);
+ database, tdb->track);
printf("<B>Other Position Relative Orientation:</B>%s<BR>\n",
dup.strand);
printf("<B>Filter Verdict:</B> %s<BR>\n", dup.verdict);
printf(" <B> testResult:</B>%s<BR>\n", dup.testResult);
@@ -17278,9 +17256,9 @@
dupe = cloneString(tdb->type);
genericHeader(tdb, item);
wordCount = chopLine(dupe, words);
printCustomUrl(tdb, item, FALSE);
-hFindSplitTable(database, seqName, tdb->tableName, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d",
table, item, seqName, start);
sr = sqlGetResult(conn, query);
@@ -17351,9 +17329,9 @@
dupe = cloneString(tdb->type);
genericHeader(tdb, item);
wordCount = chopLine(dupe, words);
printCustomUrl(tdb, item, TRUE);
-hFindSplitTable(database, seqName, tdb->tableName, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d",
table, item, seqName, start);
sr = sqlGetResult(conn, query);
@@ -17397,9 +17375,9 @@
dupe = cloneString(tdb->type);
genericHeader(tdb, item);
wordCount = chopLine(dupe, words);
printCustomUrl(tdb, item, TRUE);
-hFindSplitTable(database, seqName, tdb->tableName, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d",
table, item, seqName, start);
sr = sqlGetResult(conn, query);
@@ -17470,9 +17448,9 @@
dupe = cloneString(tdb->type);
genericHeader(tdb, item);
wordCount = chopLine(dupe, words);
printCustomUrl(tdb, item, TRUE);
-hFindSplitTable(database, seqName, tdb->tableName, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
sprintf(query, "select * from %s where name = '%s' and chrom = '%s'",
table, item, seqName );
sr = sqlGetResult(conn, query);
@@ -17529,11 +17507,11 @@
printTrackHtml(tdb);
hFreeConn(&conn);
}
-void doGcDetails(struct trackDb *tdb, char *itemName) {
+void doGcDetails(struct trackDb *tdb, char *itemName)
/* Show details for gc percent */
-char *group = tdb->tableName;
+{
int start = cartInt(cart, "o");
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
@@ -17543,9 +17521,9 @@
char table[64];
cartWebStart(cart, database, "Percentage GC in 20,000 Base Windows (GC)");
-hFindSplitTable(database, seqName, group, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
sprintf(query, "select * from %s where chrom = '%s' and chromStart = %d and name = '%s'",
table, seqName, start, itemName);
sr = sqlGetResult(conn, query);
@@ -18054,15 +18032,15 @@
/* Load the altGraphX record and start page. */
if(id != 0)
{
- snprintf(query, sizeof(query),"select * from %s where id=%d", tdb->tableName, id);
+ snprintf(query, sizeof(query),"select * from %s where id=%d", tdb->table, id);
ag = altGraphXLoadByQuery(conn, query);
}
else
{
snprintf(query, sizeof(query),"select * from %s where tName like '%s' and tStart <= %d and tEnd >= %d",
- tdb->tableName, seqName, winEnd, winStart);
+ tdb->table, seqName, winEnd, winStart);
ag = altGraphXLoadByQuery(conn, query);
}
if(ag == NULL)
errAbort("hgc::doAltGraphXDetails() - couldn't find altGraphX with id=%d", id);
@@ -18071,16 +18049,16 @@
/* Print a display of the Graph. */
printf("<b>Plots of Alt-Splicing:</b>");
printf("<center>\n");
-if(sameString(tdb->tableName, "altGraphXPsb2004"))
+if(sameString(tdb->table, "altGraphXPsb2004"))
printf("Common Splicing<br>");
printf("Alt-Splicing drawn to scale.<br>");
image = altGraphXMakeImage(tdb,ag);
freez(&image);
/* Normally just print graph with exons scaled up. For conserved
track also display orthologous loci. */
-if(differentString(tdb->tableName, "altGraphXPsb2004"))
+if(differentString(tdb->table, "altGraphXPsb2004"))
{
struct altGraphX *copy = altGraphXClone(ag);
altGraphXVertPosSort(copy);
altGraphXEnlargeExons(copy);
@@ -18238,9 +18216,9 @@
int left = cartIntExp( cart, "l" );
int right = cartIntExp( cart, "r" );
char *winOn = cartUsualString( cart, "win", "F" );
-hFindSplitTable(database, seqName, tdb->tableName, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
sprintf(query, "select * from %s where name = '%s' and chrom = '%s'",
table, item, seqName);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
@@ -18269,9 +18247,9 @@
cgiItem = cgiEncode(thisItem);
longXenoPsl1Given(tdb, thisItem, otherOrg, "chromInfo",
otherDb, thisPsl, pslTableName );
sprintf(otherString, "%d&win=T", thisPsl->tStart );
- hgcAnchorSomewhere( tdb->tableName, cgiEncode(item), otherString, thisPsl->tName );
+ hgcAnchorSomewhere( tdb->track, cgiEncode(item), otherString, thisPsl->tName );
printf("View individual alignment windows\n</a>");
printf("<br><br>");
}
}
@@ -18329,9 +18307,9 @@
char pslTableName[128] = "blastzBestMouse";
int offset;
int motifid;
-hFindSplitTable(database, seqName, tdb->tableName, table, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, table, &hasBin);
sprintf(query, "select * from %s where name = '%s'",
table, item);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
@@ -18420,9 +18398,9 @@
int start = cartInt(cart, "o");
char *type;
fileName = nextWord(&fileItem);
for (ct = ctList; ct != NULL; ct = ct->next)
- if (sameString(trackId, ct->tdb->tableName))
+ if (sameString(trackId, ct->tdb->track))
break;
if (ct == NULL)
errAbort("Couldn't find '%s' in '%s'", trackId, fileName);
type = ct->tdb->type;
@@ -18460,19 +18438,21 @@
printf("<P><A HREF=\"../cgi-bin/hgTables?db=%s&hgta_group=%s&hgta_track=%s"
"&hgta_table=%s&position=%s:%d-%d&"
"hgta_doSchema=describe+table+schema\" TARGET=_BLANK>"
"View table schema</A></P>\n",
- database, ct->tdb->grp, ct->tdb->tableName, ct->tdb->tableName,
+ database, ct->tdb->grp, ct->tdb->table, ct->tdb->table,
seqName, winStart+1, winEnd);
}
else if (ct->dbTrack && sameString(ct->dbTrackType, "maf"))
{
struct sqlConnection *conn = hAllocConn(CUSTOM_TRASH);
struct sqlConnection *conn2 = hAllocConn(CUSTOM_TRASH);
- char *saveName = ct->tdb->tableName;
- ct->tdb->tableName = ct->dbTableName;
+ char *saveTable = ct->tdb->table;
+ char *saveTrack = ct->tdb->track;
+ ct->tdb->table = ct->tdb->track = ct->dbTableName;
customMafClick(conn, conn2, ct->tdb);
- ct->tdb->tableName = saveName;
+ ct->tdb->table = saveTable;
+ ct->tdb->track = saveTrack;
hFreeConn(&conn2);
hFreeConn(&conn);
}
else
@@ -18566,9 +18546,9 @@
struct psl *psl = 0;
struct sqlResult *sr = NULL;
struct sqlConnection *conn = hAllocConn(database);
char query[256], **row;
-struct psl* pslList = getAlignments(conn, tdb->tableName, itemName);
+struct psl* pslList = getAlignments(conn, tdb->table, itemName);
char *useName = itemName;
char *acc = NULL, *prot = NULL;
char *gene = NULL, *pos = NULL;
char *ptr;
@@ -18579,13 +18559,13 @@
boolean isSacCer = FALSE;
char *pred = trackDbSettingOrDefault(tdb, "pred", "NULL");
char *blastRef = trackDbSettingOrDefault(tdb, "blastRef", "NULL");
-if (sameString("blastSacCer1SG", tdb->tableName))
+if (sameString("blastSacCer1SG", tdb->table))
isSacCer = TRUE;
-if (startsWith("blastDm", tdb->tableName))
+if (startsWith("blastDm", tdb->table))
isDm = TRUE;
-if (startsWith("blastCe", tdb->tableName))
+if (startsWith("blastCe", tdb->table))
isCe = TRUE;
buffer = needMem(strlen(itemName)+ 1);
strcpy(buffer, itemName);
acc = buffer;
@@ -18634,9 +18614,9 @@
if (pos != NULL)
{
if (isDm == TRUE)
{
- char *dmDb = cloneString(strchr(tdb->tableName, 'D'));
+ char *dmDb = cloneString(strchr(tdb->track, 'D'));
*dmDb = tolower(*dmDb);
*strchr(dmDb, 'F') = 0;
@@ -18646,13 +18626,13 @@
}
else if (isCe == TRUE)
{
char *assembly;
- if (sameString("blastWBRef01", tdb->tableName))
+ if (sameString("blastWBRef01", tdb->table))
assembly = "ce3";
- else if (sameString("blastCe6SG", tdb->tableName))
+ else if (sameString("blastCe6SG", tdb->table))
assembly = "ce6";
- else if (sameString("blastCe4SG", tdb->tableName))
+ else if (sameString("blastCe4SG", tdb->table))
assembly = "ce4";
else
assembly = "ce3";
printf("<B>C. elegans position:</B>\n");
@@ -18668,11 +18648,11 @@
}
else
{
char *assembly;
- if (sameString("blastHg16KG", tdb->tableName))
+ if (sameString("blastHg16KG", tdb->table))
assembly = "hg16";
- else if (sameString("blastHg17KG", tdb->tableName))
+ else if (sameString("blastHg17KG", tdb->table))
assembly = "hg17";
else
assembly = "hg18";
printf("<B>Human position:</B>\n");
@@ -18727,13 +18707,13 @@
if (isPslToPrintByClick(psl, start, isClicked))
{
printf("<A HREF=\"%s&o=%d&g=htcProteinAli&i=%s&c=%s&l=%d&r=%d&db=%s&aliTrack=%s&pred=%s\">",
hgcPathAndSettings(), psl->tStart, psl->qName, psl->tName,
- psl->tStart, psl->tEnd, database,tdb->tableName, pred);
+ psl->tStart, psl->tEnd, database,tdb->track, pred);
printf("alignment</A> ");
printf("<A HREF=\"%s&o=%d&g=htcGetBlastPep&i=%s&c=%s&l=%d&r=%d&db=%s&aliTrack=%s\">",
hgcPathAndSettings(), psl->tStart, psl->qName, psl->tName,
- psl->tStart, psl->tEnd, database,tdb->tableName);
+ psl->tStart, psl->tEnd, database,tdb->track);
printf("peptide</A> ");
printf("%5.1f%% %5.1f%% %5d %5d %5.1f%% %c ",
100.0 * (psl->match + psl->repMatch + psl->misMatch) / psl->qSize,
100.0 * (psl->match + psl->repMatch) / (psl->match + psl->repMatch + psl->misMatch),
@@ -18741,9 +18721,9 @@
100.0 * (psl->qEnd - psl->qStart) / psl->qSize, psl->strand[1]);
printf("<A HREF=\"%s&position=%s:%d-%d&db=%s&ss=%s+%s\">",
hgTracksPathAndSettings(),
psl->tName, psl->tStart + 1, psl->tEnd, database,
- tdb->tableName, itemName);
+ tdb->track, itemName);
sprintLongWithCommas(startBuf, psl->tStart + 1);
sprintLongWithCommas(endBuf, psl->tEnd);
printf("%s:%s-%s</A> <BR>",psl->tName,startBuf, endBuf);
if (isClicked)
@@ -18825,10 +18805,10 @@
int rowOffset;
int start = cartInt(cart, "o");
genericHeader(tdb, NULL);
-if (!hFindSplitTable(database, seqName, tdb->tableName, fullTable, &rowOffset))
- errAbort("No %s track in database %s", tdb->tableName, database);
+if (!hFindSplitTable(database, seqName, tdb->table, fullTable, &rowOffset))
+ errAbort("No %s table in database %s", tdb->table, database);
safef(query, sizeof(query),
"select * from %s where chrom = '%s' and chromStart=%d",
fullTable, seqName, start);
sr = sqlGetResult(conn, query);
@@ -18858,9 +18838,9 @@
genericHeader(tdb, item);
genericBedClick(conn, tdb, item, start, 4);
safef(extra, sizeof(extra), "chromStart = %d", start);
-sr = hRangeQuery(conn, tdb->tableName, seqName, winStart, winEnd, extra,
+sr = hRangeQuery(conn, tdb->table, seqName, winStart, winEnd, extra,
&rowOffset);
if ((row = sqlNextRow(sr)) != NULL)
{
vntrStaticLoad(row + rowOffset, &vntr);
@@ -18900,9 +18880,9 @@
boolean hasBin = FALSE;
genericHeader(tdb, item);
genericBedClick(conn, tdb, item, start, 4);
-hFindSplitTable(database, seqName, tdb->tableName, fullTable, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, fullTable, &hasBin);
safef(query, sizeof(query), "select * from %s where name = '%s'",
fullTable, item);
sr = sqlGetResult(conn, query);
if ((row = sqlNextRow(sr)) != NULL)
@@ -18944,9 +18924,9 @@
struct bed *bed = NULL;
char query[512];
genericHeader(tdb, item);
-hFindSplitTable(database, seqName, tdb->tableName, fullTable, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, fullTable, &hasBin);
safef(query, sizeof(query),
"select * from %s where chrom = '%s' and chromStart = %d",
fullTable, seqName, start);
sr = sqlGetResult(conn, query);
@@ -19001,9 +18981,9 @@
num = 0;
num = atoi(words[1]);
/* get data for this item */
-sprintf(query, "select * from %s where name = '%s' and chromStart = %d", tdb->tableName, item, start);
+sprintf(query, "select * from %s where name = '%s' and chromStart = %d", tdb->table, item, start);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
bed = bedLoadN(row+hasBin, num);
@@ -19047,14 +19027,14 @@
struct sqlConnection *conn = hAllocConn(database);
int start = cartInt(cart, "o");
struct gencodeIntron *intron, *intronList = NULL;
char query[256];
-int rowOffset = hOffsetPastBin(database, seqName, tdb->tableName);
+int rowOffset = hOffsetPastBin(database, seqName, tdb->table);
genericHeader(tdb, item);
safef(query, sizeof query,
"select * from %s where name='%s' and chrom='%s' and chromStart=%d",
- tdb->tableName, item, seqName, start);
+ tdb->table, item, seqName, start);
intronList = gencodeIntronLoadByQuery(conn, query, rowOffset);
for (intron = intronList; intron != NULL; intron = intron->next)
{
printf("<B>Intron:</B> %s<BR>\n", intron->name);
@@ -19110,16 +19090,16 @@
char query[1024];
cartWebStart(cart, database, "%s", tdb->longLabel);
genericHeader(tdb, item);
-hFindSplitTable(database, seqName, tdb->tableName, fullTable, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, fullTable, &hasBin);
safef(query, sizeof(query),
"select * from %s where chrom = '%s' and chromStart = %d and name = '%s'",
fullTable, seqName, start, item);
sr = sqlGetResult(conn, query);
if ((row = sqlNextRow(sr)) != NULL)
{
- if (endsWith(tdb->tableName, "Average"))
+ if (endsWith(tdb->table, "Average"))
printESPAverageDetails(row+hasBin, tdb);
else
printESPDetails(row+hasBin, tdb);
}
@@ -19140,9 +19120,9 @@
char query[1024];
cartWebStart(cart, database, "%s", tdb->longLabel);
genericHeader(tdb, item);
-hFindSplitTable(database, seqName, tdb->tableName, fullTable, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, fullTable, &hasBin);
safef(query, sizeof(query),
"select * from %s where chrom = '%s' and chromStart = %d and name = '%s'",
fullTable, seqName, start, item);
sr = sqlGetResult(conn, query);
@@ -19159,9 +19139,9 @@
}
void doEncodeHapMapAlleleFreq(struct trackDb *tdb, char *itemName)
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct encodeHapMapAlleleFreq alleleFreq;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
@@ -19311,9 +19291,9 @@
boolean showOrtho)
/* Use the hapmapAllelesSummary table (caller checks for existence) to display allele
* frequencies for the 4 HapMap Phase II populations. */
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct hapmapAllelesSummary *summaryItem;
struct sqlResult *sr;
char **row;
char query[256];
@@ -19516,9 +19496,9 @@
void doHapmapSnps(struct trackDb *tdb, char *itemName)
/* assume just one hapmap snp at a given location */
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
char query[256];
@@ -19586,9 +19566,9 @@
void doHapmapOrthos(struct trackDb *tdb, char *itemName)
/* could assume just one match */
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct hapmapAllelesOrtho *ortho;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
@@ -19718,9 +19698,9 @@
boolean hasBin = FALSE;
char query[512];
genericHeader(tdb, item);
-hFindSplitTable(database, seqName, tdb->tableName, fullTable, &hasBin);
+hFindSplitTable(database, seqName, tdb->table, fullTable, &hasBin);
safef(query, sizeof(query),
"select * from %s where chrom = '%s' and chromStart = %d and name = '%s'",
fullTable, seqName, start, item);
sr = sqlGetResult(conn, query);
@@ -19985,9 +19965,9 @@
char **row;
char *bayesianFiguresUrl = "../images/mammalPsg";
genericHeader(tdb, itemName);
-sprintf(query, "select * from %s where name = '%s'", tdb->tableName, itemName);
+sprintf(query, "select * from %s where name = '%s'", tdb->table, itemName);
sr = sqlGetResult(conn, query);
if ((row = sqlNextRow(sr)) != NULL)
mammalPsg = mammalPsgLoad(row);
else
@@ -20042,9 +20022,9 @@
boolean approx;
enum {CONS, GAIN, LOSS} elementType;
genericHeader(tdb, itemName);
-sprintf(query, "select * from %s where name = '%s'", tdb->tableName, itemName);
+sprintf(query, "select * from %s where name = '%s'", tdb->table, itemName);
sr = sqlGetResult(conn, query);
if ((row = sqlNextRow(sr)) != NULL)
dless = dlessLoad(row);
else
@@ -20353,9 +20333,9 @@
}
/* show genome sequence */
-hgcAnchorSomewhere("htcGeneInGenome", cgiEncode(info->name), tdb->tableName, seqName);
+hgcAnchorSomewhere("htcGeneInGenome", cgiEncode(info->name), tdb->track, seqName);
printf("View DNA for this putative fragment</A><BR>\n");
/* show the detail alignment */
sprintf(query, "SELECT * FROM %s WHERE "
@@ -20402,9 +20382,9 @@
}
void doDv(struct trackDb *tdb, char *itemName)
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct dvBed dvBed;
struct dv *dv;
struct dvXref2 *dvXref2;
struct omimTitle *omimTitle;
@@ -20524,9 +20504,9 @@
}
void doOreganno (struct trackDb *tdb, char *itemName)
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct oreganno *r = NULL;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
@@ -20638,9 +20618,9 @@
}
void doSnpArray (struct trackDb *tdb, char *itemName, char *dataSource)
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
char query[256];
@@ -20700,9 +20680,9 @@
/* doSnpArray2 is essential the same as doSnpArray except that the strand is blanked out */
/* This is a temp solution for 3 Illumina SNP Arrays to blank out strand info for non-dbSnp entries */
/* Should be removed once Illumina comes up with a clear defintion of their strand data */
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
char query[256];
@@ -21100,9 +21080,9 @@
void doOmiciaOld (struct trackDb *tdb, char *itemName)
/* this prints the detail page for the Omicia OMIM track */
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct omiciaLink *link = NULL;
struct omiciaAttr *attr = NULL;
void *omim = NULL;
struct sqlConnection *conn = hAllocConn(database);
@@ -21159,9 +21139,9 @@
void doProtVar (struct trackDb *tdb, char *itemName)
/* this prints the detail page for the UniProt variation track */
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct protVarPos *mut = NULL;
struct protVar *details = NULL;
struct protVarAttr attr;
struct sqlConnection *conn = hAllocConn(database);
@@ -21239,12 +21219,12 @@
printTrackHtml(tdb);
hFreeConn(&conn);
}
-void doGv (struct trackDb *tdb, char *itemName)
+void doGv(struct trackDb *tdb, char *itemName)
/* this prints the detail page for the Genome variation track */
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct gvPos *mut = NULL;
struct gv *details = NULL;
struct gvAttr attr;
struct gvAttrLong attrLong;
@@ -21353,9 +21333,9 @@
/* split code from printTrackHtml */
printTBSchemaLink(tdb);
printDataVersion(tdb);
printOrigAssembly(tdb);
-if ((tableName = hTableForTrack(database, tdb->tableName)) != NULL)
+if ((tableName = hTableForTrack(database, tdb->table)) != NULL)
{
struct sqlConnection *conn = hAllocConn(database);
char *date = firstWordInLine(sqlTableUpdate(conn, tableName));
if (date != NULL)
@@ -21379,9 +21359,9 @@
void doPgSnp(struct trackDb *tdb, char *itemName)
/* print detail page for personal genome track (pgSnp) */
{
-char *table = tdb->tableName;
+char *table = tdb->table;
char *escName = sqlEscapeString(itemName);
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr;
char **row;
@@ -21440,9 +21420,9 @@
void doAllenBrain(struct trackDb *tdb, char *itemName)
/* Put up page for Allen Brain Atlas. */
{
-char *table = tdb->tableName;
+char *table = tdb->table;
struct psl *pslList;
int start = cartInt(cart, "o");
struct sqlConnection *conn = hAllocConn(database);
char *url, query[512];
@@ -21465,9 +21445,8 @@
void doExaptedRepeats(struct trackDb *tdb, char *itemName)
/* Respond to click on the exaptedRepeats track. */
{
-char *track = tdb->tableName;
struct sqlConnection *conn = hAllocConn(database);
char query[256];
struct sqlResult *sr;
char **row;
@@ -21475,10 +21454,10 @@
unsigned int chromStart, chromEnd;
boolean blastzAln;
cartWebStart(cart, database, "%s", itemName);
-sprintf(query, "select * from %s where name = '%s'", track, itemName);
-selectOneRow(conn, track, query, &sr, &row);
+sprintf(query, "select * from %s where name = '%s'", tdb->table, itemName);
+selectOneRow(conn, tdb->table, query, &sr, &row);
chr = cloneString(row[0]);
chromStart = sqlUnsigned(row[1]);
chromEnd = sqlUnsigned(row[2]);
name = cloneString(row[3]);
@@ -21516,13 +21495,13 @@
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr = NULL;
struct dyString *query = dyStringNew(512);
char **row = NULL;
- int rowOffset = hOffsetPastBin(database, seqName, tdb->tableName);
+ int rowOffset = hOffsetPastBin(database, seqName, tdb->table);
int start = cartInt(cart, "o");
int end = cartInt(cart, "t");
dyStringPrintf(query, "select * from %s where tName = '%s' and ",
- tdb->tableName, seqName);
+ tdb->table, seqName);
if (rowOffset)
hAddBinToQuery(start, end, query);
dyStringPrintf(query, "tStart = %d and qName = '%s'", start, itemName);
sr = sqlGetResult(conn, query->string);
@@ -21533,9 +21512,9 @@
psl->qName);
if (hGenBankHaveSeq(database, itemName, NULL))
{
printf("<H3>%s/Genomic Alignments</H3>", name);
- printAlignments(psl, start, "htcCdnaAli", tdb->tableName,
+ printAlignments(psl, start, "htcCdnaAli", tdb->table,
encodedName);
}
else
{
@@ -21560,9 +21539,9 @@
struct sqlResult *sr;
char **row;
genericHeader(tdb, item);
char defaultExtra[HDB_MAX_TABLE_STRING];
-safef(defaultExtra, sizeof(defaultExtra), "%sExtra", tdb->tableName);
+safef(defaultExtra, sizeof(defaultExtra), "%sExtra", tdb->table);
char *extraTable = trackDbSettingOrDefault(tdb, "xrefTable", defaultExtra);
boolean gotExtra = sqlTableExists(conn, extraTable);
if (gotExtra)
{
@@ -21608,9 +21587,9 @@
puts("<TR><TD colspan=2>");
sqlFreeResult(&sr);
}
safef(query, sizeof(query), "select chrom,chromStart,chromEnd from %s "
- "where name = '%s'", tdb->tableName, item);
+ "where name = '%s'", tdb->table, item);
sr = sqlGetResult(conn, query);
char lastChr[32];
int lastStart = -1;
int lastEnd = -1;
@@ -21638,9 +21617,9 @@
printf("<B>Name:</B> %s<BR>\n", item);
/* this prints the detail page for the clinical information for Cancer Demo datasets */
-char *table = tdb->tableName;
+char *table = tdb->table;
char *cliniTable=NULL, *key=NULL;
char query[256];
struct sqlConnection *conn = hAllocConn(database);
struct sqlResult *sr, *startSr;
@@ -21853,9 +21832,9 @@
char confTable[128];
/* create name for confidence table containing posterior probability and
false discovery rate (FDR). */
-safef(confTable, sizeof(confTable), "%sConf", tdb->tableName);
+safef(confTable, sizeof(confTable), "%sConf", tdb->table);
if (sqlTableExists(conn, confTable))
{
/* print the posterior probability and FDR if available */
@@ -21951,16 +21930,16 @@
char *escapedName = sqlEscapeString(item);
int start = cartInt(cart, "o");
genericHeader(tdb, item);
-if (! startsWith(KIDD_EICHLER_DISC_PREFIX, tdb->tableName))
+if (! startsWith(KIDD_EICHLER_DISC_PREFIX, tdb->table))
errAbort("track tableName must begin with "KIDD_EICHLER_DISC_PREFIX
- " but instead it is %s", tdb->tableName);
-hasBin = hOffsetPastBin(database, seqName, tdb->tableName);
+ " but instead it is %s", tdb->table);
+hasBin = hOffsetPastBin(database, seqName, tdb->table);
/* We don't need to add bin to this because name is indexed: */
safef(query, sizeof(query), "select * from %s where name = '%s' "
"and chrom = '%s' and chromStart = %d",
- tdb->tableName, escapedName, seqName, start);
+ tdb->table, escapedName, seqName, start);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
{
if (firstTime)
@@ -21975,9 +21954,9 @@
if (endFudge && !strstr(bed->name, "OEA"))
endForUrl += atoi(endFudge);
char sampleName[16];
safecpy(sampleName, sizeof(sampleName),
- tdb->tableName + strlen(KIDD_EICHLER_DISC_PREFIX));
+ tdb->table + strlen(KIDD_EICHLER_DISC_PREFIX));
touppers(sampleName);
char itemPlus[2048];
safef(itemPlus, sizeof(itemPlus),
"%s&o=%d&t=%d&g=%s_discordant&%s_discordant=full",
@@ -22053,9 +22032,9 @@
if (isCustomTrack(track))
{
struct customTrack *ctList = getCtList();
for (ct = ctList; ct != NULL; ct = ct->next)
- if (sameString(track, ct->tdb->tableName))
+ if (sameString(track, ct->tdb->track))
break;
}
if ((!isCustomTrack(track) && dbIsFound) ||
@@ -22085,9 +22064,10 @@
strncat(wigType, " ", 128 - strlen(wigType));
}
strncat(wigType, "\n", 128 - strlen(wigType));
tdb->type = wigType;
- tdb->tableName = cloneString(track);
+ tdb->track = cloneString(track);
+ tdb->table = cloneString(track);
freeMem(typeLine);
cartRemove(cart, "parentWigMaf"); /* ONE TIME ONLY USE !!! */
}
else