8bb883ed32e24a1007bf9f97ee1793a46bf47bd0 mspeir Thu Aug 27 10:00:43 2026 -0700 singleCellSignalsPeaks: classify the SEA-AD and Allen tracks, add BrainVar stages 72 hg38 SEA-AD and 89 mm10 allen-basal-ganglia tracks had lost their broad cell class and were drawing in dataset colours instead of the shared palette; both assemblies are now 0 unclassified. Fix is in the hub build (cellBrowser ucsc/allTracksHub). Adds an "Other glia" class, since "Other" was doing four unrelated jobs. BrainVar goes 4 -> 13 hg38 subtracks with the new stage-split pseudobulk. Scaling moves to "autoScale group" on the composite so selected subtracks share one scale, and every bigWig now carries a data range -- without one the 13 BrainVar tracks drew as flat lines against hgTracks' built-in 0:127. Description pages and makeDocs updated, including removing the stale claim that SEA-AD is coloured by its own subclass palette. refs #37914, refs #37820 Co-Authored-By: Claude Opus 5 (1M context) diff --git src/hg/makeDb/scripts/singleCellSignalsPeaks/makeSingleCellSignalsPeaksRa.py src/hg/makeDb/scripts/singleCellSignalsPeaks/makeSingleCellSignalsPeaksRa.py index 5dae1f55967..bbb36c5f61c 100755 --- src/hg/makeDb/scripts/singleCellSignalsPeaks/makeSingleCellSignalsPeaksRa.py +++ src/hg/makeDb/scripts/singleCellSignalsPeaks/makeSingleCellSignalsPeaksRa.py @@ -69,30 +69,38 @@ "../../trackDb/%s/%s/%s.ra" % (ORG[asm], asm, TRACK)) header = "\n".join([ "track " + TRACK, "compositeTrack faceted", "group " + GROUP, "visibility hide", "type bigBed 3", "shortLabel Single-cell ATAC-seq", "longLabel Single-cell ATAC-seq Peaks and Signals for UCSC Cell Browser datasets", "metaDataUrl %s/%s_metadata.tsv" % (gbdb, TRACK), "primaryKey Track", "subtrackUrls Dataset=https://cells.ucsc.edu/?ds=$$", "defaultSortField Cell_class", "maxCheckboxes 200", + # One scale across every selected subtrack, so two tracks drawn at the same locus + # can be compared directly; with per-track autoScale, tracks whose values differ + # by orders of magnitude both drew full height. It must sit on the composite, not + # the children: hgTracks groups by tdb->parent (wigTrack.c setMinMax), and a + # per-subtrack setting would override this one. Limits are taken from the data in + # the current window, not genome-wide, so an outlying region elsewhere in the + # genome cannot flatten the view. + "autoScale group", ]) # class ordering for subtrack priority: palette line order (neurons, glia, # vascular, immune, ...) so same-class tracks group together in the display, # with the source (hub/dataset) order preserved within a class. The subtrack's # broad class is recovered from its color (palette is 1:1 class<->color). color_rank = {} # prefer the palette archived alongside this script (the copy of record, written by # build_celltype_crosswalks.py); fall back to the hub build dir _palf = os.path.join(os.path.dirname(os.path.abspath(__file__)), "celltype-crosswalks", "celltype-palette.tsv") if not os.path.isfile(_palf): _palf = os.path.join(build, "celltype-crosswalks", "celltype-palette.tsv") for _i, _l in enumerate(open(_palf)): _pp = _l.rstrip("\n").split("\t")