6b60107926297f1aea89d0a5817970d10bebe78d
braney
  Fri Feb 17 10:19:57 2017 -0800
support chrom,chromStart, and chromEnd as bigBed labels

diff --git src/hg/hgTracks/bigBedTrack.c src/hg/hgTracks/bigBedTrack.c
index 880b0a7..02cc6b4 100644
--- src/hg/hgTracks/bigBedTrack.c
+++ src/hg/hgTracks/bigBedTrack.c
@@ -126,31 +126,45 @@
 // Build a label for a bigBedTrack from the requested label fields.
 {
 char *labelSeparator = stripEnclosingDoubleQuotes(trackDbSettingClosestToHome(track->tdb, "labelSeparator"));
 if (labelSeparator == NULL)
     labelSeparator = "/";
 char *restFields[256];
 chopTabs(cloneString(bb->rest), restFields);
 struct dyString *dy = newDyString(128);
 boolean firstTime = TRUE;
 struct slInt *labelInt = track->labelColumns;
 for(; labelInt; labelInt = labelInt->next)
     {
     if (!firstTime)
         dyStringAppend(dy, labelSeparator);
 
+    switch(labelInt->val)
+        {
+        case 0:
+            dyStringAppend(dy, chromName);
+            break;
+        case 1:
+            dyStringPrintf(dy, "%d", bb->start);
+            break;
+        case 2:
+            dyStringPrintf(dy, "%d", bb->end);
+            break;
+        default:
             dyStringPrintf(dy, "%s", restFields[labelInt->val - 3]);
+            break;
+        }
     firstTime = FALSE;
     }
 return dyStringCannibalize(&dy);
 }
 
 void bigBedAddLinkedFeaturesFromExt(struct track *track,
 	char *chrom, int start, int end, int scoreMin, int scoreMax, boolean useItemRgb,
 	int fieldCount, struct linkedFeatures **pLfList, int maxItems)
 /* Read in items in chrom:start-end from bigBed file named in track->bbiFileName, convert
  * them to linkedFeatures, and add to head of list. */
 {
 struct lm *lm = lmInit(0);
 struct trackDb *tdb = track->tdb;
 struct bigBedInterval *bb, *bbList = bigBedSelectRangeExt(track, chrom, start, end, lm, maxItems);
 char *scoreFilter = cartOrTdbString(cart, track->tdb, "scoreFilter", NULL);