2424c1937ada0fcaf1cd250108af48b77a59e021 braney Thu May 16 19:46:33 2019 -0700 some tweaks to lollipops diff --git src/hg/hgTracks/lollyTrack.c src/hg/hgTracks/lollyTrack.c index 8771ee8..89960ca 100644 --- src/hg/hgTracks/lollyTrack.c +++ src/hg/hgTracks/lollyTrack.c @@ -66,30 +66,31 @@ mapBoxHgcOrHgGene(hvg, winStart, winEnd, xOff, yOff, width, trackHeight, tg->track, "", buffer, "hgTracks", FALSE, NULL); } // first draw the lines so they won't overlap any lollies for (pop = popList; pop; pop = pop->next) { int sx = ((pop->start - seqStart) + .5) * scale + xOff; // x coord of center (lower region) hvGfxLine(hvg, sx, yOff + trackHeight, sx , yOff+(trackHeight - pop->height), MG_GRAY); } // now draw the sucker part! for (pop = popList; pop; pop = pop->next) { int sx = ((pop->start - seqStart) + .5) * scale + xOff; // x coord of center (lower region) hvGfxCircle(hvg, sx, yOff + trackHeight - pop->radius - pop->height, pop->radius, pop->color, TRUE); + hvGfxCircle(hvg, sx, yOff + trackHeight - pop->radius - pop->height, pop->radius, MG_BLACK, FALSE); if (!noMapBoxes) mapBoxHgcOrHgGene(hvg, pop->start, pop->end, sx - pop->radius, yOff + trackHeight - pop->radius - pop->height - pop->radius, 2 * pop->radius,2 * pop->radius, tg->track, pop->name, pop->name, NULL, TRUE, NULL); } } void lollyLeftLabels(struct track *tg, int seqStart, int seqEnd, struct hvGfx *hvg, int xOff, int yOff, int width, int height, boolean withCenterLabels, MgFont *font, Color color, enum trackVisibility vis) // draw the labels on the left margin { struct lollyCartOptions *lollyCart = tg->lollyCart; int fontHeight = tl.fontHeight+1; int centerLabel = (height/2)-(fontHeight/2); @@ -236,31 +237,31 @@ double range = lollyCart->upperLimit - lollyCart->lowerLimit; int usableHeight = trackHeight - 2 * LOLLY_DIAMETER; for(pop = popList; pop; pop = pop->next) { pop->radius = lollyCart->radius; pop->color = MG_RED; if (range == 0.0) { pop->height = usableHeight ; pop->color = lollyPalette[0] | 0xff000000; } else { pop->height = usableHeight * (pop->val - lollyCart->lowerLimit) / range + LOLLY_DIAMETER; - int colorIndex = 8 * (pop->val - lollyCart->lowerLimit) / range; + int colorIndex = floor(9.99 * (pop->val - lollyCart->lowerLimit) / range ); pop->color = lollyPalette[colorIndex] | 0xff000000; } } #ifdef NOTUSED // a method of scaling assuming a sort of normal distribution double average = sumData/count; double stdDev = calcStdFromSums(sumData, sumSquares, count); for(pop = popList; pop; pop = pop->next) { if (pop->val > average + stdDev / 5) { pop->color = MG_RED; pop->radius = 8; pop->height = 3 * tl.fontHeight;