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 @@ -1,46 +1,56 @@ # db: hg38 # inputFile: input/hgvs/validTerms.txt # A variant that is famously known as "MTHFR C677T" or "MTHFR 677C>T" -- but the 677 is incorrect (from an old sequence ~1995): chr1 11796320 11796321 NM_005957.4:c.665C>T 0 - # Same variant in LRG transcript, protein and genomic coords: chr1 11796320 11796321 LRG_726t1:c.665C>T 0 - chr1 11796319 11796322 LRG_726p1:p.Ala222Val 0 - chr1 11796320 11796321 LRG_726:g.14783C>T 0 + # These three are equivalent (although p. is less specific): chr11 112088972 112088973 NM_003002.3:c.276C>A 0 + chr11 112088970 112088973 NP_002993.1:p.Asp92Glu 0 + chr11 112088970 112088973 NP_002993.1:p.D92E 0 + # This is not HGVS but seems to be a commonly requested format and is easy to transform into the internal representation of HGVS: chr2 29193604 29193607 ALK G1494E 0 - # More gene symbol HGVS-ish chr1 8358598 8358601 RERE:Thr758Serfs 0 - chr1 8361232 8361235 RERE:Thr758Serfs 0 - chr1 155240657 155240660 GBA1:p.Leu29Alafs*18 0 - chr1 155239721 155239724 GBA1:p.Leu29Alafs*18 0 - chr1 9262237 9262240 H6PD Val320= 0 + chr1 9264518 9264521 H6PD Val320= 0 + chr1 9262270 9262273 H6PD Val320= 0 + chr1 9262243 9262246 H6PD Val320= 0 + chr1 9262249 9262252 H6PD Val320= 0 + chr1 11802930 11802936 MTHFR Pro101_Gly102insLeuTyrIleAspValThrTrpHisProAlaGlyAspPro 0 - chr1 11801329 11801335 MTHFR Pro101_Gly102insLeuTyrIleAspValThrTrpHisProAlaGlyAspPro 0 - chr1 11802933 11802939 MTHFR Pro101_Gly102insLeuTyrIleAspValThrTrpHisProAlaGlyAspPro 0 - chr1 11800245 11800251 MTHFR Pro101_Gly102insLeuTyrIleAspValThrTrpHisProAlaGlyAspPro 0 - 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 -