8efbcad3f2816dec50b5671a4445d2e6943f7f91
max
  Mon Apr 13 07:57:41 2026 -0700
Use light gray for monomorphic strVar loci (het=0), distinct from no-data gray, refs #36652

Add a separate color for loci where heterozygosity is exactly 0 (single allele
observed) across all four strVar subtracks: light gray (200,200,200). This
distinguishes them from the existing medium gray (128,128,128) used when no
allele frequency data is available. Previously het=0 was lumped into the
dark blue "nearly monomorphic" bin. Also expand the itemRgb field description
in all four .as files to list the full color scheme.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

diff --git src/hg/makeDb/scripts/tommoStr/tommoStrToBed.py src/hg/makeDb/scripts/tommoStr/tommoStrToBed.py
index 6408d9a9a35..aeebbf9941e 100644
--- src/hg/makeDb/scripts/tommoStr/tommoStrToBed.py
+++ src/hg/makeDb/scripts/tommoStr/tommoStrToBed.py
@@ -8,37 +8,40 @@
 Usage:
     python3 tommoStrToBed.py input.vcf.gz | sort -k1,1 -k2,2n > tommoStr.bed
 """
 
 import sys
 import gzip
 import re
 
 HET_BINS = [
     (0.1, "0,0,180"),       # het < 0.1: dark blue (nearly monomorphic)
     (0.3, "70,130,230"),    # het 0.1-0.3: medium blue (low diversity)
     (0.5, "180,130,200"),   # het 0.3-0.5: light purple (moderate diversity)
     (0.7, "230,100,80"),    # het 0.5-0.7: salmon (high diversity)
     (999, "180,0,0"),       # het >= 0.7: dark red (very high diversity)
 ]
-NO_DATA_COLOR = "128,128,128"  # gray when no allele freq data
+NO_DATA_COLOR = "128,128,128"       # medium gray when no allele freq data
+MONOMORPHIC_COLOR = "200,200,200"   # light gray when het == 0 (fixed allele)
 
 
 def het_to_color(het):
     """Map heterozygosity value to an RGB color string."""
     if het < 0:
         return NO_DATA_COLOR
+    if het == 0:
+        return MONOMORPHIC_COLOR
     for threshold, color in HET_BINS:
         if het < threshold:
             return color
     return HET_BINS[-1][1]
 
 
 def compute_het(hist_parts):
     """Compute expected heterozygosity from allele count pairs.
 
     hist_parts: list of (copies, count) tuples.
     Returns het = 1 - sum(p_i^2), or -1 if no data.
     """
     if not hist_parts:
         return -1.0
     total = sum(c for _, c in hist_parts)