a3fd570e96fb63b45d583ebcce83d8d23673a30a
max
  Wed Sep 16 07:00:11 2026 -0700
hg38 pcLAI: squish, not dense - dense removes the details page

Same problem the GenArk contrib collection had: in tvDense hgTracks draws one
merged row per subtrack and emits no per-item map boxes, so there is no hgc
link and no mouseOver, and the ancestry scatterplot built for the details page
is unreachable. On chr18:10,800,000-12,500,000 the image map has 0 hgc links in
dense and 134 in squish.

The composite is now visibility squish plus onlyVisibility squish. On a
composite that governs the only vis dropdown the track has, since the subtracks
get checkboxes rather than dropdowns, and hgTrackUi now offers Hide and Squish.
Squish suits the data: the windows tile without overlapping and carry no item
labels, so each haplotype stays one row at a 20 Mb view, refs #35415

diff --git src/hg/makeDb/doc/hg38/hprcPclai.txt src/hg/makeDb/doc/hg38/hprcPclai.txt
index ba04edc084f..d7295f973ac 100644
--- src/hg/makeDb/doc/hg38/hprcPclai.txt
+++ src/hg/makeDb/doc/hg38/hprcPclai.txt
@@ -122,16 +122,46 @@
 ~/kent/src/hg/makeDb/scripts/hprcPclai/hprcPclaiMakeTrackDb.py \
   pclai_v1.1_grch38_coord_local_hprc_r2.index.csv \
   ~/kent/src/hg/makeDb/scripts/hprcPclai/hprcPclaiDefaultOn.txt hprcPclai.ra
 cp hprcPclai.ra ~/kent/src/hg/makeDb/trackDb/human/hg38/
 # and "include hprcPclai.ra alpha" in human/hg38/trackDb.ra
 
 # Sanity check the loaded settings: $D has to have been substituted in both
 # bigDataUrl and metaDataUrl, or the details-page scatterplot will not load.
 hgsql hg38 -N -e "select settings from trackDb_max where tableName='hprcPclaiNA19682H1'" \
   | tr '\\n' '\n' | grep -E 'bigDataUrl|metaDataUrl'
 
 # A whole chromosome is the zoom at which the ancestry blocks are visible, and it
 # holds a few thousand windows per haplotype, over the 1000-item default at which
 # pack mode stops drawing. Hence "maxItems 40000" on the composite.
 # Quick render check of the seven default-on haplotypes across all of chr1:
-#  https://hgwdev-max.gi.ucsc.edu/cgi-bin/hgRenderTracks?db=hg38&position=chr1&hideTracks=1&hprcPclai=dense
+#  https://hgwdev-max.gi.ucsc.edu/cgi-bin/hgRenderTracks?db=hg38&position=chr1&hideTracks=1&hprcPclai=squish
+
+##############################################################################
+# 2026-09-16: squish, not dense (refs #35415)
+##############################################################################
+# The composite was "visibility dense" until now. Dense is the wrong mode for
+# this track: in tvDense hgTracks draws one merged row per subtrack and emits no
+# per-item map boxes at all, so there is no hgc link and no mouseOver, and the
+# ancestry scatterplot on the details page cannot be reached. Measured on
+# hgwdev-max, chr18:10,800,000-12,500,000:
+#   hprcPclai=dense    0 hgc links in the image map
+#   hprcPclai=squish 134 hgc links, 134 mouseOver tooltips
+#
+# Now "visibility squish" plus "onlyVisibility squish" on the composite stanza,
+# written by hprcPclaiMakeTrackDb.py. onlyVisibility on a composite governs the
+# composite's own dropdown, which is the only vis dropdown the track has (the
+# subtracks get checkboxes), so this is enough: hgTrackUi offers Hide and Squish.
+# It is a UI limit only -- hg/lib/hui.c does not clamp it at draw time for a
+# non-faceted track -- so hprcPclai=pack in a URL still draws packed.
+#
+# Squish suits this data because the windows tile without overlapping and the
+# subtracks carry no item labels, so each haplotype collapses to one row at a
+# 20 Mb view. At whole-chromosome zoom it spreads to three or four rows and gets
+# noisy; 10-30 Mb is the window where the track reads best.
+#
+# Demo link, the seven default-on haplotypes over a region where NA19776 hap 1
+# switches ancestry at about chr2:70.5 Mb:
+#  https://hgwdev-max.gi.ucsc.edu/cgi-bin/hgTracks?db=hg38&position=chr2:60000000-80000000&hideTracks=1&hprcPclai=squish
+# On a fresh cart that shows the seven hprcPclaiDefaultOn.txt haplotypes, one
+# squish row each, 1235 clickable windows. The same change went into the GenArk
+# contrib collection; see doc/contrib/hprc2annot/hprc2annot.txt section 5e.