15bdf707a4bde0a281109bb810499a2fa98ef6ac
lrnassar
Tue Jul 14 07:48:05 2026 -0700
Fix stale "row Y" reference in popEVE trailingFix comment per CR feedback. refs #37791
The amino acid row reorder made P the last row, not Y, but the trailingFix explanation in
the converter comment and the makedoc still said "row Y, last column". Reworded both to be
order-agnostic ("last row, last column"). Documentation only; the code already operates
positionally on labelParts[-1].
diff --git src/hg/makeDb/scripts/popEve/vcfToPopEveHeatmap.py src/hg/makeDb/scripts/popEve/vcfToPopEveHeatmap.py
index a40682bd110..ceb315681c7 100644
--- src/hg/makeDb/scripts/popEve/vcfToPopEveHeatmap.py
+++ src/hg/makeDb/scripts/popEve/vcfToPopEveHeatmap.py
@@ -185,33 +185,33 @@
scoreParts.append(r3(pe))
cls = classify(float(pe))
# Mouseover rendered as HTML (<br>/<b>). No commas inside labels (the field is
# comma-split by the renderer); values use '.' and '/' only, so labels are unquoted.
lbl = ("%s%s→%s<br><b>popEVE:</b> %s (%s)<br><b>EVE:</b> %s<br>"
"<b>ESM1v:</b> %s<br><b>popAdj:</b> EVE %s / ESM1v %s<br><b>gap:</b> %s" %
(wt, protPos, aa, r3(pe), cls, comp(eve), comp(esm), comp(paEve),
comp(paEsm), comp(gap)))
labelParts.append(lbl)
else:
scoreParts.append('')
labelParts.append('')
# The heatmap renderer parses the score array with chopCommas (keeps a trailing empty
# field) but the label array with chopByCharRespectDoubleQuotesKeepEmpty (drops one
- # trailing empty field). When the very last cell (row Y, last column) is empty - common on
- # minus-strand genes whose last column is the start codon, whose M1 substitutions are
- # 'nan' and were skipped - the two field counts disagree and the track aborts. Guarantee a
+ # trailing empty field). When the very last cell (last row, last column) has no scored
+ # substitution - common, since each codon has only a few single-nucleotide-reachable
+ # substitutions - the two field counts disagree and the track aborts. Guarantee a
# non-empty final label cell; the empty score keeps that cell uncolored (background).
if labelParts[-1] == '':
labelParts[-1] = '(no popEVE score)'
stats['trailingFix'] += 1
fields = [
chrom, chromStart, chromEnd,
gene, bedScore, strand,
chromStart, chromEnd, 0,
nCols,
','.join(str(s) for s in blockSizes) + ',',
','.join(str(s) for s in relStarts) + ',',
rowCount, labels,
colorBounds, COLOR_VALUES,
','.join(scoreParts), ','.join(labelParts),