src/hg/archaeStuff/tooltip/tooltip.c 1.7
1.7 2010/02/12 18:03:12 markd
integrated archae tool tip changes from Andrew Holmes
Index: src/hg/archaeStuff/tooltip/tooltip.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/archaeStuff/tooltip/tooltip.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -b -B -U 4 -r1.6 -r1.7
--- src/hg/archaeStuff/tooltip/tooltip.c 2 Dec 2009 20:08:20 -0000 1.6
+++ src/hg/archaeStuff/tooltip/tooltip.c 12 Feb 2010 18:03:12 -0000 1.7
@@ -34,9 +34,31 @@
struct cart *cart; /* This holds cgi and other variables between clicks. */
struct hash *oldVars = NULL;
char *database; /* Name of mySQL database. */
char *organism;
+char* getseqname()
+{
+ char *seqName;
+ boolean dbIsFound = sqlDatabaseExists(database);
+
+ if (dbIsFound)
+ seqName = hgOfficialChromName(database, cartString(cart, "c"));
+ else
+ seqName = cartString(cart, "c");
+ char* position = cartOptionalString(cart, "position");
+ int i = 0;
+ while(position[i] != '\0' && position[i] != ':')
+ {
+ i++;
+ }
+ if(position[i] == ':')
+ {
+ position[i] = '\0';
+ seqName = position;
+ }
+ return seqName;
+}
void toolTipGeneQuery()
{
@@ -96,9 +118,9 @@
slAddTail(&description, element);
}
sqlFreeResult(&srarcogdesc);
}
- sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = '%d';", track, itemName,seqName,start, end);
+ sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = %d;", track, itemName,seqName,start, end);
sr = sqlGetResult(conn, query);
struct arCOGs *infoload = NULL;
rowOffset = hOffsetPastBin(database, seqName, track);
@@ -123,13 +145,14 @@
hFreeConn(&conn);
}
void cddInfoTip()
{
+
char *track = cartOptionalString(cart, "g");
char *seqName = cartOptionalString(cart, "c");
char *itemName = cartOptionalString(cart, "i");
int start = cartInt(cart, "o");
- int end = cartInt(cart, "t");
+ int end = cartInt(cart,"t");
struct sqlResult *sr;
char **row;
char **descrow;
char query[256];
@@ -154,10 +177,10 @@
sqlFreeResult(&srCddDesc);
}
- sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = '%d';", track, itemName,seqName,start, end);
-
+ sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = %d;", track, itemName,seqName,start, end);
+ //printf("%s\n",query);
sr = sqlGetResult(conn, query);
struct cddInfo *infoload = NULL;
rowOffset = hOffsetPastBin(database, seqName, track);
if ((row = sqlNextRow(sr)) != NULL)
@@ -186,23 +209,23 @@
hFreeConn(&conn);
}
void megablastInfoTip()
{
- char *track = cartOptionalString(cart, "g");
+ char *track = cartOptionalString(cart,"g");
char *seqName = cartOptionalString(cart, "c");
char *itemName = cartOptionalString(cart, "i");
- int start = cartInt(cart, "o");
- int end = cartInt(cart, "t");
+ int start = cartInt(cart,"o");
+ int end = cartInt(cart,"t");
struct sqlResult *sr;
char **row;
char query[256];
int rowOffset;
struct sqlConnection *conn = hAllocConn(database);
- sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = '%d';", track, itemName,seqName,start, end);
-
+ sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = %d;", track, itemName,seqName,start, end);
+ //printf("%s",query);
sr = sqlGetResult(conn, query);
struct megablastInfo *infoload = NULL;
rowOffset = hOffsetPastBin(database, seqName, track);
if ((row = sqlNextRow(sr)) != NULL)
@@ -280,14 +303,14 @@
char *track = cartOptionalString(cart, "g");
char *seqName = cartOptionalString(cart, "c");
char *itemName = cartOptionalString(cart, "i");
int start = cartInt(cart, "o");
- int end = cartInt(cart, "t");
+ int end = cartInt(cart,"t");
struct sqlResult *sr;
char query[256];
int rowOffset;
- sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = '%d';", track, itemName,seqName,start, end);
+ sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = %d;", track, itemName,seqName,start, end);
struct sqlConnection *conn = hAllocConn(database);
sr = sqlGetResult(conn, query);
rowOffset = hOffsetPastBin(database, seqName, track);
@@ -338,9 +361,9 @@
struct sqlResult *srRefSeq;
char refSeq[] = "refSeq";
sprintf(query, "select name, cdsStart, cdsEnd, strand from %s where chrom = '%s' and cdsStart <= %i and cdsEnd >= %i",
- refSeq, cartOptionalString(cart, "c"), cartInt(cart, "o"), cartInt(cart, "t"));
+ refSeq, cartOptionalString(cart, "c"), cartInt(cart,"o"), cartInt(cart, "t"));
srRefSeq = sqlGetResult(conn, query);
//char queryName[50];
char **buffer = NULL;
@@ -370,9 +393,9 @@
int end;
if(postrand)
{
start = cartInt(cart, "o") - queryStart;
- end = cartInt(cart, "t") - queryStart;
+ end = cartInt(cart,"t") - queryStart;
}
else
{
@@ -604,16 +627,16 @@
char *track = cartOptionalString(cart, "g");
char *seqName = cartOptionalString(cart, "c");
char *itemName = cartOptionalString(cart, "i");
int start = cartInt(cart, "o");
- int end = cartInt(cart, "t");
+ int end = cartInt(cart,"t");
struct sqlResult *sr;
char **row;
char query[256];
int rowOffset;
struct lowelabPfamHits *infoload;
struct sqlConnection *conn = hAllocConn(database);
- sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = '%d';", track, itemName,seqName,start, end);
+ sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = %d;", track, itemName,seqName,start, end);
sr = sqlGetResult(conn, query);
rowOffset = hOffsetPastBin(database, seqName, track);
if ((row = sqlNextRow(sr)) != NULL)
{
@@ -628,9 +651,9 @@
}
void TrnasTip()
{
struct sqlConnection *conn = hAllocConn(database);
- char *track = cartOptionalString(cart, "g");
+ char *track = cartOptionalString(cart,"g");
char *seqName = cartOptionalString(cart, "c");
char *itemName = cartOptionalString(cart, "i");
int start = cartInt(cart, "o");
int end = cartInt(cart, "t");
@@ -639,9 +662,9 @@
char query[256];
int rowOffset;
struct tRNAs *infoload;
- sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = '%d';", track, itemName,seqName,start, end);
+ sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = %d;", track, itemName,seqName,start, end);
sr = sqlGetResult(conn, query);
rowOffset = hOffsetPastBin(database, seqName, track);
if ((row = sqlNextRow(sr)) != NULL)
@@ -672,9 +695,9 @@
char query[256];
int rowOffset;
struct snoRNAs *infoload;
struct sqlConnection *conn = hAllocConn(database);
- sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = '%d';", track, itemName,seqName,start, end);
+ sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = %d;", track, itemName,seqName,start, end);
sr = sqlGetResult(conn, query);
rowOffset = hOffsetPastBin(database, seqName, track);
if ((row = sqlNextRow(sr)) != NULL)
{
@@ -698,16 +721,16 @@
char *track = cartOptionalString(cart, "g");
char *seqName = cartOptionalString(cart, "c");
char *itemName = cartOptionalString(cart, "i");
int start = cartInt(cart, "o");
- int end = cartInt(cart, "t");
+ int end = cartInt(cart,"t");
char query[256];
- sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = '%d';", track, itemName,seqName,start, end);
+ sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = %d;", track, itemName,seqName,start, end);
int rowOffset;
struct sqlResult *sr;
char **row;
@@ -745,9 +768,9 @@
char query[256];
- sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = '%d';", track, itemName,seqName,start, end);
+ sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d and chromEnd = %d;", track, itemName,seqName,start, end);
int rowOffset;
struct sqlResult *sr;
char **row;
@@ -777,17 +800,26 @@
hPrintf("<B>Name:</B> %s",parts[1]);
free(parts[0]);
free(parts[1]);
}
-
+//This is a debugging function that runs a incorrect SQL query
+//Use this for testing error handling
+void badgenequery()
+{
+ char query[256];
+ struct sqlConnection *conn = hAllocConn(database);
+ sprintf(query, "select * from mgComsmonDb.cddDesc where accession = 'foo'");
+ sqlGetResult(conn, query);
+}
void ToolTipQuery()
{
char *track = cartOptionalString(cart, "g");
//char *dataset = cgiString("g");
//printf("**%s**\n", track);
+ //badgenequery();
if (sameString(track, "refSeq"))
toolTipGeneQuery();
- if (startsWith("ct_UserTrack", track)) // ct_UserTrack_3545
+ else if (startsWith("ct_UserTrack", track)) // ct_UserTrack_3545
customGeneQuery();
else if (sameString(track, "cddInfo"))
cddInfoTip();
else if (sameString(track, "gc20Base"))
@@ -830,9 +862,13 @@
int main(int argc, char *argv[])
{
cgiSpoof(&argc,argv);
//dispatchRoutines();
- cartEmptyShell(cartDoMiddle, hUserCookie(), excludeVars, NULL);
+ //cartEmptyShell(cartDoMiddle, hUserCookie(), excludeVars, NULL);
+
+ cart = cartAndCookie(hUserCookie(), excludeVars, NULL);
+ cartDoMiddle(cart);
+
//printf("Hello, world!\n");
return 0;
}