a623f8b7d5f5d7ad88a33e7a0cba4a91f76800ac hiram Tue Feb 26 17:53:14 2019 -0800 catch up list functions to recent revisions to getting trackDb refs #18869 diff --git src/hg/hubApi/hubApi.c src/hg/hubApi/hubApi.c index 45a44b1..77d64ed 100644 --- src/hg/hubApi/hubApi.c +++ src/hg/hubApi/hubApi.c @@ -316,33 +316,33 @@ else { if (startsWithWord("bigBed", tdb->type)) hPrintf(" <li>%s : %s : %ld chroms : %ld item count</li>\n", tdb->track, tdb->type, chromCount, itemCount); else if (startsWithWord("bigWig", tdb->type)) hPrintf(" <li>%s : %s : %ld chroms : %ld bases covered</li>\n", tdb->track, tdb->type, chromCount, itemCount); else hPrintf(" <li>%s : %s : %ld chroms : %ld count</li>\n", tdb->track, tdb->type, chromCount, itemCount); } } else { if (compositeContainer) hPrintf(" <li>%s : %s : composite track container</li>\n", tdb->track, tdb->type); else if (compositeView) - hPrintf(" <li>%s : %s : composite view</li>\n", tdb->track, tdb->type); + hPrintf(" <li>%s : %s : composite view of parent: %s</li>\n", tdb->track, tdb->type, tdb->parent->track); else if (superChild) - hPrintf(" <li>%s : %s : superTrack child</li>\n", tdb->track, tdb->type); + hPrintf(" <li>%s : %s : superTrack child of parent: %s</li>\n", tdb->track, tdb->type, tdb->parent->track); else if (! depthSearch) hPrintf(" <li>%s : %s : %s</li>\n", tdb->track, tdb->type, bigDataUrl); else hPrintf(" <li>%s : %s</li>\n", tdb->track, tdb->type); } if (allTrackSettings) { hPrintf(" <ul>\n"); trackSettings(tdb, countTracks); /* show all settings */ hPrintf(" </ul>\n"); } return; } /* static void countOneTdb(struct trackDb *tdb, * char *bigDataIndex, struct hash *countTracks) */ @@ -376,50 +376,51 @@ { int prevCount = ptToInt(hashFindVal(trackCounter, hel->name)); if (differentStringNullOk("track count", hel->name)) totalTracks += ptToInt(hel->val); hashReplace(trackCounter, hel->name, intToPt(prevCount + ptToInt(hel->val))); hPrintf(" <li>%d - %s</li>\n", ptToInt(hel->val), hel->name); } hPrintf(" </ol>\n"); } hPrintf(" </ul>\n"); } else hPrintf(" <li>no trackTopDb</li>\n"); } /* static struct trackDb *hubTrackList() */ -static void assemblySettings(struct trackHubGenome *genome) +static struct trackDb *assemblySettings(struct trackHubGenome *genome) /* display all the assembly 'settingsHash' */ { struct trackDb *tdb = trackHubTracksForGenome(genome->trackHub, genome); tdb = trackDbLinkUpGenerations(tdb); hPrintf(" <ul>\n"); struct hashEl *hel; struct hashCookie hc = hashFirst(genome->settingsHash); while ((hel = hashNext(&hc)) != NULL) { hPrintf(" <li>%s : %s</li>\n", hel->name, (char *)hel->val); if (sameWord("trackDb", hel->name)) /* examine the trackDb structure */ { hubTrackList(tdb, genome); } if (timeOutReached()) break; } hPrintf(" </ul>\n"); +return tdb; } struct slName *genomeList(struct trackHub *hubTop, struct trackDb **dbTrackList, char *selectGenome) /* follow the pointers from the trackHub to trackHubGenome and around * in a circle from one to the other to find all hub resources * return slName list of the genomes in this track hub * optionally, return the trackList from this hub for the specified genome */ { struct slName *retList = NULL; long totalAssemblyCount = 0; struct trackHubGenome *genome = hubTop->genomeList; hPrintf("<h4>genome sequences (and tracks) present in this track hub</h4>\n"); @@ -431,31 +432,33 @@ { if ( differentStringNullOk(selectGenome, genome->name) ) continue; } ++totalAssemblyCount; struct slName *el = slNameNew(genome->name); slAddHead(&retList, el); if (genome->organism) { hPrintf("<li>%s - %s - %s</li>\n", genome->organism, genome->name, genome->description); } else { /* can there be a description when organism is empty ? */ hPrintf("<li>%s</li>\n", genome->name); } - assemblySettings(genome); + struct trackDb *tdb = assemblySettings(genome); + if (dbTrackList) + *dbTrackList = tdb; if (measureTiming) { long thisTime = clock1000(); hPrintf("<em>processing time %s: %ld millis</em><br>\n", genome->name, thisTime - lastTime); } if (timeOutReached()) break; } if (trackCounter->elCount) { hPrintf(" <li>total genome assembly count: %ld</li>\n", totalAssemblyCount); hPrintf(" <li>%ld total tracks counted, %d different track types:</li>\n", totalTracks, trackCounter->elCount); hPrintf(" <ol>\n"); struct hashEl *hel, *helList = hashElListHash(trackCounter); slSort(&helList, hashElCmpIntValDesc);