8021b64b107e40cdbd45c2b76989bd61969205ed
chmalee
  Tue Nov 25 12:09:58 2025 -0800
Make hgvs searches highlight the ncbiRefSeqSelect table if that transcript is in there instead of the larger ncbiRefSeqCurated table. Fall back to ncbiRefSeqCurated, refs #36201

diff --git src/hg/lib/hgFind.c src/hg/lib/hgFind.c
index 14297b9b47f..bd4a6d6e1bf 100644
--- src/hg/lib/hgFind.c
+++ src/hg/lib/hgFind.c
@@ -3632,30 +3632,42 @@
         if (dyStringLen(dyWarn) > 0)
             mapErrCnt++;
         if (mapping)
             {
             char *trackTable;
             if (isEmpty(pslTable))
                 trackTable = "chromInfo";
             else if (startsWith("lrg", pslTable))
                 trackTable = "lrgTranscriptAli";
             else if (startsWith("wgEncodeGencode", pslTable))
                 trackTable = pslTable;
             else if (sameString("ncbiRefSeqPsl", pslTable))
                 {
                 if (startsWith("NM_", hgvs->seqAcc) || startsWith("NR_", hgvs->seqAcc) ||
                     startsWith("NP_", hgvs->seqAcc) || startsWith("YP_", hgvs->seqAcc))
+                    if (sameString(db, "hg38") || sameString(db, "hg19"))
+                        {
+                        struct dyString *selectCheck = sqlDyStringCreate("select count(*) from ncbiRefSeqSelect where name='%s'", hgvs->seqAcc);
+                        struct sqlConnection *conn = hAllocConn(db);
+                        int count = sqlQuickNum(conn, dyStringCannibalize(&selectCheck));
+                        hFreeConn(&conn);
+                        if (count > 0)
+                            trackTable = "ncbiRefSeqSelect";
+                        else
+                            trackTable = "ncbiRefSeqCurated";
+                        }
+                    else
                         trackTable = "ncbiRefSeqCurated";
                 else if (startsWith("XM_", hgvs->seqAcc) || startsWith("XR_", hgvs->seqAcc) ||
                          startsWith("XP_", hgvs->seqAcc))
                     trackTable = "ncbiRefSeqPredicted";
                 else
                     trackTable = "ncbiRefSeq";
                 }
             else if (sameString("ncbiRefSeqPslHistorical", pslTable))
                 trackTable = "ncbiRefSeqHistorical";
             else
                 trackTable = "refGene";
             dyStringPrintf(chromPosIndex, "%s%s%d%d", trackTable, mapping->chrom,
                     mapping->chromStart-padding, mapping->chromEnd+padding);
             if ((helper = hashFindVal(uniqHgvsPos, chromPosIndex->string)) != NULL)
                 {