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 &nbsp;");
     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);
 	}