7bc24686024ec14d351ab208b5179ab251d7c463 tdreszer Fri Oct 14 16:34:15 2011 -0700 Major work on bedFilt, psl and wigMaf to make them properly composite ready. diff --git src/hg/hgc/mafClick.c src/hg/hgc/mafClick.c index 39337d4..dd94108 100644 --- src/hg/hgc/mafClick.c +++ src/hg/hgc/mafClick.c @@ -654,57 +654,63 @@ conservationStatsLink(tdb, "Conservation score statistics", consWiggles->table); } else if (wigCount > 1) { /* multiple wiggles. List all that have been turned on with * checkboxes */ /* Scan for cart variables -- do any exist, are any turned on ? */ boolean wigSet = FALSE; boolean wigOn = FALSE; for (consWig = consWiggles; consWig != NULL; consWig = consWig->next) { - char *wigVar = wigMafWiggleVar(tdb, consWig); - if (cartVarExists(cart, wigVar)) + char *wigVar = wigMafWiggleVar(tdb->track, consWig); + char *wigVarSuffix = wigVar + strlen (tdb->track) + 1; + if (cartVarExistsAnyLevel(cart, tdb, FALSE, wigVarSuffix)) { wigSet = TRUE; - if (cartBoolean(cart, wigVar)) + if (cartBooleanClosestToHome(cart, tdb, FALSE, wigVarSuffix)) wigOn = TRUE; } } /* If there are no cart vars, turn on the first (default) wig */ if (!wigSet) { - cartSetBoolean(cart, wigMafWiggleVar(tdb, consWiggles), TRUE); + char *prefix = tdb->track; // use when setting things to the cart + if (tdbIsContainerChild(tdb)) + prefix = tdbGetContainer(tdb)->track; + + cartSetBoolean(cart, wigMafWiggleVar(prefix, consWiggles), TRUE); wigOn = TRUE; } if (wigOn) { boolean first = TRUE; for (consWig = consWiggles; consWig != NULL; consWig = consWig->next) { if (first) { printf("Conservation score statistics:"); first = FALSE; } - if (cartUsualBoolean(cart, wigMafWiggleVar(tdb, consWig), - FALSE)) + char *wigVar = wigMafWiggleVar(tdb->track, consWig); + char *wigVarSuffix = wigVar + strlen (tdb->track) + 1; + if (cartUsualBooleanClosestToHome(cart, tdb, FALSE, wigVarSuffix,FALSE)) { printf("  "); subChar(consWig->uiLabel, '_', ' '); conservationStatsLink(tdb, consWig->uiLabel, consWig->table); } } } } puts("

\n"); /* no alignment to display when in visibilities where only wiggle is shown */ char *vis = cartOptionalString(cart, tdb->track); if (vis) { @@ -1202,32 +1208,33 @@ char *showVarVal = cartUsualString(cart, showVarName, "all"); boolean onlyDiff = sameWord(showVarVal, "diff"); /* add links for conservation score statistics */ boolean first = TRUE; consWiggles = wigMafWiggles(database, tdb); for (consWig = consWiggles; consWig != NULL; consWig = consWig->next) { if (first) printf("\n

"); if (sameString(consWig->leftLabel, DEFAULT_CONS_LABEL)) conservationStatsLink(tdb, "Conservation score statistics", consWig->table); else { - if (!cartCgiUsualBoolean(cart, - wigMafWiggleVar(tdb, consWig), FALSE)) + char *wigVar = wigMafWiggleVar(tdb->track, consWig); + char *wigVarSuffix = wigVar + strlen (tdb->track) + 1; + if (!cartUsualBooleanClosestToHome(cart, tdb, FALSE, wigVarSuffix,FALSE)) continue; if (first) { printf("\n

Conservation score statistics:"); first = FALSE; } printf("  "); subChar(consWig->uiLabel, '_', ' '); conservationStatsLink(tdb, consWig->uiLabel, consWig->table); } } puts("

\n"); #ifdef REVERSESTRAND