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;
 }