1020ed9ae2ad60e3ec36657f14029485bb2ae0f7 kate Wed May 3 11:13:57 2017 -0700 Get bigBarChart custom track support mostly working. refs #18736 diff --git src/hg/hgc/barChartClick.c src/hg/hgc/barChartClick.c index e1689ce..7418989 100644 --- src/hg/hgc/barChartClick.c +++ src/hg/hgc/barChartClick.c @@ -61,30 +61,32 @@ *retAs = as; hasOffsets = ( asColumnFind(as, BARCHART_OFFSET_COLUMN) != NULL && asColumnFind(as, BARCHART_LEN_COLUMN) != NULL); hFreeConn(&conn); } struct bbiFile *bbi = bigBedFileOpen(file); struct lm *lm = lmInit(0); struct bigBedInterval *bb, *bbList = bigBedIntervalQuery(bbi, chrom, start, end, 0, lm); for (bb = bbList; bb != NULL; bb = bb->next) { char startBuf[16], endBuf[16]; char *row[32]; bigBedIntervalToRow(bb, chrom, startBuf, endBuf, row, ArraySize(row)); struct barChartBed *barChart = barChartBedLoadOptionalOffsets(row, hasOffsets); + if (barChart == NULL) + continue; if (sameString(barChart->name, item)) return barChart; } return NULL; } static struct barChartBed *getBarChartFromTable(struct trackDb *tdb, char *table, char *item, char *chrom, int start, int end) /* Retrieve barChart BED item from track table */ { struct sqlConnection *conn = hAllocConn(database); if (conn == NULL) return NULL; struct barChartBed *barChart = NULL; char **row; @@ -381,26 +383,20 @@ printf("<b>Genomic position: " "</b>%s <a href='%s&db=%s&position=%s%%3A%d-%d'>%s:%d-%d</a><br>\n", database, hgTracksPathAndSettings(), database, chartItem->chrom, chartItem->chromStart+1, chartItem->chromEnd, chartItem->chrom, chartItem->chromStart+1, chartItem->chromEnd); printf("<b>Strand: </b> %s\n", chartItem->strand); char *matrixUrl = NULL, *sampleUrl = NULL; struct barChartItemData *vals = getSampleVals(tdb, chartItem, &matrixUrl, &sampleUrl); if (vals != NULL) { // Print boxplot puts("<p>"); char *df = makeDataFrame(tdb->table, vals); char *colorFile = makeColorFile(tdb); printBoxplot(df, item, chartItem->name2, units, colorFile); -/* - if (matrixUrl != NULL) - printf("<br>View <a href='%s'>data matrix</a> and <a href='%s'>sample file</a>\n", - matrixUrl, sampleUrl); -*/ printf("<br><a href='%s'>View data for all samples</a>\n", df); } puts("<br>"); -printTrackHtml(tdb); }