36b00fae56bc9de09200fd4fe5cfd07ddb4352d8 braney Wed Sep 16 12:40:10 2026 -0700 hprcPclai: back to dense, with denseClick on, refs #35415, refs #38364 This track was moved to squish a week ago and pinned there with onlyVisibility, for one reason: dense drew one merged row per subtrack and emitted no per-item map boxes at all, so there was no hgc link, no mouseOver, and no way to reach the ancestry scatterplot on the details page. denseClick removes that reason. With it, every item on a dense row gets its own map box, so it carries an hgc link and its own mouseOver while still being drawn on the single dense row. Measured on a build of this branch at chr2:60,000,000-80,000,000, the seven default-on haplotypes: dense, denseClick off 0 hgc links dense, denseClick on 1249 hgc links squish 1235 hgc links The rendered image does not change; only the image map does. So dense is now the better mode for this data as well as the clickable one. Dense is always exactly one row per haplotype, where squish spreads to three or four at whole-chromosome zoom and gets noisy. onlyVisibility moves to dense rather than going away: its real job is keeping a reader out of pack, which at 463 subtracks would be enormous. denseClick is inherited, so the single line on the composite covers every subtrack, and hgTracks ignores a setting it does not understand, so the line is inert rather than harmful on an older browser. The same change goes into the GenArk contrib collection stanza. Worth knowing about the timing there: hprc2annot is listed in betaGenArk.txt, and hgwbeta runs the release branch, so that copy will show a dense row with no clickable items until the hgTracks change reaches beta. The hg38 composite is alpha only and hgwdev CGIs are built from master, so it picks the behavior up as soon as this lands. Neither copy is in publicGenArk.txt, so no RR user sees either state. hprcPclai.ra is generated, so the change is in hprcPclaiMakeTrackDb.py and the .ra was rebuilt from the same index CSV; the regenerated file differs only in those three lines. diff --git src/hg/makeDb/doc/hg38/hprcPclai.txt src/hg/makeDb/doc/hg38/hprcPclai.txt index d7295f973ac..4aeca9c4ebc 100644 --- src/hg/makeDb/doc/hg38/hprcPclai.txt +++ src/hg/makeDb/doc/hg38/hprcPclai.txt @@ -153,15 +153,55 @@ # 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. + +############################################################################## +# 2026-09-16: back to dense, with denseClick on (refs #38364, refs #35415) +############################################################################## +# The section above moved this track to squish and pinned it there, because +# dense drew one merged row per subtrack and emitted no per-item map boxes at +# all: no hgc link, no mouseOver, no way to reach the ancestry scatterplot. +# #38364 adds the missing piece. With "denseClick on" every item on a dense row +# gets its own map box, so it carries an hgc link and its own mouseOver, while +# still being drawn on the single dense row. Measured on a build of branch +# denseClick38364, same region as the section above, +# chr2:60,000,000-80,000,000, the seven default-on haplotypes: +# dense, denseClick off 0 hgc links (the behavior that forced squish) +# dense, denseClick on 1249 hgc links +# squish 1235 hgc links +# The rendered PNG is identical with the setting on and off; only the image map +# changes. +# +# So dense now does everything squish did, and it is the better mode for this +# data: dense is always exactly one row per haplotype, where squish spreads to +# three or four at whole-chromosome zoom and gets noisy. The stanza is back to +# "visibility dense", and onlyVisibility moves to dense with it. onlyVisibility +# is still worth keeping, for the reason it was added: it stops a reader landing +# in pack, which at 463 subtracks would be enormous. +# +# denseClick is inherited, so the one line on the composite covers every +# subtrack. hgTracks ignores a setting it does not understand, so the line is +# inert rather than harmful on an older browser. +# +# Timing, which matters more for the GenArk copy than for this one. The code is +# on branch denseClick38364 and goes to master after the v504 final build on +# 2026-09-21, so it ships in v505. This track is alpha only +# ("include hprcPclai.ra alpha" in human/hg38/trackDb.ra) and hgwdev CGIs are +# built from master, so it picks the behavior up within days of the push. The +# same one-line change went into the GenArk contrib collection, +# trackDb/contrib/hprc2annot/hprc2annot.trackDb.txt, and hprc2annot is listed in +# betaGenArk.txt, so it reaches hgwbeta. hgwbeta runs the release branch, so it +# will show a dense row with no clickable items until v505 gets there, roughly +# three weeks after the push. Neither copy is in publicGenArk.txt, so no RR user +# sees either state.