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) 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)