f8de331fce87ec0df45e71399f7450c0dd69d189 braney Sat May 6 17:31:44 2017 -0700 on going work on custom composites diff --git src/hg/hgComposite/hgComposite.c src/hg/hgComposite/hgComposite.c index bfe17c0..5c56e32 100644 --- src/hg/hgComposite/hgComposite.c +++ src/hg/hgComposite/hgComposite.c @@ -156,31 +156,30 @@ static struct composite *getCompositeList(char *db, char *hubName, struct hash *nameHash) { struct composite *compositeList = NULL; if (hubName != NULL) { // read hub to find names of composites and add them to compositeList struct trackDb *tdbList = trackDbFromRa(hubName, NULL); struct trackDb *tdb, *tdbNext; struct composite *composite = NULL; struct track *track = NULL; for(tdb = tdbList; tdb; tdb = tdbNext) { - printf("adding %s\n", tdb->track); hashAdd(nameHash, tdb->track, tdb); tdbNext = tdb->next; trackDbFieldsFromSettings(tdb); if (trackDbSetting(tdb, "compositeTrack")) { AllocVar(composite); slAddHead(&compositeList, composite); composite->name = tdb->track; composite->shortLabel = tdb->shortLabel; } else { if (composite == NULL) errAbort("track not in composite"); AllocVar(track); @@ -235,33 +234,34 @@ fprintf(f, "\tparent %s\n",parent); fprintf(f, "\tcolor %d,%d,%d\n", (color >> 16) & 0xff,(color >> 8) & 0xff,color & 0xff); fprintf(f, "\n"); } static void outComposite(FILE *f, struct composite *composite) { char *parent = composite->name; char *shortLabel = composite->name; char *longLabel = composite->name; fprintf(f,"track %s\n\ shortLabel %s\n\ compositeTrack on\n\ aggregate none\n\ longLabel %s\n\ +%s on\n\ #container multiWig\n\ type wig \n\ -visibility full\n\n", parent, shortLabel, longLabel); +visibility full\n\n", parent, shortLabel, longLabel, CUSTOM_COMPOSITE_SETTING); } static struct trackDb *findTrack(char *name, struct trackDb *fullTrackList) { struct trackDb *tdb; for (tdb = fullTrackList; tdb != NULL; tdb = tdb->next) { if (sameString(name, tdb->track)) return tdb; } errAbort("cannot find track"); return NULL; } static void outHubHeader(FILE *f, char *db, char *hubName) @@ -275,32 +275,31 @@ email braney@soe.ucsc.edu\n\ descriptionUrl hub.html\n\n", hubFile); fprintf(f,"genome %s\n\ trackDb %s\n\n", db, hubFile); } static char *getHubName(char *db) { struct tempName hubTn; char buffer[4096]; safef(buffer, sizeof buffer, "%s-%s", customCompositeCartName, db); char *hubName = cartOptionalString(cart, buffer); if (hubName == NULL) { - //trashDirDateFile(&hubTn, "hgComposite", "hub", ".txt"); - trashDirDateFile(&hubTn, "brTest", "hub", ".txt"); + trashDirDateFile(&hubTn, "hgComposite", "hub", ".txt"); hubName = cloneString(hubTn.forCgi); cartSetString(cart, buffer, hubName); FILE *f = mustOpen(hubName, "a"); outHubHeader(f, db, hubName); fclose(f); cartSetString(cart, "hubUrl", hubName); cartSetString(cart, hgHubConnectRemakeTrackHub, hubName); } return hubName; } //static void outputCompositeHub(char *db, char *hubName, struct trackDb *fullTrackList, struct composite *compositeList, struct hash *nameHash) static void outputCompositeHub(char *db, char *hubName, struct composite *compositeList, struct hash *nameHash) { @@ -695,44 +694,42 @@ if (trackCanBeAdded(tdb)) { slAddHead(wigList, tdb); hashStore(hash, tdb->grp); } } return hash; } char *makeUnique(struct hash *nameHash, struct trackDb *tdb) { if (hashLookup(nameHash, tdb->track) == NULL) { - printf("adding %s\n", tdb->track); hashAdd(nameHash, tdb->track, tdb); return tdb->track; } unsigned count = 0; char buffer[4096]; for(;; count++) { safef(buffer, sizeof buffer, "%s%d", tdb->track, count); if (hashLookup(nameHash, buffer) == NULL) { - printf("adding %s\n", buffer); hashAdd(nameHash, buffer, tdb); return cloneString(buffer); } } return NULL; } int main(int argc, char *argv[]) /* Process command line. */ { long enteredMainTime = clock1000(); if (hIsPrivateHost()) pushCarefulMemHandler(LIMIT_2or6GB); @@ -765,31 +762,30 @@ slReverse(&groupList); /* struct grp *grpList; struct trackDb *tdbList = hubCollectTracks(database, &grpList); addWigs(&wigTracks, tdbList); */ char *hubName = getHubName(database); struct hash *nameHash = newHash(5); struct composite *compositeList = getCompositeList(database, hubName, nameHash); struct composite *currentComposite = NULL; char *currentCompositeName = cartOptionalString(cart, hgsCurrentComposite); -printf("currentcomposite name %s\n", currentCompositeName); if (currentCompositeName != NULL) { for (currentComposite = compositeList; currentComposite; currentComposite = currentComposite->next) if (sameString(currentComposite->name, currentCompositeName)) break; } if (currentComposite == NULL) currentComposite = compositeList; char *newCompositeName = cartOptionalString(cart, hgsNewCompositeName); if (newCompositeName != NULL) { if (isEmpty(newCompositeName))