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;