283ecb763785bc0f76edd211f95c091863962348
fanhsu
  Tue Feb 22 17:10:18 2011 -0800
Fine tuned details page for OMIM new tracks.
diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c
index de2cc51..a74814d 100644
--- src/hg/hgc/hgc.c
+++ src/hg/hgc/hgc.c
@@ -257,30 +257,31 @@
 /* JavaScript to automatically submit the form when certain values are
  * changed. */
 char *onChangeAssemblyText = "onchange=\"document.orgForm.submit();\"";
 
 #define NUMTRACKS 9
 int prevColor[NUMTRACKS]; /* used to optimize color change html commands */
 int currentColor[NUMTRACKS]; /* used to optimize color change html commands */
 int maxShade = 9;	/* Highest shade in a color gradient. */
 Color shadesOfGray[10+1];	/* 10 shades of gray from white to black */
 
 Color shadesOfRed[16];
 boolean exprBedColorsMade = FALSE; /* Have the shades of red been made? */
 int maxRGBShade = 16;
 
 struct bed *sageExpList = NULL;
+char ncbiOmimUrl[255] = {"http://www.ncbi.nlm.nih.gov/omim/"};
 
 struct palInfo
 {
     char *chrom;
     int left;
     int right;
     char *rnaName;
 };
 
 /* See this NCBI web doc for more info about entrezFormat:
  * http://www.ncbi.nlm.nih.gov/entrez/query/static/linking.html */
 char *entrezFormat = "http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Search&db=%s&term=%s&doptcmdl=%s&tool=genome.ucsc.edu";
 char *entrezPureSearchFormat = "http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=PureSearch&db=%s&details_term=%s[%s] ";
 char *entrezUidFormat = "http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=%s&list_uids=%d&dopt=%s&tool=genome.ucsc.edu";
 /* db=unists is not mentioned in NCBI's doc... so stick with this usage: */
@@ -9397,30 +9398,33 @@
     	{
 	if (row[0] != NULL)
 	    {
 	    title1 = cloneString(row[0]);
     	    printf(" %s", title1);
 	    }
 	if (row[1] != NULL)
 	    {
 	    title2 = cloneString(row[1]);
     	    printf(" %s ", title2);
 	    }
 	}
     sqlFreeResult(&sr);
 
     printf("<BR>\n");
+    printf("<B>OMIM page at NCBI: ");
+    printf("<A HREF=\"%s%s\" target=_blank>", ncbiOmimUrl, itemName);
+    printf("%s</A></B><BR>", itemName);
     
     safef(query, sizeof(query),
     	  "select geneSymbol from omimGeneMap where omimId=%s;", itemName);
     sr = sqlMustGetResult(conn, query);
     row = sqlNextRow(sr);
     if (row != NULL)
     	{
 	geneSymbol = cloneString(row[0]);
 	}
     sqlFreeResult(&sr);
 
     /* get corresponding KG ID */
     safef(query, sizeof(query),
 	  "select k.transcript from knownCanonical k where k.chrom='%s' and k.chromStart=%s and k.chromEnd=%s",
 	  chrom, chromStart, chromEnd);
@@ -9597,30 +9601,33 @@
     	{
 	if (row[0] != NULL)
 	    {
 	    title1 = cloneString(row[0]);
     	    printf(": %s", title1);
 	    }
 	if (row[1] != NULL)
 	    {
 	    title2 = cloneString(row[1]);
     	    printf(" %s ", title2);
 	    }
 	}
     sqlFreeResult(&sr);
 
     printf("<BR>\n");
+    printf("<B>OMIM page at NCBI: ");
+    printf("<A HREF=\"%s%s\" target=_blank>", ncbiOmimUrl, itemName);
+    printf("%s</A></B><BR>", itemName);
     
     printf("<B>Location: </B>");
     safef(query, sizeof(query),
     	  "select location from omimGeneMap where omimId=%s;", itemName);
     sr = sqlMustGetResult(conn, query);
     row = sqlNextRow(sr);
     if (row != NULL)
     	{
 	if (row[0] != NULL)
 	    {
 	    char *locStr;
 	    locStr= cloneString(row[0]);
     	    printf("%s\n", locStr);
 	    }
 	}
@@ -9778,71 +9785,79 @@
 {
 struct sqlConnection *conn  = hAllocConn(database);
 char query[256];
 struct sqlResult *sr;
 char **row;
 char *url = tdb->url;
 char *title1 = NULL;
 char *title2 = NULL;
 char *chrom, *chromStart, *chromEnd;
 char *omimId;
 char *avId;
 char *dbSnpId;
 char *chp;
 char *seqId = NULL;
 char avString[255];
+char *avDesc = NULL;
 
 chrom      = cartOptionalString(cart, "c");
 chromStart = cartOptionalString(cart, "o");
 chromEnd   = cartOptionalString(cart, "t");
 
 avId = strdup(itemName);
 
-chp = strstr(itemName, "#");
+chp = strstr(itemName, ".");
 *chp = '\0';
 omimId = strdup(itemName);
 
 if (url != NULL && url[0] != 0)
     {
     printf("<B>OMIM Entry ");fflush(stdout);
     printf("<A HREF=\"%s%s\" target=_blank>", url, itemName);
     printf("%s</A></B>", itemName);
     safef(query, sizeof(query),
-    	  "select title1, title2,  format(seqNo/10000,4) from omimGeneMap m, omimAv v where m.omimId=%s and m.omimId=v.omimId and v.avId='%s';", itemName, avId);
+    	  "select title1, title2,  format(seqNo/10000,4), v.description from omimGeneMap m, omimAv v where m.omimId=%s and m.omimId=v.omimId and v.avId='%s';", itemName, avId);
 
     sr = sqlMustGetResult(conn, query);
     row = sqlNextRow(sr);
     if (row != NULL)
     	{
 	seqId = strdup(row[2]);
 	safef(avString, sizeof(avString), "%s#%s", omimId, seqId+2L);
         if (row[0] != NULL)
 	    {
 	    title1 = cloneString(row[0]);
     	    printf(": %s", title1);
 	    }
 	if (row[1] != NULL)
 	    {
 	    title2 = cloneString(row[1]);
     	    printf(" %s ", title2);
 	    }
+	avDesc = row[3];
 	}
     sqlFreeResult(&sr);
 
-    printf("<BR><B>Allelic Variant: ");fflush(stdout);
+    printf("<BR>\n");
+    printf("<B>OMIM page at NCBI: ");
+    printf("<A HREF=\"%s%s\" target=_blank>", ncbiOmimUrl, itemName);
+    printf("%s</A></B><BR>", itemName);
+
+    printf("<B>Allelic Variant: ");fflush(stdout);
     printf("<A HREF=\"%s%s\" target=_blank>", url, avString);
-    printf("%s</A></B>", avString);
+    printf("%s</A></B>", avId);
+    printf(" %s", avDesc);
 
     safef(query, sizeof(query),
     	  "select replStr from omimAvRepl where avId=%s;", avId);
     sr = sqlMustGetResult(conn, query);
     row = sqlNextRow(sr);
     if (row != NULL)
     	{
 	if (row[0] != NULL)
 	    {
 	    char *replStr;
 	    replStr= cloneString(row[0]);
     	    printf("<BR><B>Amino Acid Replacement:</B> %s\n", replStr);
 	    }
 	}
     sqlFreeResult(&sr);