8be39eded2ca995a387d5c47127f049c2b228932 braney Tue Jun 2 17:26:58 2015 -0700 changes to get NCBI RefSeq track to use the trackVersion table, and to grab Genbank information when available. #13673 diff --git src/hg/hgTracks/menu.c src/hg/hgTracks/menu.c index 56af8bd..3dddda3 100644 --- src/hg/hgTracks/menu.c +++ src/hg/hgTracks/menu.c @@ -6,30 +6,31 @@ #include "common.h" #include "dystring.h" #include "ensFace.h" #include "agpFrag.h" #include "ctgPos.h" #include "hCommon.h" #include "htmshell.h" #include "hash.h" #include "liftOver.h" #include "wikiLink.h" #include "web.h" #include "geoMirror.h" #include "hgTracks.h" #include "trackHub.h" #include "extTools.h" +#include "trackVersion.h" /* list of links to display in a menu */ struct hotLink { struct hotLink *next; char *name; char *url; char *id; char *mouseOver; boolean inactive; /* greyed out */ boolean external; }; static void appendLink(struct hotLink **links, char *url, char *name, char *id, boolean external) { @@ -236,52 +237,51 @@ // 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=%s&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)); + struct trackVersion *trackVersion = getTrackVersion(database, "ensGene"); if ((conn != NULL) && 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]) + else if ((trackVersion != NULL) && !isEmpty(trackVersion->version)) { char *archive = NULL; - if (ensDateReference[0] && differentWord("current", ensDateReference)) - archive = cloneString(ensDateReference); + if (!isEmpty(trackVersion->dateReference) && differentWord("current", trackVersion->dateReference)) + archive = cloneString(trackVersion->dateReference); /* 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 sqlResult *sr = NULL; char **row = NULL;