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(); }