40b4fc89ec72c22cae51bf9a8b9a7e8dd887eebf
chmalee
  Thu Jun 4 15:34:16 2026 -0700
Show MANE-relative HGVS terms on myVariants SNV detail pages, refs #33808

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

diff --git src/hg/inc/hgHgvs.h src/hg/inc/hgHgvs.h
index 752cb06b495..79eab3351a1 100644
--- src/hg/inc/hgHgvs.h
+++ src/hg/inc/hgHgvs.h
@@ -1,28 +1,30 @@
 /* hgHgvs - support for a subset of the Human Genome Variation Society's (HGVS) nomenclature
  * for describing variants with respect to a specific gene sequence (or genome assembly).
  * See http://www.hgvs.org/mutnomen/ */
 
 /* Copyright (C) 2016 The Regents of the University of California
  * See kent/LICENSE or http://genome.ucsc.edu/license/ for licensing information. */
 
 #ifndef HGHGVS_H
 #define HGHGVS_H
 
 #include "bed.h"
 #include "dnaseq.h"
+#include "genePred.h"
 #include "seqWindow.h"
+#include "trackDb.h"
 #include "variantProjector.h"
 
 /* The full nomenclature is extremely complicated, able to encode things such as gene fusions and
  * advanced clinical info (e.g. "=/" for somatic mosaicism, "=//" for chimerism).  UCSC supports
  * substitutions, insertions, deletions, duplications and inversions.  Conversions are parsed out
  * of HGVS terms but not detected in genomic variants when generating HGVS terms.
  * UCSC does not fully support repeated sequences because in practice they seem to be frequently
  * incorrect and inherently error-prone.
  *
  * At the same time, since the spec has repeatedly changed, we will need to be flexible in our
  * parsing in order to support previously published HGVS (or HGVS-like) terms. */
 
 enum hgvsSeqType
     // HGVS describes changes relative to several types of sequence: genomic, coding, protein, etc
     {
@@ -270,16 +272,23 @@
  * gSeqWin must already have at least the correct seqName if not the surrounding sequence.
  * If breakDelIns, then show deleted bases (eg show 'delAGinsTT' instead of 'delinsTT'). */
 
 char *hgvsCFromVpTx(struct vpTx *vpTx, struct seqWindow *gSeqWin, struct psl *txAli,
                     struct genbankCds *cds,  struct dnaSeq *txSeq, boolean breakDelIns);
 /* Return an HGVS c. (coding transcript) term for a variant projected onto a transcript w/cds.
  * gSeqWin must already have at least the correct seqName (chrom) if not the surrounding sequence.
  * If breakDelIns, then show deleted bases (eg show 'delAGinsTT' instead of 'delinsTT'). */
 
 char *hgvsPFromVpPep(struct vpPep *vpPep, struct dnaSeq *protSeq, boolean addParens);
 /* Return an HGVS p. (protein) term for a variant projected into protein space.
  * Strict HGVS compliance requires parentheses around predicted protein changes (addParens=TRUE),
  * but nobody seems to do that in practice.
  * Return NULL if an input is NULL. */
 
+char *txSeqFromGp(char *db, struct genePred *gp);
+/* Return transcribed-from-genome sequence for gp */
+
+struct trackDb *hgvsDefaultGeneTrack(char *db);
+/* Return trackDb for the assembly's preferred gene-model track (MANE first), or NULL
+ * if none is present.  Caller checks tdb->type for genePred vs bigGenePred. */
+
 #endif /* HGHGVS_H */