10f0f6d5160a96867ecf534e1b9d138df7d9b796
lrnassar
  Mon Sep 28 16:17:46 2026 -0700
Fiber-seq: hide the container by default, and split the five GM lines out
into a Rare disease sample class.  Max asked for superTrack on rather than
on show, since the track covers much the same ground as ENCODE DNase and
does not earn a slot in everyone's default hg38 view.  The five
lymphoblastoid lines GM25455, GM25456, GM27730, GM28570 and GM28572 had
been filed as Common Cell Line; Andrew Stergachis says they are rare
disease cases consented to broad genomic data sharing and the first of a
batch the lab intends to keep adding, so SAMPLE_CLASS_COLORS gains a third
entry and the facet now reads 20 HPRC, 16 Common Cell Line, 5 Rare disease
sample.  refs #36210

diff --git src/hg/makeDb/doc/hg38/fiberSeq.txt src/hg/makeDb/doc/hg38/fiberSeq.txt
index 192c65cc397..008093c9782 100644
--- src/hg/makeDb/doc/hg38/fiberSeq.txt
+++ src/hg/makeDb/doc/hg38/fiberSeq.txt
@@ -225,31 +225,35 @@
 # trackDb, metadata and colors
 # ---------------------------------------------------------------------------
 
 # One script writes the whole track stanza plus the two faceted-composite
 # metadata and color files, so the 584 stanzas stay consistent:
 
 ~/kent/src/hg/makeDb/scripts/fiberSeq/fiberSeqTrackDb.py
 
 # It writes
 #   ~/kent/src/hg/makeDb/trackDb/human/hg38/fiberSeq.ra
 #   /hive/data/genomes/hg38/bed/fiberSeq/fiberSeqCompendium_metadata.tsv
 #   /hive/data/genomes/hg38/bed/fiberSeq/fiberSeqCompendium_colors.json
 
 # Structure:
 #   fiberSeq            container, group regulation
-#     fiberSeqAcc         multiWig overlay of 7 common cell lines, shown by default
+#     fiberSeqAcc         multiWig overlay of 7 common cell lines, full when the
+#                         container is turned on.  The container itself is
+#                         "superTrack on", not "on show", so nothing draws until
+#                         the user asks for it: Max's call on #36210, since the
+#                         track covers much the same ground as ENCODE DNase.
 #     fiberSeqCompendium  faceted composite, 41 samples, six data types:
 #                         acc, peaks, hap, cpg, cpgHap, cpgDiff
 #                         (a seventh, nuc, is built but held back: see below)
 #
 # Accessibility and methylation started as two composites, fiberSeqCompendium and
 # fiberSeqMeth, and were merged into one.  They cover the identical 41 samples,
 # and cartDump.c assigns priority with the data element as the OUTER loop and the
 # data type as the inner one, so a single composite keeps a sample's six subtracks
 # contiguous in the image.  As two composites the display was an accessibility
 # block followed by a methylation block, so comparing the two assays for one
 # sample meant reading across every other sample - which is the whole point,
 # since both come off the same molecules in the same experiment.
 #
 # The composite uses the same faceted-composite machinery as Methbase
 # (methbase2.ra): metaDataUrl for the sample table, colorSettingsUrl for the
@@ -297,38 +301,41 @@
 #    bigBed-generic filter.<field> settings are NOT read by this type.  All
 #    three defaults are the full range, so nothing is hidden until the user
 #    narrows one.  Verified in the rendered UI:
 #      hgTrackUi?db=hg38&g=fiberSeqCompendium_PM00004_peaks
 #    draws min/max boxes for all three with the right limit hints.
 #
 # 5. Facet columns: only "sampleClass" is faceted.  facetedComposite.js offers
 #    a facet value only when it occurs more than once (a checkbox matching a
 #    single row is just a slow search box), so:
 #      accession  41 distinct, all count 1, and excluded anyway as primaryKey
 #      _sample    41 distinct, all count 1 - can never be a facet
 #      _cellType  14 distinct but only 2 with count > 1 (Lymphoblastoid 27,
 #                 Embryonic stem cell 2), so as a facet it drew two checkboxes
 #                 and left 12 samples unreachable.  Underscored, so it is a
 #                 searchable and sortable column instead.
-#      sampleClass 2 values, HPRC (20) and Common Cell Line (21), both count > 1.
-#                 Read from the fifth column of fiberSeqSamples.tsv, which
-#                 carries the lab's own classification (the Note column of
-#                 Mitchell's sample sheet).  It used to be derived from the
-#                 free-text cell type, which misfiled five lymphoblastoid lines
-#                 that are not HPRC - see the note below.  Still worth extending
-#                 when the lab sends real donor metadata (sex, population), which
-#                 would give more than one useful facet.
+#      sampleClass 3 values, HPRC (20), Common Cell Line (16) and Rare disease
+#                 sample (5), all count > 1.  Read from the fifth column of
+#                 fiberSeqSamples.tsv, which carries the lab's own
+#                 classification.  It used to be derived from the free-text cell
+#                 type, which misfiled five lymphoblastoid lines as HPRC.  Those
+#                 five - GM25455, GM25456, GM27730, GM28570, GM28572 - turned out
+#                 to be neither: Andrew Stergachis said on 2026-09-22 that they
+#                 are rare disease cases consented to broad genomic data sharing,
+#                 the first of a batch they intend to keep adding to, and asked
+#                 for a class of their own rather than filing them with the
+#                 common cell lines.
 #
 # 6. Subtracks need an explicit priority.  Without one they fall back to a label
 #    sort, which showed a sample's data types as Peaks, CpG, Acc on a first
 #    visit.  The script now numbers them sample-outer, declared-data-type-inner
 #    (i*10 + j + 1), which matches the row of data type checkboxes across the
 #    top of the table.  cartDump.c clears "<mdid>_*.priority" and writes its own
 #    on every submit, so this only sets the starting order.
 #
 #    The children INSIDE each multiWig need their own priority too, and there it
 #    is not cosmetic.  makeContainerTrack() in hg/hgTracks/container.c sorts a
 #    container's children with trackPriCmp, which compares priority alone and
 #    returns 0 on a tie, and slSort is not stable - so children left on the
 #    parent's inherited priority draw in an arbitrary order.  For cpgDiff that
 #    decides the picture: it is a solidOverlay and all four files hold the same
 #    value at a shared base, so the level drawn last is the colour the user sees.