80d78123e5886eec703fd9f5390ab5909135e790
hiram
Sun Apr 28 15:02:37 2019 -0700
now listing tracks in nested JSON hierarchy refs #18869
diff --git src/hg/hubApi/hubApi.c src/hg/hubApi/hubApi.c
index b258dca..27988da 100644
--- src/hg/hubApi/hubApi.c
+++ src/hg/hubApi/hubApi.c
@@ -853,31 +853,31 @@
{
++totalAssemblyCount;
char urlReference[2048];
if (isNotEmpty(genome->twoBitPath))
{
hPrintf("
Assembly genome '%s' twoBitPath: '%s'\n", genome->name, genome->twoBitPath);
char *chromName = NULL;
struct chromInfo *ci = trackHubAllChromInfo(genome->name);
unsigned chromSize = largestChromInfo(ci, &chromName);
char sizeString[64];
sprintLongWithCommas(sizeString, chromSize);
hPrintf("Sequence count %d, largest: %s at %s bases\n", slCount(ci), chromName, sizeString);
safef(urlReference, sizeof(urlReference), " JSON example sequence output: %s:%u-%u", urlPrefix, hubTop->url, genome->name, chromName, chromSize/4, (chromSize/4)+128, chromName, chromSize/4, (chromSize/4)+128);
hPrintf("%s\n", urlReference);
}
- safef(urlReference, sizeof(urlReference), " JSON example list tracks output", urlPrefix, hubTop->url, genome->name);
+ safef(urlReference, sizeof(urlReference), " JSON example list tracks output", urlPrefix, hubTop->url, genome->name, trackLeavesOnly ? ";trackLeavesOnly=1" : "");
hPrintf("%s\n", urlReference);
hubInfo("organism", genome->organism);
hubInfo("name", genome->name);
hubInfo("description", genome->description);
hubInfo("groups", genome->groups);
hubInfo("defaultPos", genome->defaultPos);
hubInfo("trackDbFile", genome->trackDbFile);
hubAssemblySettings(hubTop, genome);
if (measureTiming)
{
long thisTime = clock1000();
hPrintf("processing time %s: %ld millis\n", genome->name, thisTime - lastTime);
hPrintf("
\n");
}
if (timeOutReached())
@@ -977,31 +977,31 @@
static void tracksForUcscDb(char *db)
/* scan the specified database for all tracks */
{
struct hash *countTracks = hashNew(0);
char *chromName = NULL;
int chromCount = 0;
unsigned chromSize = largestChrom(db, &chromName, &chromCount);
char countString[64];
sprintLongWithCommas(countString, chromCount);
char sizeString[64];
sprintLongWithCommas(sizeString, chromSize);
hPrintf("Tracks in UCSC genome: '%s', chrom count: %s, longest chrom: %s : %s
\n", db, countString, chromName, sizeString);
char urlReference[2048];
-safef(urlReference, sizeof(urlReference), " JSON output: list tracks", urlPrefix, db);
+safef(urlReference, sizeof(urlReference), " JSON output: list tracks", urlPrefix, db, trackLeavesOnly ? ";trackLeavesOnly=1" : "");
hPrintf("%s
\n", urlReference);
struct trackDb *tdbList = obtainTdb(NULL, db);
struct trackDb *tdb;
hPrintf("\n");
for (tdb = tdbList; tdb != NULL; tdb = tdb->next )
{
countOneTdb(db, tdb, countTracks, chromName, chromSize, NULL);
if (timeOutReached())
break;
}
int trackCount = ptToInt(hashFindVal(countTracks, "track count"));
/* elCount - 1 since the 'track count' element isn't a track */
hPrintf(" - %d total tracks counted, %d different track types
\n", trackCount, countTracks->elCount - 1);
if (countTracks->elCount)