d459a7a421c710541b9e29a43473f502b6d7c8c1 max Mon Sep 21 05:30:00 2026 -0700 hgTracks: the indel is before the shifted codon, not at it, refs #38298 The codon mouseover's note said the transcript has extra or missing bases compared to the genome "at this codon". It is not at it: a codon's transcript number is counted from its 5'-most base, so every codon 3' of an indel is flagged, and the indel that caused the shift always lies before it. On canFam3 NM_001131049.1 one 21-base insertion flags all 730 codons from p.129 to the end of the CDS, none before. diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c index 8803bbf7e55..c82fcfef41b 100644 --- src/hg/hgTracks/simpleTracks.c +++ src/hg/hgTracks/simpleTracks.c @@ -3376,31 +3376,31 @@ * transcript there is one count and "Codon" says it. */ boolean shifted = baseColorCodonIsShifted(codon); dyStringPrintf(codonDy, "<b>%s: </b> c.%d-%d (p.%d)<br>", shifted ? "Genomic codon number" : "Codon", cStart, cEnd, pPos); if (shifted) { int txCStart = (codon->txCodonIndex - 1) * 3 + 1; dyStringPrintf(codonDy, "<b>Transcript codon number: </b> " "c.%d-%d (p.%d)<br>", txCStart, txCStart+2, codon->txCodonIndex); dyStringPrintf(codonDy, "<b>Note: </b>This transcript's sequence has " "extra or missing bases compared to the genome " - "at this codon, so the genomic and transcript " + "before this codon, so the genomic and transcript " "codon numbers differ. " "<a target=_blank " "href=\"../FAQ/FAQgenes.html#txIndel\">" "Help</a><br>"); } if (!isEmpty(aaAbbr)) { if (aaName != NULL) dyStringPrintf(codonDy, "<b>Amino acid: </b> %s - %s<br>", aaAbbr, aaName); else dyStringPrintf(codonDy, "<b>Amino acid: </b> %s<br>", aaAbbr); } } else if (lf->tallStart < lf->tallEnd) {