e5d963606c378c0f08cb946c3a9393847dd6ce22 kate Wed Oct 7 15:23:41 2020 -0700 Add bigBed to GeneReviews to support mouseOver with diseases. refs #19841 diff --git src/hg/hgc/geneReviewsClick.c src/hg/hgc/geneReviewsClick.c index 3e06283..97021f1 100644 --- src/hg/hgc/geneReviewsClick.c +++ src/hg/hgc/geneReviewsClick.c @@ -1,132 +1,118 @@ /* geneReviewsClick - hgc code to display geneReviews track item detail page */ /* Copyright (C) 2014 The Regents of the University of California * See README in this or parent directory for licensing information. */ #include "common.h" #include "hgc.h" #include "geneReviewsClick.h" void doGeneReviews(struct trackDb *tdb, char *itemName) /* generate the detail page for geneReviews */ { -struct sqlConnection *conn = hAllocConn(database); -char *table = tdb->table; -int start = cartInt(cart, "o"); -int num = 4; - genericHeader(tdb, itemName); - char query[512]; - char **row; - struct bed *bed; - boolean hasBin = TRUE; - struct sqlResult *sr; - - sqlSafef(query, sizeof query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d", - table, itemName, seqName, start); - sr = sqlGetResult(conn, query); - while ((row = sqlNextRow(sr)) != NULL) - { - bed = bedLoadN(row+hasBin, num); - printf("<B>Link to Gene Reviews:</B> <a href='https://www.ncbi.nlm.nih.gov/books/NBK1116/?term=%s' target=_blank>%s</a><BR>\n", bed->name, bed->name); - printPos(bed->chrom, bed->chromStart, bed->chromEnd, NULL, TRUE, bed->name); - } +struct sqlConnection *conn = hAllocConn(database); +int start = cartInt(cart, "o"); +int end = cartInt(cart, "t"); +printf("<B>Link to Gene Reviews:</B> " + "<a href='https://www.ncbi.nlm.nih.gov/books/NBK1116/?term=%s' target=_blank>%s</a><BR>\n", + itemName, itemName); printPos(seqName, start, end, NULL, TRUE, itemName); prGeneReviews(conn, itemName); printf("<BR>"); printTrackHtml(tdb); hFreeConn(&conn); } void prGeneReviews(struct sqlConnection *conn, char *itemName) /* print GeneReviews associated to this item Note: this print function has been replaced by addGeneReviewToBed.pl which print the same information to the field 5 of bigBed file */ { struct sqlResult *sr; char **row; char query[512]; int i; char *clickMsg = "Click GR short name link to find the GeneReviews article on NCBI Bookshelf."; char *spacer = " "; boolean firstTime = TRUE; if (!sqlTableExists(conn, "geneReviewsDetail")) return; sqlSafef(query, sizeof(query), "select grShort, NBKid, grTitle from geneReviewsDetail where geneSymbol='%s'", itemName); sr = sqlGetResult(conn, query); while ((row = sqlNextRow(sr)) != NULL) { char *grShort = *row++; char *NBKid = *row++; char *grTitle = *row++; if (firstTime) { printf("<BR><B> GeneReviews available for %s:</B> (%s)<BR>",itemName,clickMsg); firstTime = FALSE; printf("<PRE><TT>"); // #123456789-123456789-123456789-123456789-123456789-123456789- printf("GR short name Disease name<BR>"); printf("---------------------------------------------------------"); printf("--------------------<BR>"); } printf("<A HREF=\"https://www.ncbi.nlm.nih.gov/books/%s\" TARGET=_blank><B>%s</B></A>", NBKid, grShort); if (strlen(grShort) <= 20) { for (i = 0; i < 20-strlen(grShort); i ++ ) { printf("%s", " " ); } } printf("%s%s<BR>", spacer, grTitle); // printf("<A HREF=\"https://www.ncbi.nlm.nih.gov/books/%s\" TARGET=_blank><B>%s</B></A>%s%s<BR>", NBKid, NBKid, spacer, grTitle); } /* end while */ printf("</TT></PRE>"); sqlFreeResult(&sr); } /* end of prGeneReviews */ void prGRShortRefGene(char *itemName) /* print GeneReviews short label associated to this refGene item */ { struct sqlConnection *conn = hAllocConn(database); struct sqlResult *sr; char **row; char query[512]; boolean firstTime = TRUE; if (!sqlTableExists(conn, "geneReviewsDetail")) return; sqlSafef(query, sizeof(query), "select grShort, NBKid, grTitle from geneReviewsDetail where geneSymbol='%s'", itemName); sr = sqlGetResult(conn, query); while ((row = sqlNextRow(sr)) != NULL) { char *grShort = *row++; char *NBKid = *row++; char *grTitle = *row++; if (firstTime) { printf("<B>Related GeneReviews disease(s): </B>"); firstTime = FALSE; printf("<A HREF=\"https://www.ncbi.nlm.nih.gov/books/%s\" TARGET=_blank><B>%s</B></A>", NBKid, grShort); printf(" ("); printf("%s", grTitle); printf(")"); } else { printf(", "); printf("<A HREF=\"https://www.ncbi.nlm.nih.gov/books/n/gene/%s\" TARGET=_blank><B>%s</B></A>", grShort, grShort); printf(" ("); printf("%s", grTitle); printf(")"); } } printf("<BR>"); sqlFreeResult(&sr); } /* end of prGRShortRefGene */