66fafe88184bb3a8a45a50026f4d6c7fbbc24109 markd Tue Sep 29 10:12:53 2026 -0700 Rebuild the TSS tracks as traditional composites, for wiggle control. refs #35528 A faceted composite is routed to facetedCompositeUi(), which returns before cfgByCfgType(), so it never draws the wiggle controls: no data view scaling, no viewing range, no windowing function, no track height. Signal tracks need those, so proCapNet and encode4ProCap are now traditional composites. They stay separate composites under the TSS container. The multiWig strand overlays survive the change. The old comment here claimed a multiWig under a plain composite "is flattened away and never drawn"; that is wrong for drawing, which #36320 fixed. Only the hgTrackUi subtrack list flattens, because compositeUiSubtracks() walks to leaves, so the overlays get no inline config block and are configured from their own pages. Raised as #38441. The matrix has to be declared over the leaves, since that is the level hgTrackDb checks: declaring it on the containers fails -strict with "has groups not defined in parent". So a strand is a matrix cell, and the containers carry no subGroups. Sample class survives as a filterComposite dimension, replacing the facet. configurable on gives each subtrack its own config namespace. Drop the faceted machinery: the metadata table, the color file, the constants feeding them and the gbdbDir argument, 39 lines. The metadata.tsv and colors.json already written under /gbdb are now unreferenced and can be deleted. Put the ENCODE accession in each subtrack longLabel, and add a linked table of them to both description pages. A longLabel cannot carry a link, since printSubtrackTableBody() htmlEncodes it, hence the table. The label wording is shortened to keep the longest at 74 characters. diff --git src/hg/makeDb/doc/hg38/transcriptionStart.txt src/hg/makeDb/doc/hg38/transcriptionStart.txt index daa0b13c256..806dd58a709 100644 --- src/hg/makeDb/doc/hg38/transcriptionStart.txt +++ src/hg/makeDb/doc/hg38/transcriptionStart.txt @@ -98,35 +98,36 @@ # sanity check: the summed signal equals the sum of the inputs python3 - <<'PYEOF' import pyBigWig def total(f): bw = pyBigWig.open(f); s = bw.header()["sumData"]; bw.close(); return s raw = "/hive/data/outside/proCapNet/encode/raw" print(total(raw + "/ENCFF994CSC.pos.bigWig") + total(raw + "/ENCFF580QEK.pos.bigWig"), total("K562.ENCSR261KBX.pos.bw")) PYEOF # 9605200.0 9605200.0 ############################################################################## # trackDb ############################################################################## -# The stanzas are generated, along with the metadata.tsv and colors.json each -# faceted composite reads, which are written into the composite's /gbdb -# directory. The composites must be faceted: a container multiWig under a plain -# composite is flattened away by hgTrackUi and never drawn. +# The stanzas are generated. These are traditional composites: a faceted one is +# routed to facetedCompositeUi(), which returns before the wiggle controls are +# drawn, and signal tracks need those. The matrix is declared over the leaf +# bigWigs, so each strand is a cell; the multiWig containers carry no subGroups +# because a container spans both strands. cd ~/kent/src/hg/makeDb/outside/proCapNet ./proCapNetTrackDb hg38 proCapNetExperiments.tsv \ - ~/kent/src/hg/makeDb/trackDb/human/hg38/transcriptionStart.ra /gbdb/hg38 + ~/kent/src/hg/makeDb/trackDb/human/hg38/transcriptionStart.ra # transcriptionStart.ra is generated; the include line in human/hg38/trackDb.ra # is added by hand: # include transcriptionStart.ra alpha ############################################################################## # cleanup ############################################################################## # The downloads are only needed to build the tracks: the predictions for the # re-encoding, the ENCODE per-replicate files for the summing. /hive charges # twice the apparent size, so this returns about 580 GB of disk. rm -rf /hive/data/outside/proCapNet/hg38/pred /hive/data/outside/proCapNet/encode