2ab3a960e1a685f693b6e26d95dae89059784380 chinhli Thu Jan 3 21:43:18 2013 -0800 Finished redmine track #9629 ExonJunction Primers (qPCR Primers) track. diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c index aca2391..7cab8d5 100644 --- src/hg/hgc/hgc.c +++ src/hg/hgc/hgc.c @@ -23873,40 +23873,55 @@ else { table = ct->dbTableName; conn = hAllocConn(CUSTOM_TRASH); bedPart = ct->fieldCount - 2; /* header handled by custom track handler */ } /* postion, band, genomic size */ escName = sqlEscapeString(itemName); safef(query, sizeof(query), "select * from %s where chrom = '%s' and chromStart = %d and chromEnd = %d and name = '%s'", table, chrom, start, end, escName); sr = sqlGetResult(conn, query); if ((row = sqlNextRow(sr)) != NULL) { + if (sameString("exonJunctionPrimers", table)) + { + char *url; + url = tdb->url; + r = bedDetailLoadWithGaps(row, bedPart+4); + bedPrintPos((struct bed*)r, bedPart, tdb); + if ((r->id != NULL) && (r->description != NULL) && (url != NULL)) + { + printf("%s: ", r->description); + printf("%s
",url, r->id, r->id); + } + } + else + { r = bedDetailLoadWithGaps(row, bedPart+2); bedPrintPos((struct bed*)r, bedPart, tdb); if (r->id != NULL) { printf("ID: %s
\n", r->id); printCustomUrl(tdb, r->id, TRUE); } if (r->description != NULL) printf("%s
\n", r->description); } + } sqlFreeResult(&sr); /* do not print this for custom tracks, they do this later */ if (ct == NULL) printTrackHtml(tdb); bedDetailFree(&r); freeMem(escName); hFreeConn(&conn); } struct trackDb *tdbForTableArg() /* get trackDb for track passed in table arg */ { char *table = cartString(cart, "table"); struct trackDb *tdb = hashFindVal(trackHash, table); @@ -24005,30 +24020,37 @@ printf(" ("); printf("%s", diseaseName, diseaseName); printf(")"); } else { printf(", "); printf("%s", grShort, grShort); printf(" ("); printf("%s", diseaseName, diseaseName); printf(")"); } } printf("
"); sqlFreeResult(&sr); } /* end of prGRShortRefGene */ +void doQPCRPrimers(struct trackDb *tdb, char *itemName) +/* Put up page for QPCRPrimers. */ +{ +genericHeader(tdb, itemName); +doBedDetail(tdb, NULL, itemName); +} /* end of doQPCRPrimers */ + void doMiddle() /* Generate body of HTML. */ { char *track = cartString(cart, "g"); char *item = cartOptionalString(cart, "i"); char *parentWigMaf = cartOptionalString(cart, "parentWigMaf"); struct trackDb *tdb = NULL; if (hIsGisaidServer()) { validateGisaidUser(cart); } /* database and organism are global variables used in many places */ @@ -25221,30 +25243,35 @@ { doBedDetail(tdb, NULL, item); } else if (startsWith("numtS", table)) { doNumtS(tdb, item); } else if (startsWith("cosmic", table)) { doCosmic(tdb, item); } else if (sameString("geneReviews", table)) { doGeneReviews(tdb, item); } +else if (startsWith("exonJunctionPrimers", table)) + { + doQPCRPrimers(tdb, item); + } + else if (tdb != NULL) { genericClickHandler(tdb, item, NULL); } else { cartWebStart(cart, database, "%s", track); printf("Sorry, clicking there doesn't do anything yet (%s).", track); } /* End of 1000+ line dispatch on table involving 100+ if/elses. */ cartHtmlEnd(); } struct hash *orgDbHash = NULL;