5f5b72d8ea8afcaf45d87c9cd1024c65edcee108 chmalee Thu Jul 2 12:20:43 2020 -0700 Change some checkbox labels and add an info icon for phased trio display, refs #25582 diff --git src/hg/lib/vcfUi.c src/hg/lib/vcfUi.c index f5b777e..8702fd6 100644 --- src/hg/lib/vcfUi.c +++ src/hg/lib/vcfUi.c @@ -507,31 +507,31 @@ if (slCount(tdbOrder) == 1) // no sorting if there are no parents return; char childBelowSortOrder[1024]; safef(childBelowSortOrder, sizeof(childBelowSortOrder), "%s.%s", name, VCF_PHASED_CHILD_BELOW_VAR); boolean isBelowChecked = cartUsualBooleanClosestToHome(cart, tdb, parentLevel, VCF_PHASED_CHILD_BELOW_VAR, FALSE); printf("<b>Show child haplotypes below parents:</b>\n"); cgiMakeCheckBox(childBelowSortOrder, isBelowChecked); char *infoText = "Check this box to sort the child haplotypes below the parents, leave unchecked" " to use the default sort order of the child in the middle. Click into each subtrack to arbitrarily" " order the samples which overrides this setting."; printInfoIcon(infoText); printf("<br>"); if (!parentLevel) { printf("<b>or:</b><br>\n"); - printf("<b>Click and drag to change order:</b>\n"); + printf("<b>Drag to change order:</b>\n"); printf("<div>\n"); printf("<table id=\"%s_table\" class=\"tableWithDragAndDrop\">\n", tdb->track); for (pair = tdbOrder; pair != NULL; pair = pair->next) { char id[256]; safef(id, sizeof(id), "%s_drag", pair->name); printf("<tr id=\"%s_row\" class=\"trDraggable\"><td id=\"%s\" class=\"dragHandle\">%s - %s</td></tr>\n", pair->name, id, pair->name, (char *)pair->val); dyStringPrintf(sortOrder, "%s,", pair->name); } printf("</table>\n"); printf("</div>\n"); printf("<input type=\"hidden\" name=\"%s.%s\" value=\"%s\">",tdb->track, VCF_PHASED_SAMPLE_ORDER_VAR, dyStringCannibalize(&sortOrder)); // add the hidden variable for setting the order and the javascript to change it jsInlineF("" "dragReorder.init();\n" @@ -587,35 +587,39 @@ cgiMakeCheckBox(defaultLabel, isDefaultChecked); printf("VCF file sample names "); cgiMakeCheckBox(aliasLabel, isAliasChecked); printf("Family Labels"); printf("<br>"); } if (trackDbSetting(tdb,VCF_PHASED_PARENTS_SAMPLE_SETTING)) { printf("<b>Hide parent sample(s)"); char hideVarName[1024]; safef(hideVarName, sizeof(hideVarName), "%s.%s", name, VCF_PHASED_HIDE_OTHER_VAR); boolean hidingOtherSamples = cartUsualBooleanClosestToHome(cart, tdb, parentLevel, VCF_PHASED_HIDE_OTHER_VAR, FALSE); cgiMakeCheckBox(hideVarName, hidingOtherSamples); } printf("<br>"); -printf("Highlight child variants that are inconsistent with phasing red"); +printf("Highlight child variants that are inconsistent with phasing"); char shadeByDiffs[1024]; safef(shadeByDiffs, sizeof(shadeByDiffs), "%s.%s", name, VCF_PHASED_HIGHLIGHT_INCONSISTENT); boolean highlightChildDiffs = cartUsualBooleanClosestToHome(cart, tdb, FALSE, VCF_PHASED_HIGHLIGHT_INCONSISTENT, FALSE); cgiMakeCheckBox(shadeByDiffs, highlightChildDiffs); +char *infoText = "Check this box to color child variants red if they do not agree with the implied " + "parental transmitted allele at this location. This configuration is only available when parent " + "haplotypes are displayed."; +printInfoIcon(infoText); } void vcfCfgUi(struct cart *cart, struct trackDb *tdb, char *name, char *title, boolean boxed) /* VCF: Variant Call Format. redmine #3710 */ { boxed = cfgBeginBoxAndTitle(tdb, boxed, title); printf("<TABLE%s><TR><TD>", boxed ? " width='100%'" : ""); struct vcfFile *vcff = vcfHopefullyOpenHeader(cart, tdb); if (vcff != NULL) { boolean parentLevel = isNameAtParentLevel(tdb, name); if (vcff->genotypeCount > 1 && !sameString(tdb->type, "vcfPhasedTrio")) { vcfCfgHapCluster(cart, tdb, vcff, name, parentLevel); }