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