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/viennaVntr/viennaVntrToBed.py src/hg/makeDb/scripts/viennaVntr/viennaVntrToBed.py index 5a859f5c52d..8f3bf107513 100644 --- src/hg/makeDb/scripts/viennaVntr/viennaVntrToBed.py +++ src/hg/makeDb/scripts/viennaVntr/viennaVntrToBed.py @@ -6,37 +6,40 @@ Output: BED to stdout. Usage: python3 viennaVntrToBed.py vamos-summary.tsv | sort -k1,1 -k2,2n > viennaVntr.bed """ import sys 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 het data +NO_DATA_COLOR = "128,128,128" # medium gray when no het 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 load_het(het_path): """Load het values from TSV (chrom, pos_1based, het).""" het_map = {} with open(het_path) as f: for line in f: chrom, pos, het = line.rstrip("\n").split("\t") het_map[(chrom, int(pos))] = float(het) return het_map