57e8819684287a67e5a9030cccacad31a0ce4e68 hiram Tue Jul 2 11:03:32 2013 -0700 was missing the Ensembl blue bar nav help for all assemblies with ucscToEnsembl table refs #11114 diff --git src/hg/hgTracks/menu.c src/hg/hgTracks/menu.c index f211460..ffa4d41 100644 --- src/hg/hgTracks/menu.c +++ src/hg/hgTracks/menu.c @@ -125,123 +125,125 @@ { int agpStart = winStart - agpItem->chromStart; int agpEnd = agpStart + winEnd - winStart; printEnsemblAnchor(database, archive, agpItem->frag, agpStart, agpEnd, links); } } agpFragFree(&agpItem); // the one we maybe used } void printMenuBar() /* Put up the menu bar. */ { struct hotLink *link, *links = NULL; int i, len; +struct sqlConnection *conn = hAllocConn(database); char *menuStr, buf[4096], uiVars[1024]; safef(uiVars, sizeof(uiVars), "%s=%u", cartSessionVarName(), cartSessionId(cart)); menuStr = menuBar(cart); // Create top items in view menu safef(buf, sizeof(buf), "../cgi-bin/hgTracks?%s&hgt.psOutput=on", uiVars); appendLink(&links, buf, "PDF/PS", "pdfLink", FALSE); safef(buf, sizeof(buf), "%s&o=%d&g=getDna&i=mixed&c=%s&l=%d&r=%d&db=%s&%s", hgcNameAndSettings(), winStart, chromName, winStart, winEnd, database, uiVars); appendLink(&links, buf, "DNA", "dnaLink", FALSE); safef(buf, sizeof(buf), "../cgi-bin/hgConvert?hgsid=%d&db=%s", cartSessionId(cart), database); appendLink(&links, buf, "in other Genomes (Convert)", "convertMenuLink", FALSE); // Add link-outs to other dbs as appropriate for this assembly if (differentWord(database,"susScr2")) { /* Print Ensembl anchor for latest assembly of organisms we have * supported by Ensembl == if versionString from trackVersion exists */ char ensVersionString[256], ensDateReference[256]; ensGeneTrackVersion(database, ensVersionString, ensDateReference, sizeof(ensVersionString)); - if (sameWord(database,"hg19")) + if (sqlTableExists(conn, UCSC_TO_ENSEMBL)) + printEnsemblAnchor(database, NULL, chromName, winStart, winEnd, &links); + else if (sameWord(database,"hg19")) { printEnsemblAnchor(database, NULL, chromName, winStart, winEnd, &links); } else if (sameWord(database,"hg18")) { printEnsemblAnchor(database, "ncbi36", chromName, winStart, winEnd, &links); } else if (sameWord(database,"oryCun2") || sameWord(database,"anoCar2") || sameWord(database,"calJac3")) { printEnsemblAnchor(database, NULL, chromName, winStart, winEnd, &links); } else if (ensVersionString[0]) { char *archive = NULL; if (ensDateReference[0] && differentWord("current", ensDateReference)) archive = cloneString(ensDateReference); /* Can we perhaps map from a UCSC random chrom to an Ensembl contig ? */ if (isUnknownChrom(database, chromName)) { // which table to check char *ctgPos = "ctgPos"; if (sameWord(database,"fr2")) fr2ScaffoldEnsemblLink(archive, &links); else if (hTableExists(database, UCSC_TO_ENSEMBL)) printEnsemblAnchor(database, archive, chromName, winStart, winEnd, &links); else if (hTableExists(database, ctgPos)) /* see if we are entirely within a single contig */ { - struct sqlConnection *conn = hAllocConn(database); struct sqlResult *sr = NULL; char **row = NULL; char query[256]; sqlSafef(query, sizeof(query), "select * from %s where chrom = '%s' and chromStart<%u and chromEnd>%u", ctgPos, chromName, winEnd, winStart); sr = sqlGetResult(conn, query); int itemCount = 0; struct ctgPos *ctgItem = NULL; while ((row = sqlNextRow(sr)) != NULL) { ctgPosFree(&ctgItem); // if there is a second one ctgItem = ctgPosLoad(row); ++itemCount; if (itemCount > 1) break; } sqlFreeResult(&sr); - hFreeConn(&conn); if (1 == itemCount) { // verify *entirely* within single contig if ((winEnd <= ctgItem->chromEnd) && (winStart >= ctgItem->chromStart)) { int ctgStart = winStart - ctgItem->chromStart; int ctgEnd = ctgStart + winEnd - winStart; printEnsemblAnchor(database, archive, ctgItem->contig, ctgStart, ctgEnd, &links); } } ctgPosFree(&ctgItem); // the one we maybe used } } else { printEnsemblAnchor(database, archive, chromName, winStart, winEnd, &links); } } } +hFreeConn(&conn); if (sameString(database, "hg18")) { safef(buf, sizeof(buf), "http://www.ncbi.nlm.nih.gov/mapview/maps.cgi?taxid=9606&build=previous&CHR=%s&BEG=%d&END=%d", skipChr(chromName), winStart+1, winEnd); appendLink(&links, buf, "NCBI", "ncbiLink", TRUE); } else if (sameString(database, "hg19")) { safef(buf, sizeof(buf), "http://www.ncbi.nlm.nih.gov/mapview/maps.cgi?taxid=9606&CHR=%s&BEG=%d&END=%d", skipChr(chromName), winStart+1, winEnd); appendLink(&links, buf, "NCBI", "ncbiLink", TRUE); } else if (sameString(database, "mm8")) {