be4ae656ffd6994f4d5de689ffe4117861441181
lrnassar
  Wed May 13 19:18:41 2026 -0700
Note pre-existing hg19-pos-in-name observation in mpravardb makedoc. refs #37359

Surfaced during sandbox validation of the 2026-05-14 script rebuild.
For ~73k non-rs rows the chr:pos:ref>alt name carries the original
hg19 pos because csv_to_bed builds the name before liftOver runs.
Display is unaffected; only relevant if a user copies the name field
expecting hg38 coordinates.  Documented for whenever a future rebuild
gets the post-Step-2 name-rewrite fix folded in.

diff --git src/hg/makeDb/doc/hg38/mpra.txt src/hg/makeDb/doc/hg38/mpra.txt
index ab6a5195d24..abd93924541 100644
--- src/hg/makeDb/doc/hg38/mpra.txt
+++ src/hg/makeDb/doc/hg38/mpra.txt
@@ -142,30 +142,42 @@
 #
 #   Punted to Redmine for Max / Tao Wang (status as of 2026-05-14):
 #   - 5,092 rows (Mouri, Tewhey) have pvalue > 1 (impossible; max 8.96).
 #     FDR appears valid; pvalue field looks like a t-statistic mislabeled.
 #     Upstream curators acknowledged; fix is weeks out.  We added a
 #     "Note (pending upstream fix)" paragraph to mpraVarDb.html bracketed
 #     by an HTML comment "TEMP: remove once Tao Wang fixes..."  --
 #     remove that paragraph when the next CSV snapshot lands.
 #   - 60,860 rows have description="GWAS" (no detail) -- upstream limit.
 #   - 1,069 rows have multi-allelic alt collapsed into one row (e.g.
 #     "T/A,G") with one log2FC/pvalue.  Upstream-collapsed; per-allele
 #     values not recoverable from the CSV.
 #   - 969 rows are colored red (FDR<0.05) but pvalue=nan -- mouseOver
 #     reads "FDR: 0.001 / p-value: NA" (NA now, formerly "nan").
 #     Defensible; FDR can be reported without per-test p.
+#   - hg19-coordinate position in the chr:pos:ref>alt name field of
+#     ~73k non-rs rows.  Affects only rows that came from the CSV's
+#     hg19 portion (210k of 239k rows) and lack an rsID.  csv_to_bed
+#     builds the name from the raw CSV pos before liftOver runs, so
+#     the row's chromStart/chromEnd are correctly hg38 but the name
+#     still carries the original hg19 pos (e.g. row at chr19:11089230
+#     has name "chr19:11199907:A>T").  Display is unaffected (browser
+#     uses chromStart); only matters if a user copies the name field
+#     expecting hg38 coordinates.  Pre-existing issue, not introduced
+#     by the 2026-05-14 rebuild; surfaced during sandbox validation.
+#     Fix would require post-processing the lifted BED to rewrite the
+#     pos inside each name -- one-line awk in main() after Step 2.
 #
 # QA-2 build-script rebuild 2026-05-14 (RM #37359, Lou):
 #   Items handled in mpravardbToBed.py + mpravardb.as, single rebuild:
 #   - sanitize_text now maps "None"/"NA"/"N/A"/"null"/"NULL"/"nan" to
 #     empty string after the existing UTF-8 sanitization.  Removed
 #     55,108 stale sentinels (53,144 disease="None" eQTL rows +
 #     1,964 disease="NA" Kircher rows + 44 ref/alt=NA Myint rows).
 #   - sanitize_text applies a literal-replacement table for three
 #     upstream typos: "30 UTR" -> "3'UTR" (26,546 Schuster description
 #     rows), "Familial hypercholesterol emia" -> "Familial
 #     hypercholesterolemia" (2,176 Kircher disease rows), "Alchol use
 #     disorder" -> "Alcohol use disorder" (88 Rao disease rows).
 #   - New fmt_mo() renders NaN floats as "NA" in the mouseOver helper
 #     fields rather than literal "nan"; 30,921 rows fixed.
 #   - Name + rsid handling tightened: a value is treated as an rsID