3d62aa937d248145c3b606176b9afe7cb28bf9c5
hiram
  Mon Feb 8 12:12:27 2016 -0800
print out position links for ncbiRefSeq item refs #13673

diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c
index 3e581c5..1665b9d 100644
--- src/hg/hgc/hgc.c
+++ src/hg/hgc/hgc.c
@@ -11482,67 +11482,75 @@
     printGeneCards(nrl->name);
     if (startsWith("hg", database))
         {
         printf("<b>AceView:</b> ");
         printf("<a href = \"http://www.ncbi.nlm.nih.gov/IEB/Research/Acembly/av.cgi?db=human&l=%s\" target=_blank>",
 	   nrl->name);
         printf("%s</a><br>\n", nrl->name);
         }
     }
 if ((trackVersion != NULL) && !isEmpty(trackVersion->version))
     {
     printf("<B>Annotation Release:</B> <A href=\"%s\" TARGET=_blank> %s <BR></A>", trackVersion->comment, trackVersion->version);
     }
 
 htmlHorizontalLine();
+if (differentWord("n/a", nrl->description))
+    {
     printf("Summary of <b>%s</b><br>\n%s<br>\n", nrl->name, nrl->description);
     htmlHorizontalLine();
+    }
+
+char *chrom = cartString(cart, "c");
+int start = cartInt(cart, "o");
+int end = cartInt(cart, "t");
 
-// printf("<ul>\n");
-// printf("<li>%s: %s</li>\n", "status", nrl->status);
-// printf("<li>%s: %s</li>\n", "name", nrl->name);
-// printf("<li>%s: %s</li>\n", "product", nrl->product);
-// printf("<li>%s: %s</li>\n", "mrnaAcc", nrl->mrnaAcc);
-// printf("<li>%s: %s</li>\n", "protAcc", nrl->protAcc);
-// printf("<li>%s: %s</li>\n", "locusLinkId", nrl->locusLinkId);
-// printf("<li>%s: %s</li>\n", "omimId", nrl->omimId);
-// printf("<li>%s: %s</li>\n", "hgnc", nrl->hgnc);
-// printf("<li>%s: %s</li>\n", "genbank", nrl->genbank);
-// printf("<li>%s: %s</li>\n", "pseudo", nrl->pseudo);
-// printf("<li>%s: %s</li>\n", "gbkey", nrl->gbkey);
-// printf("<li>%s: %s</li>\n", "source", nrl->source);
-// printf("<li>%s: %s</li>\n", "gene_biotype", nrl->gene_biotype);
-// printf("<li>%s: %s</li>\n", "gene_synonym", nrl->gene_synonym);
-// printf("<li>%s: %s</li>\n", "ncrna_class", nrl->ncrna_class);
-// printf("<li>%s: %s</li>\n", "note", nrl->note);
-// printf("<li>%s: %s</li>\n", "description", nrl->description);
-// printf ("</ul>\n");
-
-// could also look for nrl->mrnaAcc here too if the itemName isn't found
 struct psl *pslList = getAlignments(conn, "ncbiRefSeqPsl", itemName);
+// if the itemName isn't found, it might be found as the nrl->mrnaAcc
+if (! pslList)
+    pslList = getAlignments(conn, "ncbiRefSeqPsl", nrl->mrnaAcc);
 if (pslList)
     {
-    printf ("<h4>there is alignment for %s</h4><br>\n", itemName);
     printf("<H3>mRNA/Genomic Alignments</H3>");
-    int start = cartInt(cart, "o");
     printAlignments(pslList, start, "ncbiRefSeqPsl", "ncbiRefSeqPsl", itemName);
     }
 else
     {
     printf ("<h4>there is NO alignment for %s</h4><br>\n", itemName);
     }
 
+htmlHorizontalLine();
+
+if (hTableExists(database, "ncbiRefSeq"))
+    {
+    char query[1024];
+    sqlSafef(query, sizeof query,
+            "select txStart,txEnd,strand from ncbiRefSeq "
+            "where chrom = '%s' and name='%s' and txEnd > %d and "
+            "txStart <= %d;", chrom, itemName, start, end);
+    sr = sqlGetResult(conn, query);
+    while ((row = sqlNextRow(sr)) != NULL)
+        {
+        start = sqlUnsigned(row[0]);
+        end = sqlUnsigned(row[1]);
+        printf("<b>Name:</b> %s<br>", nrl->id);
+        printPosOnChrom(chrom, start, end, row[2], TRUE, itemName);
+        }
+    sqlFreeResult(&sr);
+    htmlHorizontalLine();
+    }
+
 printTrackHtml(tdb);
 hFreeConn(&conn);
 }
 
 void doRefGene(struct trackDb *tdb, char *rnaName)
 /* Process click on a known RefSeq gene. */
 {
 struct sqlConnection *conn = hAllocConn(database);
 int start = cartInt(cart, "o");
 int left = cartInt(cart, "l");
 int right = cartInt(cart, "r");
 char *chrom = cartString(cart, "c");
 
 boolean isXeno = sameString(tdb->table, "xenoRefGene");
 if (isXeno)