5d23e68307f894bdcd024c138adc588591eceaaa
lrnassar
  Mon Jun 29 12:11:44 2026 -0700
Polish TAD description pages and bold the track mouseOvers. refs #21599

Description pages (tads.html on hg19, hg38, mm10, mm39): add a Methods resolution
summary table (track / feature / calling method / resolution), placed at the end of
the Description section; add GitHub source links (makedoc, build scripts, trackDb.ra)
to the Methods section; sentence-case the "How to use these tracks" heading.

mouseOvers: wrap the field labels in <b> across all subtracks - Dixon ("Cell type:"),
Schmitt ("Sample:"), ENCODE ("Biosample:" / "Arrowhead corner score:", now on separate
lines), 3D Genome Browser ("3DGB TAD domain:"), and McArthur boundary stability
("Boundary recurrent:" / "Percentile:"). Updated the ENCODE and 3D Genome Browser build
scripts so regenerated stanzas carry the same formatting.

diff --git src/hg/makeDb/scripts/tad/buildTads3dgb.py src/hg/makeDb/scripts/tad/buildTads3dgb.py
index d0861fbd556..fc582ebdc54 100644
--- src/hg/makeDb/scripts/tad/buildTads3dgb.py
+++ src/hg/makeDb/scripts/tad/buildTads3dgb.py
@@ -130,31 +130,31 @@
         cond   = {"normal": "Normal", "cancer": "Cancer"}.get(r.get("normal_cancer",""), "Unknown")
         treat  = {"baseline": "Baseline", "pert": "Perturbation"}.get(r.get("baseline_pert",""), "Unknown")
         prov   = {"have": "Also in another UCSC track", "novel": "Novel to browser"}.get(r.get("have_novel",""), "Unknown")
         yr     = r.get("year") or a.get("year", "")     # classification (human) or API (mouse)
         try:
             year = str(int(float(yr))) if yr else "Unknown"
         except ValueError:
             year = "Unknown"
         study  = clean(r.get("refNo") or a.get("refNo")) or "Unknown"
         desc   = clean(a.get("description")) or name
 
         # display name: underscores -> spaces, sentence-cased (logic still keys on id/name)
         dname = scap(name.replace("_", " "))
         short = scap(shortlab(name))
         long  = "%s TAD domains (%s, %s, %s)" % (dname, organ, assay, study)
-        mouse = "3DGB TAD domain: %s (%s, %s)" % (dname, organ, assay)
+        mouse = "<b>3DGB TAD domain:</b> %s (%s, %s)" % (dname, organ, assay)
 
         # bed4: format-only. sort -k1,1 -k2,2n, then chrom/start/end + display name (-tab: name has spaces).
         bb = os.path.join(BBDIR, did + ".bb")
         tmp = os.path.join(BBDIR, did + ".bed4")
         with open(tmp, "w") as out:
             p1 = subprocess.run(["sort", "-k1,1", "-k2,2n", bed],
                                 stdout=subprocess.PIPE, check=True, text=True)
             for line in p1.stdout.splitlines():
                 f = line.split("\t")
                 if len(f) < 3:
                     continue
                 out.write("%s\t%s\t%s\t%s\n" % (f[0], f[1], f[2], dname))
         rc = subprocess.run(["bedToBigBed", "-type=bed4", "-tab", tmp, CHROMS, bb],
                             stderr=subprocess.PIPE, text=True)
         os.remove(tmp)