46abf3fb921e63487aff04b1305c75adf26f67cf jcasper Mon Apr 17 20:41:00 2023 -0700 When hgc makes a multiregion view file for interact tracks, it should make sure to account for the track using chromosome aliases, refs #31056 diff --git src/hg/hgc/interactClick.c src/hg/hgc/interactClick.c index 5701bb2..a3d6597 100644 --- src/hg/hgc/interactClick.c +++ src/hg/hgc/interactClick.c @@ -211,35 +211,38 @@ slSort(®ions, bedCmp); struct bed *prevRegion = NULL; // alternate item colors char *colorLight = "184,201,255"; char *colorDark = "0,0,0"; boolean doLightColor = TRUE; // print regions to BED file and custom track for (region = regions; region != NULL; region = region->next) { // filter out nested regions if (prevRegion == NULL || differentString(region->chrom, prevRegion->chrom) || region->chromStart >= prevRegion->chromEnd) { + char *localChromName = chromAliasFindNative(region->chrom); + if (localChromName == NULL) + localChromName = region->chrom; // For some reason, aliases don't (or don't always) include the native names safef(regionInfo, sizeof regionInfo, "%s\t%d\t%d\n", - region->chrom, region->chromStart, region->chromEnd); + localChromName, region->chromStart, region->chromEnd); mustWrite(f, regionInfo, strlen(regionInfo)); int start = max(region->chromStart - padding, 0); - int end = min(region->chromEnd + padding, hChromSize(database, region->chrom)); + int end = min(region->chromEnd + padding, hChromSize(database, localChromName)); char *color = doLightColor ? colorLight : colorDark; doLightColor = !doLightColor; dyStringPrintf(ds, "%s\t%d\t%d\t" "%s:%d+%d_bp\t" "0\t.\t%d\t%d\t%s\n", region->chrom, start, end, region->chrom, start+1, end-start, start, end, color); } prevRegion = region; } fclose(f); // create SHA1 file; used to see if file has changed unsigned char hash[SHA_DIGEST_LENGTH];