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) <noreply@anthropic.com>

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")