d5302bd1e0cf296545df9ad3e0d3ab57859a51eb
lrnassar
  Fri Jul 24 17:17:17 2026 -0700
varFreqs: post-QA polish on new hostseq subtrack. refs #37882

Findings from the qa-track pass on the gnomAD-Canada HostSeq subtrack added
in 99764ad55bb:

- hostseq.html: fix non-ASCII byte in Alföldi (Alföldi), swap
hardcoded hg38 for $db in the hgdownload URL, extend the FILTER
enumeration to include InbreedingCoeff;RF (34,540 sites), add nhomalt
and grpmax to the Display Conventions details-page list, and add an
"Effective sample size per ancestry group" subsection warning that
AF_fin (~4 individuals) and AF_mid (~72) are too sparse to be reliable
population estimates. Collapsed a stray double blank line between refs.
- populations.tsv, hostseqHtToVcf.py: harmonize the "oth" group label to
"Remaining individuals" per the gnomAD README. The existing VCF header
still shows the old label; it picks up the new one on the next re-emit
(not worth re-running the 104 GB Hail table just for this).
- varFreqs.ra: hostseq priority 2 -> 33 to break the sort-order collision
with allofus (also at priority 2).

diff --git src/hg/makeDb/scripts/varFreqs/hostseqHtToVcf.py src/hg/makeDb/scripts/varFreqs/hostseqHtToVcf.py
index 091ca681503..e2fff7dd628 100644
--- src/hg/makeDb/scripts/varFreqs/hostseqHtToVcf.py
+++ src/hg/makeDb/scripts/varFreqs/hostseqHtToVcf.py
@@ -34,31 +34,31 @@
 import sys
 import hail as hl
 
 # gnomAD genetic-ancestry groups present in the HostSeq release, in the order
 # used for the per-population INFO fields. Labels are for the VCF header only.
 # Note: the release uses the key "oth" for the group the README calls
 # "Remaining individuals (formerly Other)".
 POPS = [
     ("afr", "African/African-American"),
     ("amr", "Latino/Admixed-American"),
     ("asj", "Ashkenazi Jewish"),
     ("eas", "East Asian"),
     ("fin", "European (Finnish)"),
     ("mid", "Middle Eastern"),
     ("nfe", "European (non-Finnish)"),
-    ("oth", "Remaining/Other individuals"),
+    ("oth", "Remaining individuals"),
     ("sas", "South Asian"),
 ]
 
 CANON = ["chr%d" % i for i in range(1, 23)] + ["chrX", "chrY", "chrM"]
 
 
 def find_meta_index(freq_meta, want):
     """Return the index i where freq_meta[i] == want, else None."""
     for i, d in enumerate(freq_meta):
         if dict(d) == want:
             return i
     return None
 
 
 def main():