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) {