fa5b31d305066e1938953374d80b3782ef87e239 max Mon Sep 7 23:23:40 2026 -0700 Position box: accept a bare codon number, and a range of codon numbers "KAT6A p.495_533" used to land on codon 495 and silently drop the end of the range, and a bare codon number after a transcript accession was not understood at all, so "ENST00000265713.8 p.495" fell through the HGVS code and ended up on an unrelated locus. Nucleotide ranges already worked. The pseudo-HGVS layer now takes an optional _end on a bare codon number, and accepts a bare codon number or range after an NM_ or ENST accession as well as after a gene symbol, looking up the reference amino acids that HGVS wants and the user did not type. The accession forms require a literal "p", so "NM_006766.5 1483" keeps meaning what it meant. A hyphen is still not a range separator: c.1483-1599 is the HGVS intronic position and stays that way. Also fixes a read past the end of the protein sequence when the codon number was larger than the protein, and documents codon ranges in query.html. refs #38285 diff --git src/hg/lib/tests/expected/hgvs/validTerms.txt src/hg/lib/tests/expected/hgvs/validTerms.txt index 558bfd83035..a29a90f8c10 100644 --- src/hg/lib/tests/expected/hgvs/validTerms.txt +++ src/hg/lib/tests/expected/hgvs/validTerms.txt @@ -32,15 +32,25 @@ chr1 32781089 32781101 YARS1 p.Val153_Val156del 0 - chr1 32806523 32806535 YARS1 p.Val153_Val156del 0 - chr1 11964767 11964770 PLOD1 Glu532del 0 + chr1 11966259 11966262 PLOD1 Glu532del 0 + chr1 40092118 40092136 PPT1 p.Gln91_Cys96delinsPhe 0 - chr1 40080426 40080444 PPT1 p.Gln91_Cys96delinsPhe 0 - chr1 11964767 11964770 PLOD1:p.532 0 + chr1 11966259 11966262 PLOD1:p.532 0 + # From a user via b0b: chr3 38597785 38597788 NM_198056.3:pAla735Val 0 - chr3 38555661 38555664 NM_198056.3:pArg1512Trp 0 - chr20 33443333 33443334 NM_003098.2:c.287G>C 0 - chr17 43093299 43093300 NM_007294.3:c.2231C>A 0 - chr17 43093299 43093300 NM_007294.3(BRCA1):c.2231C>A 0 - + +# Bare codon numbers and ranges of codon numbers, refs #38285 +chr8 41955408 41955411 KAT6A p.495 0 - +chr8 41949362 41955411 KAT6A p.495_533 0 - +chr8 41949362 41955411 KAT6A p.Lys495_Ser533 0 - +chr8 41955408 41955411 NM_006766.5 p.495 0 - +chr8 41949362 41955411 NM_006766.5 p.495_533 0 - +chr8 41955408 41955411 ENST00000265713.8 p.495 0 - +chr8 41949362 41955411 ENST00000265713.8 p.495_533 0 - +chr8 41949362 41955411 KAT6A c.1483_1599 0 -