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/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c index 42333d7..7e76ed1 100644 --- src/hg/hgTrackUi/hgTrackUi.c +++ src/hg/hgTrackUi/hgTrackUi.c @@ -1850,31 +1850,31 @@ void refGeneUI(struct trackDb *tdb) /* Put up refGene or xenoRefGene gene ID track controls, with checkboxes */ { /* Figure out if OMIM database is available. */ int omimAvail = 0; if (sameString(tdb->track, "refGene")) { struct sqlConnection *conn = hAllocConn(database); char query[128]; sqlSafef(query, sizeof(query), "select refLink.omimId from refLink, refGene where refLink.mrnaAcc = refGene.name and refLink.omimId != 0 limit 1"); omimAvail = sqlQuickNum(conn, query); hFreeConn(&conn); } /* Put up label line - boxes for gene, accession or maybe OMIM. */ -printf("Label: "); +printf("
Label: "); labelMakeCheckBox(tdb, "gene", "gene", TRUE); labelMakeCheckBox(tdb, "acc", "accession", FALSE); if (omimAvail != 0) { char sym[32]; safef(sym, sizeof(sym), "omim%s", cartString(cart, "db")); labelMakeCheckBox(tdb, sym, "OMIM ID", FALSE); } printf("
\n"); /* Put up noncoding option and codon coloring stuff. */ hideNoncodingOpt(tdb); baseColorDrawOptDropDown(cart, tdb); printf("
\n"); @@ -3106,47 +3106,56 @@ if (tdbIsContainer(tdb)) { safef(setting,sizeof(setting),"%s.%s",tdb->track,RESET_TO_DEFAULTS); // NOTE: if you want track vis to not be reset, move to after vis dropdown if (1 == cartUsualInt(cart, setting, 0)) cartRemoveAllForTdbAndChildren(cart,tdb); else if (!ajax) // Overkill on !ajax, because ajax shouldn't be called for a composite cartTdbTreeReshapeIfNeeded(cart,tdb); } printf("
\n\n", hgTracksName(), cartUsualString(cart, "formMethod", "POST")); cartSaveSession(cart); if (sameWord(tdb->track,"ensGene")) { - char ensVersionString[256]; - char ensDateReference[256]; char longLabel[256]; - ensGeneTrackVersion(database, ensVersionString, ensDateReference, - sizeof(ensVersionString)); - if (ensVersionString[0]) + struct trackVersion *trackVersion = getTrackVersion(database, tdb->track); + if ((trackVersion != NULL) && !isEmpty(trackVersion->version)) { - if (ensDateReference[0] && differentWord("current", ensDateReference)) - safef(longLabel, sizeof(longLabel), "Ensembl Gene Predictions - archive %s - %s", ensVersionString, ensDateReference); + if (!isEmpty(trackVersion->dateReference) && differentWord("current", trackVersion->dateReference)) + safef(longLabel, sizeof(longLabel), "Ensembl Gene Predictions - archive %s - %s", trackVersion->version, trackVersion->dateReference); else - safef(longLabel, sizeof(longLabel), "Ensembl Gene Predictions - %s", ensVersionString); + safef(longLabel, sizeof(longLabel), "Ensembl Gene Predictions - %s", trackVersion->version); } else safef(longLabel, sizeof(longLabel), "%s", tdb->longLabel); printf("%s%s\n", longLabel, tdbIsSuper(tdb) ? " Tracks" : ""); } +else if (sameWord(tdb->track, "ncbiGene")) + { + struct trackVersion *trackVersion = getTrackVersion(database, "ncbiRefSeq"); + char longLabel[1024]; + if ((trackVersion != NULL) && !isEmpty(trackVersion->version)) + { + safef(longLabel, sizeof(longLabel), "%s - Annotation Release %s", tdb->longLabel, trackVersion->version); + } + else + safef(longLabel, sizeof(longLabel), "%s", tdb->longLabel); + printf("%s%s\n", longLabel, tdbIsSuper(tdb) ? " Tracks" : ""); + } else { if (trackDbSetting(tdb, "wgEncode")) printf(""); printf("%s%s\n", tdb->longLabel, tdbIsSuper(tdb) ? " Tracks" : ""); } /* Print link for parent track */ if (!ajax) { if (tdb->parent) { char *encodedMapName = cgiEncode(tdb->parent->track); printf("  "