1c32191759769c28cf763342f5e405420add0170
markd
  Thu Oct 1 21:20:54 2026 -0700
Make the TSS tracks superTracks of multiWig overlays. refs #35528

The composite held the multiWig overlays as children, which drew correctly but
left two faults, both from hgTrackUi listing descendant leaves rather than
containers: an overlay got no configuration block of its own, and hiding both
strands of a cell line left an empty row where the overlay had been. That is
#38441.

As superTrack members the overlays are tracks in their own right. Each gets a
full configuration page, including overlay method and negate values, and hiding
one hides the whole overlay. Verified: hiding proCapNet_K562_pred removes the
row and leaves the other five.

Two top-level superTracks, PRO-cap and ProCapNet, rather than one
transcriptionStart folder holding both. superTracks do not nest. A superTrack
given a parent passes tdbQuery -check -strict and is then dropped at load, since
trackDbSuperMarkup refuses to set a parent on a superTrack and hgTrackDb only
writes a superTrack that some track names as its parent. Filed as #38460, with
the test case; transcriptionStart.html stays in the tree unused in case it is
fixed.

What this costs: the subtrack matrix and the sample class filter, which a
superTrack does not offer. Each overlay now carries its own wiggle settings and
its own html, neither being inherited from a container any more.

diff --git src/hg/makeDb/doc/hs1/transcriptionStart.txt src/hg/makeDb/doc/hs1/transcriptionStart.txt
index 9e123f340bf..628bcd0c8c0 100644
--- src/hg/makeDb/doc/hs1/transcriptionStart.txt
+++ src/hg/makeDb/doc/hs1/transcriptionStart.txt
@@ -1,27 +1,32 @@
 # Transcription start sites: ProCapNet predictions, #35528, Claude
 Thu Sep 17 2026 (Claude/markd)
 
-# STATUS: the composite only partly works, and the plan is to replace it with a
-# superTrack holding the multiWig overlays directly, the way fantom5 does.  A
-# multiWig under a composite draws correctly and the composite's wiggle controls
-# apply, but hgTrackUi lists descendant leaves rather than containers, so the
-# overlays get no inline config block and turning off both strands of a cell line
-# leaves an empty row where the overlay was (#38441).  Under a superTrack each
-# overlay is a track in its own right, with its own full configuration page and
-# no flattening.  The cost is losing the subtrack matrix and the sample class
-# filter.
+# Layout: one superTrack per data source, each holding its multiWig overlays
+# directly, the way fantom5 does.  Not a composite: under a composite hgTrackUi
+# lists descendant leaves rather than containers, so an overlay gets no
+# configuration block of its own and hiding both strands of a cell line leaves an
+# empty row where the overlay was (#38441).  As a superTrack member each overlay
+# is a track in its own right, with a full configuration page, and hiding it
+# hides the whole overlay.  The cost is the subtrack matrix and the sample class
+# filter, neither of which a superTrack offers.
+#
+# These two superTracks are top level rather than sitting inside a single
+# transcriptionStart folder, because superTracks do not nest: a superTrack given
+# a parent passes tdbQuery -check -strict and is then silently dropped at load
+# (#38460).  transcriptionStart.html is left in the tree unused against that
+# being fixed.
 
 # hs1 has the ProCapNet predictions only.  There is no PRO-cap experiment and no
 # sequence-contribution score set on this assembly.  See
 # makeDb/doc/hg38/transcriptionStart.txt for the hg38 build, which carries all
 # three.  Scripts are in ~/kent/src/hg/makeDb/outside/proCapNet.
 
 mkdir -p /hive/data/outside/proCapNet/hs1 /hive/data/genomes/hs1/bed/proCapNet
 cd /hive/data/genomes/hs1/bed/proCapNet
 ~/kent/src/hg/makeDb/outside/proCapNet/proCapNetDownload hs1 \
     ~/kent/src/hg/makeDb/outside/proCapNet/proCapNetExperiments.tsv \
     /hive/data/outside/proCapNet/hs1/pred
 # 300 GB, about 30 minutes at six parallel streams
 
 # Re-encode from one bedGraph interval per base into fixedStep sections.  Unlike
 # hg38 these files hold no NaN, so every base is kept.