src/hg/hgc/hgc.c 1.1600

1.1600 2010/02/22 23:28:29 fanhsu
Added section to process rgdGene2 track.
Index: src/hg/hgc/hgc.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgc/hgc.c,v
retrieving revision 1.1599
retrieving revision 1.1600
diff -b -B -U 4 -r1.1599 -r1.1600
--- src/hg/hgc/hgc.c	18 Feb 2010 20:52:39 -0000	1.1599
+++ src/hg/hgc/hgc.c	22 Feb 2010 23:28:29 -0000	1.1600
@@ -9227,8 +9227,131 @@
 printTrackHtml(tdb);
 hFreeConn(&conn);
 }
 
+void doRgdGene2(struct trackDb *tdb, char *rgdGeneId)
+/* Process click on a RGD gene. */
+{
+struct sqlConnection *conn = hAllocConn(database);
+struct sqlResult *sr;
+char **row;
+char query[256];
+char *sqlRnaName = rgdGeneId;
+char *rgdId = NULL;
+char *chp;
+char *GeneID, *Name, *note;
+char *rgdPathwayId;
+char *rgdPathwayName;
+
+/* Make sure to escape single quotes for DB parseability */
+if (strchr(rgdGeneId, '\''))
+    sqlRnaName = replaceChars(rgdGeneId, "'", "''");
+
+cartWebStart(cart, database, "%s", tdb->longLabel);
+
+chp = strstr(rgdGeneId, ":");
+if (chp != NULL)
+    {
+    chp++;
+    rgdId = strdup(chp);
+    }
+else
+    {
+    errAbort("Couldn't find %s.", rgdGeneId);
+    }
+
+safef(query, sizeof(query), "select GeneID, Name, note from rgdGeneXref where rgdGeneId = '%s'", rgdGeneId);
+
+sr = sqlGetResult(conn, query);
+if ((row = sqlNextRow(sr)) == NULL)
+    errAbort("Couldn't find %s in rgdGeneXref table - database inconsistency.", rgdGeneId);
+GeneID = cloneString(row[0]);
+Name   = cloneString(row[1]);
+note   = cloneString(row[2]);
+
+sqlFreeResult(&sr);
+
+printf("<H2>Gene %s</H2>\n", Name);
+printf("<B>RGD Gene Report: </B> <A HREF=\"");
+printf("%s%s", tdb->url, rgdId);
+printf("\" TARGET=_blank>RGD:%s</A>", rgdId);
+
+printf("<BR><B>GeneID: </B> %s ", GeneID);
+printf("<BR><B>Gene Name: </B> %s ", Name);
+printf("<BR><B>Note: </B> %s ", note);
+
+safef(query, sizeof(query), "select extAC from rgdGeneXref2 where rgdGeneId = '%s' and extDB='IMAGE'", rgdGeneId);
+sr = sqlGetResult(conn, query);
+row = sqlNextRow(sr);
+if (row != NULL)
+    {
+    char *image;
+    image = cloneString(row[0]);
+    printf("<BR><B>IMAGE Clone: </B>");
+    printf("<A HREF=\"");
+    printf("%s%s", "http://image.hudsonalpha.org/IQ/bin/singleCloneQuery?clone_id=", image);
+    printf("\" TARGET=_blank> %s</A>", image);
+    row = sqlNextRow(sr);
+    while (row != NULL)
+	{
+	image = cloneString(row[0]);
+	printf(", <A HREF=\"");
+	printf("%s%s", "http://image.hudsonalpha.org/IQ/bin/singleCloneQuery?clone_id=", image);
+	printf("\" TARGET=_blank>%s</A>", image);
+        row = sqlNextRow(sr);
+	}
+    }
+sqlFreeResult(&sr);
+
+safef(query, sizeof(query), "select extAC from rgdGeneXref2 where rgdGeneId = '%s' and extDB='MGC'", rgdGeneId);
+sr = sqlGetResult(conn, query);
+row = sqlNextRow(sr);
+if (row != NULL)
+    {
+    char *mgc;
+    mgc = cloneString(row[0]);
+    printf("<BR><B>MGC: </B>");
+    printf("<A HREF=\"");
+    printf("%s%s", "http://mgc.nci.nih.gov/Genes/CloneList?ORG=Rn&LIST=", mgc);
+    printf("\" TARGET=_blank> %s</A>", mgc);
+    row = sqlNextRow(sr);
+    while (row != NULL)
+	{
+	mgc = cloneString(row[0]);
+	printf(", <A HREF=\"");
+	printf("%s%s", "http://mgc.nci.nih.gov/Genes/CloneList?ORG=Rn&LIST=", mgc);
+	printf("\" TARGET=_blank>%s</A>", mgc);
+        row = sqlNextRow(sr);
+	}
+    }
+sqlFreeResult(&sr);
+
+htmlHorizontalLine();
+printf("<H3>RGD Pathway(s)</H3>\n");
+safef(query, sizeof(query), 
+"select p.rgdPathwayId, p.name from rgdGenePathway g, rgdPathway p where g.rgdGeneId = '%s' and g.rgdPathwayId=p.rgdPathwayId", rgdGeneId);
+sr = sqlGetResult(conn, query);
+if ((row = sqlNextRow(sr)) == NULL)
+    errAbort("Couldn't find %s in rgdGenePathway table - database inconsistency.", rgdGeneId);
+printf("<UL>");
+while (row != NULL)
+    {
+    rgdPathwayId   = cloneString(row[0]);
+    rgdPathwayName = cloneString(row[1]);
+    printf("<LI><B>%s</B><BR>", rgdPathwayName);
+    row = sqlNextRow(sr);
+    }
+sqlFreeResult(&sr);
+printf("</UL>");
+printf("<A HREF=\"");
+printf("%s%s%s", "http://rgd.mcw.edu/tools/genes/gene_ont_view.cgi?id=", rgdId, "#Pathway");
+printf("\" TARGET=_blank> %s</A> </H3>", "Click here for more RGD pathway details related to this gene...");
+
+htmlHorizontalLine();
+
+printTrackHtml(tdb);
+hFreeConn(&conn);
+}
 char *getRefSeqCdsCompleteness(struct sqlConnection *conn, char *acc)
 /* get description of RefSeq CDS completeness or NULL if not available */
 {
 /* table mapping names to descriptions */
@@ -22023,8 +22146,12 @@
 else if (sameWord(track, "rgdGene"))
     {
     doRgdGene(tdb, item);
     }
+else if (sameWord(track, "rgdGene2"))
+    {
+    doRgdGene2(tdb, item);
+    }
 else if (sameWord(track, "rgdEst"))
     {
     doHgRna(tdb, item);
     }