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)