03eac611bbafeb3463e1efcea835f85b4198092a max Wed May 21 08:02:11 2025 -0700 adapting intron tooltip text for genePred, refs #33749 diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c index 46dff1be32e..e2759204520 100644 --- src/hg/hgTracks/simpleTracks.c +++ src/hg/hgTracks/simpleTracks.c @@ -3061,53 +3061,60 @@ codonex = (codonex > picEnd) ? picEnd : codonex; int w = codonex - codonsx; if (w > 0) { // temporarily remove the mouseOver from the lf, since linkedFeatureMapItem will always // prefer a lf->mouseOver over the itemName char *oldMouseOver = lf->mouseOver; lf->mouseOver = NULL; dyStringClear(codonDy); // if you change this text, make sure you also change hgTracks.js:mouseOverToLabel if (!isEmpty(existingText)) dyStringPrintf(codonDy, "Transcript: %s
", existingText); int codonHgvsIx = (codon->codonIndex - 1) * 3; if (codonHgvsIx >= 0) - dyStringPrintf(codonDy, "cDNA: c.%d-%d
", codonHgvsIx + 1, codonHgvsIx + 3); + dyStringPrintf(codonDy, "Codons: c.%d-%d
", codonHgvsIx + 1, codonHgvsIx + 3); // if you change the text below, also change hgTracks:mouseOverToExon dyStringPrintf(codonDy, "Strand: %c
Exon: %s %d of %d
%s", strandChar, exonIntronText, exonIntronNumber, numExonIntrons, phaseText); tg->mapItem(tg, hvg, item, codonDy->string, tg->mapItemName(tg, item), sItem, eItem, codonsx, y, w, heightPer); // and restore the mouseOver lf->mouseOver = oldMouseOver; } } } } } else // either an intron, or else an exon zoomed out too far for codons (or no codons) { - char *sep = ""; - if (!isEmpty(existingText)) - sep = "
"; - // if you change this text, make sure you also change hgTracks.js:mouseOverToLabel // if you change the text below, also change hgTracks:mouseOverToExon - safef(mouseOverText, sizeof(mouseOverText), "Transcript: %s%scDNA: Zoom in to show position
Strand: %c
Exon: %s %d of %d
%s", - existingText, sep, strandChar, exonIntronText, exonIntronNumber, numExonIntrons, phaseText); + char *posNote = ""; + char *exonOrIntron = "Intron"; + if (isExon) + { + posNote = "Codons: Zoom in to show cDNA position
"; + exonOrIntron = "Exon"; + } + + + safef(mouseOverText, sizeof(mouseOverText), "Transcript: %s
%s" + "Strand: %c
%s: %s %d of %d
%s", + existingText, posNote, strandChar, exonOrIntron, exonIntronText, + exonIntronNumber, numExonIntrons, phaseText); // temporarily remove the mouseOver from the lf, since linkedFeatureMapItem will always // prefer a lf->mouseOver over the itemName char *oldMouseOver = lf->mouseOver; lf->mouseOver = NULL; tg->mapItem(tg, hvg, item, mouseOverText, tg->mapItemName(tg, item), sItem, eItem, sx, y, w, heightPer); // and restore the old mouseOver lf->mouseOver = oldMouseOver; picStart = ex; // prevent pileups. is this right? add 1? does it work? // JC: Why do we care about pileups? First mapbox drawn wins. } } }