dbbc85fe1ded040b85b123282425606bba9674f8
braney
Sat Apr 20 13:44:01 2013 -0700
polishing some of the snake track code, added support for HAL snakes in assembly hubs. refs #10637
diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c
index 617a6b4..1154054 100644
--- src/hg/hgc/hgc.c
+++ src/hg/hgc/hgc.c
@@ -23988,30 +23988,55 @@
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 doSnakeClick(struct trackDb *tdb, char *itemName)
+/* Put up page for snakes. */
+{
+genericHeader(tdb, itemName);
+char *otherSpecies = trackHubSkipHubName(tdb->table) + strlen("snake");
+char *hubName = cloneString(database);
+char *ptr = strchr(hubName + 4, '_');
+*ptr = 0;
+char otherDb[4096];
+char *qName = cartOptionalString(cart, "qName");
+int qs = atoi(cartOptionalString(cart, "qs"));
+int qe = atoi(cartOptionalString(cart, "qe"));
+int qWidth = atoi(cartOptionalString(cart, "qWidth"));
+safef(otherDb, sizeof otherDb, "%s_%s", hubName, otherSpecies);
+
+
+printf("Link to block in other species
\n", otherDb, qName, qs, qe,hubName,trackHubSkipHubName(database));
+
+int qCenter = (qs + qe) / 2;
+int newQs = qCenter - qWidth/2;
+int newQe = qCenter + qWidth/2;
+printf("Link to same window size in other species
\n", otherDb, qName, newQs, newQe,hubName,trackHubSkipHubName(database));
+}
+
+
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 */
@@ -25208,30 +25233,34 @@
{
doNumtS(tdb, item);
}
else if (startsWith("cosmic", table))
{
doCosmic(tdb, item);
}
else if (sameString("geneReviews", table))
{
doGeneReviews(tdb, item);
}
else if (startsWith("qPcrPrimers", table))
{
doQPCRPrimers(tdb, item);
}
+else if (isHubTrack(table) && startsWith("snake", trackHubSkipHubName(table)))
+ {
+ doSnakeClick(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();
}