672d35a053738c40cd6fc026e1d10a109c102f37 braney Wed Aug 31 15:58:17 2022 -0700 remove some of the multiwig options for sequence logo tracks diff --git src/hg/lib/hui.c src/hg/lib/hui.c index bdbc419..a160a29 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -5809,33 +5809,34 @@ freeMem(typeLine); wigFetchTransformFuncWithCart(cart,tdb,name, &transformFunc); wigFetchAlwaysZeroWithCart(cart,tdb,name, &alwaysZero); wigFetchHorizontalGridWithCart(cart,tdb,name, &horizontalGrid); wigFetchAutoScaleWithCart(cart,tdb,name, &autoScale); wigFetchGraphTypeWithCart(cart,tdb,name, &lineBar); wigFetchWindowingFunctionWithCart(cart,tdb,name, &windowingFunction); wigFetchSmoothingWindowWithCart(cart,tdb,name, &smoothingWindow); wigFetchYLineMarkWithCart(cart,tdb,name, &yLineMarkOnOff); wigFetchYLineMarkValueWithCart(cart,tdb,name, &yLineMark); boolean doNegative = wigFetchDoNegativeWithCart(cart,tdb,tdb->track, (char **) NULL); printf("<TABLE BORDER=0>"); +boolean isLogo = ((tdb->parent != NULL) && trackDbSetting(tdb->parent, "logo") != NULL); boolean parentLevel = isNameAtParentLevel(tdb, name); boolean didAggregate = FALSE; -if (parentLevel) +if (parentLevel && !isLogo) { assert(tdb->parent != NULL); char *aggregate = trackDbSetting(tdb->parent, "aggregate"); if (aggregate != NULL && parentLevel) { char *aggregateVal = cartOrTdbString(cart, tdb->parent, "aggregate", NULL); safef(option, sizeof(option), "%s.%s", name, AGGREGATE); if (isCustomComposite(tdb)) { printf("<TR valign=center><th align=right>Merge method:</th><td align=left>"); aggregateExtraDropDown(option, aggregateVal); } else { printf("<TR valign=center><th align=right>Overlay method:</th><td align=left>"); @@ -5861,105 +5862,116 @@ */ printf("<TR valign=center><th align=right>Missing data treatment:</th><td align=left>"); char *missingMethodVal = cartOrTdbString(cart, tdb->parent, "missingMethod", NULL); boolean missingIsZero = (missingMethodVal == NULL) || differentString(missingMethodVal, "missing"); char buffer[1024]; safef(buffer, sizeof buffer, "%s.missingMethod",name); cgiMakeOnEventRadioButtonWithClass(buffer, "zero", missingIsZero, "allOrOnly", "click", NULL); puts("missing is zero "); cgiMakeOnEventRadioButtonWithClass(buffer, "missing", !missingIsZero, "allOrOnly", "click", NULL); printf("math with missing values is missing</B>"); } } +if (!isLogo) + { printf("<TR valign=center><th align=right>Type of graph:</th><td align=left>"); safef( option, sizeof(option), "%s.%s", name, LINEBAR ); wiggleGraphDropDown(option, lineBar); if (boxed) { printf("</td><td align=right colspan=2>"); printf("<A HREF=\"%s\" TARGET=_blank>Graph configuration help</A>",WIGGLE_HELP_PAGE); } puts("</td></TR>"); + } printf("<TR valign=center><th align=right>Track height:</th><td align=left colspan=3>"); safef(option, sizeof(option), "%s.%s", name, HEIGHTPER ); cgiMakeIntVarWithLimits(option, defaultHeight, "Track height",0, minHeightPixels, maxHeightPixels); printf("pixels (range: %d to %d)", minHeightPixels, maxHeightPixels); puts("</TD></TR>"); printf("<TR valign=center><th align=right>Data view scaling:</th><td align=left colspan=3>"); safef(option, sizeof(option), "%s.%s", name, AUTOSCALE ); if (tdb->parent || tdb->subtracks) wiggleScaleDropDownParent(option, autoScale); else wiggleScaleDropDown(option, autoScale); wiggleScaleDropDownJavascript(name); + +if (!isLogo) + { safef(option, sizeof(option), "%s.%s", name, ALWAYSZERO); printf("Always include zero: "); wiggleAlwaysZeroDropDown(option, alwaysZero); puts("</TD></TR>"); + } printf("<TR class=\"%sAutoScaleDesc\" valign=center><th align=right>Vertical viewing range:</th>" "<td align=left> min: ", name); safef(option, sizeof(option), "%s.%s", name, MIN_Y ); cgiMakeDoubleVarWithLimits(option, minY, "Range min", 0, NO_VALUE, NO_VALUE); printf("</td><td align=leftv colspan=2>max: "); safef(option, sizeof(option), "%s.%s", name, MAX_Y ); cgiMakeDoubleVarWithLimits(option, maxY, "Range max", 0, NO_VALUE, NO_VALUE); if (!isCustomComposite(tdb)) printf(" (range: %g to %g)", tDbMinY, tDbMaxY); puts("</TD></TR>"); printf("<TR valign=center><th align=right>Transform function:</th><td align=left>"); safef(option, sizeof(option), "%s.%s", name, TRANSFORMFUNC); printf("Transform data points by: "); wiggleTransformFuncDropDown(option, transformFunc); +if (!isLogo) + { printf("<TR valign=center><th align=right>Windowing function:</th><td align=left>"); safef(option, sizeof(option), "%s.%s", name, WINDOWINGFUNCTION ); wiggleWindowingDropDown(option, windowingFunction); printf("<th align=right>Smoothing window:</th><td align=left>"); safef(option, sizeof(option), "%s.%s", name, SMOOTHINGWINDOW ); wiggleSmoothingDropDown(option, smoothingWindow); puts(" pixels</TD></TR>"); printf("<th align=right>Negate values:</th><td align=left>"); safef(option, sizeof(option), "%s.%s", name, DONEGATIVEMODE ); cgiMakeCheckBox(option, doNegative); printf("<TR valign=center><td align=right><b>Draw y indicator lines:</b>" "<td align=left colspan=2>"); printf("at y = 0.0:"); safef(option, sizeof(option), "%s.%s", name, HORIZGRID ); wiggleGridDropDown(option, horizontalGrid); printf(" at y ="); safef(option, sizeof(option), "%s.%s", name, YLINEMARK ); cgiMakeDoubleVarInRange(option, yLineMark, "Indicator at Y", 0, NULL, NULL); safef(option, sizeof(option), "%s.%s", name, YLINEONOFF ); wiggleYLineMarkDropDown(option, yLineMarkOnOff); printf("</td>"); + } if (boxed) puts("</TD></TR></TABLE>"); else { puts("</TD></TR></TABLE>"); + if (!isLogo) printf("<A HREF=\"%s\" TARGET=_blank>Graph configuration help</A>",WIGGLE_HELP_PAGE); } // add a little javascript call to make sure we don't get whiskers with stacks in multiwigs if (didAggregate) jsInlineF("$(function () { multiWigSetupOnChange('%s'); });\n", name); cfgEndBox(boxed); } void filterButtons(char *filterTypeVar, char *filterTypeVal, boolean none) /* Put up some filter buttons. */ {