8f4ecfd5b70e1e679ad0044e715986489bcf6977 giardine Thu Nov 4 10:38:46 2010 -0700 Don't trust freq column to have data or to match the allele count, handle blank, error on mismatch diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c index 958fc1e..fe89836 100644 --- src/hg/hgTracks/simpleTracks.c +++ src/hg/hgTracks/simpleTracks.c @@ -9366,33 +9366,35 @@ /* get allele(s) to display */ char *allele[8]; char *freq[8]; int allTot = 0; int x1 = round((double)((int)myItem->chromStart-winStart)*scale) + xOff; int x2 = round((double)((int)myItem->chromEnd-winStart)*scale) + xOff; int w = x2-x1; if (w < 1) w = 1; char *nameCopy = cloneString(myItem->name); char *allFreqCopy = cloneString(myItem->alleleFreq); int cnt = chopByChar(nameCopy, '/', allele, myItem->alleleCount); if (cnt != myItem->alleleCount) errAbort("Bad allele name %s", myItem->name); -chopByChar(allFreqCopy, ',', freq, myItem->alleleCount); +int fcnt = chopByChar(allFreqCopy, ',', freq, myItem->alleleCount); +if (fcnt != myItem->alleleCount && fcnt != 0) + errAbort("Bad freq for %s", myItem->name); int i = 0; -for (i=0;i<myItem->alleleCount;i++) +for (i=0;i<fcnt;i++) allTot += atoi(freq[i]); /* draw a tall box */ if (sameString(display, "freq")) { if (allTot == 0) { pgSnpDrawScaledBox(hvg, myItem->chromStart, myItem->chromEnd, scale, xOff, y, tg->heightPer, MG_GRAY); } else { /* stack boxes colored to match alleles */ Color allC = MG_BLACK; int yCopy = y; for (i=0;i<myItem->alleleCount;i++) {