262c843cbd3e96a92f7f56bab9054c5fcdf7541c
gperez2
Mon Aug 25 09:19:43 2025 -0700
Making updates to the C code related to the bigDbSnp mouseOver, refs #36249
diff --git src/hg/hgTracks/variation.c src/hg/hgTracks/variation.c
index b6fa8a222c9..b804da0d58e 100644
--- src/hg/hgTracks/variation.c
+++ src/hg/hgTracks/variation.c
@@ -2730,32 +2730,39 @@
if (cartUsualBooleanClosestToHome(cart, tdb, FALSE, "label.maf", FALSE))
{
bdsAppendMaf(bds, freqSourceIx, dy);
}
// If the alleles are too long, print the class as a backup.
if (tooLong)
dyStringPrintf(dy, " %s", bigDbSnpClassToString(bds->class));
if (cartUsualBooleanClosestToHome(cart, tdb, FALSE, "label.func", FALSE))
bdsAppendFunc(bds, dy);
return dyStringCannibalize(&dy);
}
static char *bdsMouseOver(struct bigDbSnp *bds)
/* Simulate mouseover with options... */
{
-struct dyString *dy = dyStringCreate("%s:", bds->name);
+ struct dyString *dy = dyStringNew(256);
+ // dbSNP ID
+ dyStringPrintf(dy, "dbSNP ID: %s
", bds->name);
+ // Reference/alt alleles
+ dyStringAppend(dy, "Ref/Alt allele(s): ");
bdsAppendRefAlt(bds, dy);
+ dyStringAppend(dy, "
");
+ // Functional effects
+ dyStringAppend(dy, "Functional effects: ");
bdsAppendFunc(bds, dy);
return dyStringCannibalize(&dy);
}
static void paranoidCheckMnvLengths(struct bigDbSnp *bds)
/* Make sure an mnv variant's alleles are all the same length. */
{
if (bds->class != bigDbSnpMnv)
errAbort("paranoidCheckMnvLengths: expected %s class=bigDbSnpMnv=%d, got %d",
bds->name, bigDbSnpMnv, bds->class);
int refLen = strlen(bds->ref);
if (refLen != bds->chromEnd - bds->chromStart)
errAbort("paranoidCheckMnvLengths: %s: length of ref '%s' is %d but chromEnd - chromStart is %d",
bds->name, bds->ref, refLen, bds->chromEnd - bds->chromStart);
int aIx;