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);
 }