78988553dd9b460c26f0b9f21f15a1aacfad9dab
lrnassar
  Fri Aug 21 15:44:40 2026 -0700
Polish pass on the mouseDevTimecourse tracks after a Playwright QA sweep. refs #37001

Sentence-case the tissue names and the facet column titles, so the barChart
facet filter reads "Tissue / Spleen" rather than "tissue / spleen" and the
bigWig matrix reads "Spleen". Only the first character is upper-cased. Added
sentenceCaseTissues.sh, which does the .facets and .categories files and is
idempotent, since the hub still ships lower-case and this has to be replayed
after any refetch. The count and color column names are deliberately left
lower-case: barChartUi.c requires a field literally named "count" to load the
file at all, and facetedTable.c keys its merge logic on "count", "color" and
"val". Renaming the faceted columns means trackDb matches, so the stanzas now
read barChartFacets Tissue,Timepoint.

Set priority on the container children so the default-visible M21 TPM sorts
first and the signal composite sorts last. The composite needs an explicit
value; without one it inherits the superTrack's 0.6 and floats to the top.

Fix the All reads view, which was inert. Every all-reads subtrack shipped
parent off, so switching the view to full revealed nothing. The view's own
visibility already gates drawing, so the subtrack state should not encode the
view as well. The default image is unchanged at 78 unique-reads rep1 tracks,
and switching the view to full now yields 156. This also makes the Rep 2
toggle symmetric across the two views.

Rename the bigWig subGroup3 display label from Age to Timepoint, matching the
barChart facet and the .facets column. The group name stays "age" because
dimensions and sortOrder reference it by name.

Add relatedTracks cross-links between the mm10 container and Tabula Muris.
Not Tabula Muris Senis, which is not on the RR.

Description pages: reorder the mm10 subtrack list to match the new display
order, "sub tracks" to "subtracks", capitalise the colour legend tissue names,
and correct the mm39 Il11ra2 note - the gene appears three times, two of them
stacked at one position and sharing a details page, with the third 497 kb away.

Makedocs record the casing step, its ordering constraint relative to the
reorder and colour steps, and the count/color naming constraint.

diff --git src/hg/makeDb/doc/mm10.txt src/hg/makeDb/doc/mm10.txt
index 39f5bb09450..34c164b43d6 100644
--- src/hg/makeDb/doc/mm10.txt
+++ src/hg/makeDb/doc/mm10.txt
@@ -20089,16 +20089,56 @@
 
 ~/kent/src/hg/makeDb/scripts/mouseDevTimecourse/fixBarChartStarts.sh mm10 \
     /hive/data/outside/woldlab/mouseDevTimecourse/mm10/mouse_development_TPM_M4_mm10.bb \
     /hive/data/outside/woldlab/mouseDevTimecourse/mm10/mouse_development_FPKM_M4_mm10.bb \
     /hive/data/outside/woldlab/mouseDevTimecourse/mm10/mouse_development_TPM_M21_mm10.bb \
     /hive/data/outside/woldlab/mouseDevTimecourse/mm10/mouse_development_FPKM_M21_mm10.bb
 
 # Re-verified afterwards: zero genes remain at start+1, and 42073 of the 42093
 # comparable genes match GENCODE VM21 exactly on both start and end (42081 on
 # start, 42079 on end). The ~20 that still differ are genes where the track and
 # wgEncodeGencodeCompVM21 disagree on the gene extent, since Comp excludes some
 # transcript biotypes; they are not coordinate errors. itemCount is unchanged and
 # every non-coordinate field (name, score, strand, name2, expCount, expScores) is
 # byte-identical.
 
+# 2026-08-21 (Lou, QA #37001): sentence-case the tissue names and the facet
+# column titles, so the barChart facet filter reads "Tissue / Spleen" rather than
+# "tissue / spleen" and the bigWig matrix reads "Spleen". Only the first character
+# is upper-cased, so "skeletal muscle tissue" becomes "Skeletal muscle tissue" and
+# not Title Case. Touches the label column of both files (they must stay identical
+# to each other), the tissue column of the .facets, and the tissue/timepoint names
+# in the .facets header row. Timepoint values, colours and row order are untouched,
+# and row order matters because the bigBed expScores are positional.
+#
+# The count and color column names are deliberately left lower-case: hgTracks
+# matches them by exact string. barChartUi.c requires a field literally named
+# "count" to load the .facets at all, and facetedTable.c keys its merge logic on
+# "count", "color" and "val". Renaming those breaks the track.
+#
+# Renaming the faceted columns means trackDb has to match, since facets resolve by
+# column name. The stanzas now read: barChartFacets Tissue,Timepoint
+#
+# Run this LAST. The reorder and colour snippets above group on the lower-case
+# tissue strings, so a refetch has to replay curl -> reorder -> colour -> case.
+
+~/kent/src/hg/makeDb/scripts/mouseDevTimecourse/sentenceCaseTissues.sh \
+    /hive/data/outside/woldlab/mouseDevTimecourse/mm10/mouse_development_M4.facets \
+    /hive/data/outside/woldlab/mouseDevTimecourse/mm10/mouse_development_M4.categories \
+    /hive/data/outside/woldlab/mouseDevTimecourse/mm10/mouse_development_M21.facets \
+    /hive/data/outside/woldlab/mouseDevTimecourse/mm10/mouse_development_M21.categories
+
+# generateBigwigTrackDb.py now emits sentence-cased subGroup2 labels, and keys its
+# colour lookup on the lower-cased tissue so it still matches the biosample TSV,
+# which supplies the name in lower case. The two HTML colour legends were
+# capitalised to match. Regenerate the composite afterwards:
+
+cd ~/kent/src/hg/makeDb/trackDb/mouse/mm10
+~/kent/src/hg/makeDb/scripts/mouseDevTimecourse/generateBigwigTrackDb.py \
+  > developmentTimecourseSignalMm10.ra
+
+# Also set priority 1-4 on the four bigBarChart subtracks so the default-visible
+# M21 TPM sorts first, and priority 5 on the signal composite. The composite needs
+# an explicit value: without one it inherits the superTrack's 0.6 and sorts ahead
+# of everything else.
+
 ##############################################################################