f04df66eae07dfd571642966b1d787256ffaf825
braney
  Wed Jan 18 14:32:49 2017 -0800
cytoBandIdeogram on assembly hubs

diff --git src/hg/hgTracks/cytoBandTrack.c src/hg/hgTracks/cytoBandTrack.c
index 0ec2154..03089d5 100644
--- src/hg/hgTracks/cytoBandTrack.c
+++ src/hg/hgTracks/cytoBandTrack.c
@@ -80,30 +80,49 @@
 else
     mapBoxHc(hvg, band->chromStart, band->chromEnd, x1,y,w,heightPer, tg->track,
 	     band->name, band->name);
 }
 
 
 static void loadCytoBands(struct track *tg)
 /* Load up simpleRepeats from database table to track items. */
 {
 bedLoadItem(tg, "cytoBand", (ItemLoader)cytoBandLoad);
 }
 
 static void loadCytoBandsIdeo(struct track *tg)
 /* Load up cytoBandIdeo from database table to track items. */
 {
+if (tg->isBigBed)
+    { 
+    struct lm *lm = lmInit(0);
+    int start = 0;
+    int end = hChromSize(database, chromName);
+    struct bigBedInterval *bb, *bbList = bigBedSelectRange(tg, chromName, start, end, lm);
+    char *bedRow[32];
+    char startBuf[16], endBuf[16];
+
+    for (bb = bbList; bb != NULL; bb = bb->next)
+        {
+        bigBedIntervalToRow(bb, chromName, startBuf, endBuf, bedRow, ArraySize(bedRow));
+        struct cytoBand *bed = cytoBandLoad(bedRow);
+        slAddHead(&tg->items, bed);
+        }
+    slReverse(&tg->items);
+    lmCleanup(&lm);
+    return;
+    }
 char query[256];
 sqlSafef(query, sizeof(query),
       "select * from cytoBandIdeo where chrom like '%s'", chromName);
 if(hTableExists(database, "cytoBandIdeo"))
     bedLoadItemByQuery(tg, "cytoBandIdeo", query, (ItemLoader)cytoBandLoad);
 if(slCount(tg->items) == 0)
     {
     tg->limitedVisSet = TRUE;
     tg->limitedVis = tvHide;
     }
 }
 
 static void freeCytoBands(struct track *tg)
 /* Free up isochore items. */
 {