c8c7f5c3d5b590e37dfd321d99b7dd3f1baaa3c1 braney Tue Apr 9 13:12:00 2019 -0700 some tweaks to GDC cancer track, bigBed filters, and lollipop manual ranges diff --git src/hg/hgTracks/lolly.c src/hg/hgTracks/lolly.c index 3b4c7f7..f0a5c7d 100644 --- src/hg/hgTracks/lolly.c +++ src/hg/hgTracks/lolly.c @@ -169,52 +169,52 @@ slAddHead(&popList, pop); pop->val = val; pop->start = atoi(bedRow[1]); pop->end = atoi(bedRow[2]); pop->name = cloneString(bedRow[3]); count++; sumData += val; sumSquares += val * val; if (val > maxVal) maxVal = val; if (val < minVal) minVal = val; } if (count == 0) - tg->lollyCart->upperLimit = tg->lollyCart->lowerLimit = NAN; -else + lollyCart->upperLimit = lollyCart->lowerLimit = NAN; +else if (lollyCart->autoScale == wiggleScaleAuto) { - tg->lollyCart->upperLimit = maxVal; - tg->lollyCart->lowerLimit = minVal; + lollyCart->upperLimit = maxVal; + lollyCart->lowerLimit = minVal; } -double range = maxVal - minVal; +double range = lollyCart->upperLimit - lollyCart->lowerLimit; int usableHeight = trackHeight - 2 * 5 * 2; for(pop = popList; pop; pop = pop->next) { pop->radius = 5; pop->color = MG_RED; if (range == 0.0) { pop->height = usableHeight ; pop->color = lollyPalette[0] | 0xff000000; } else { - pop->height = usableHeight * (pop->val - minVal) / range + 5 * 2; - int colorIndex = 8 * (pop->val - minVal) / range; + pop->height = usableHeight * (pop->val - lollyCart->lowerLimit) / range + 5 * 2; + int colorIndex = 8 * (pop->val - lollyCart->lowerLimit) / range; pop->color = lollyPalette[colorIndex] | 0xff000000; } } /* 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; @@ -248,30 +248,32 @@ int minHeightPixels; int defaultHeight; /* pixels per item */ int settingsDefault; cartTdbFetchMinMaxPixels(cart, tdb, MIN_HEIGHT_PER, atoi(DEFAULT_HEIGHT_PER), atoi(DEFAULT_HEIGHT_PER), &minHeightPixels, &maxHeightPixels, &settingsDefault, &defaultHeight); lollyCart->height = defaultHeight; lollyCart->autoScale = wigFetchAutoScaleWithCart(cart,tdb, tdb->track, NULL); double tDbMinY; /* data range limits from trackDb type line */ double tDbMaxY; /* data range limits from trackDb type line */ char *trackWords[8]; /* to parse the trackDb type line */ int trackWordCount = 0; /* to parse the trackDb type line */ wigFetchMinMaxYWithCart(cart, tdb, tdb->track, &lollyCart->minY, &lollyCart->maxY, &tDbMinY, &tDbMaxY, trackWordCount, trackWords); +lollyCart->upperLimit = lollyCart->maxY; +lollyCart->lowerLimit = lollyCart->minY; return lollyCart; } void lollyMethods(struct track *track, struct trackDb *tdb, int wordCount, char *words[]) /* bigLolly track type methods */ { struct lollyCartOptions *lollyCart = lollyCartOptionsNew(cart, tdb, wordCount, words); char *ourWords[2]; ourWords[0] = "bigBed"; ourWords[1] = "4"; bigBedMethods(track, tdb,2,ourWords); if (tdb->visibility == tvDense) return;