6f75c327bcd0cfc8bf68dfa1227aabb579120698 Merge parents 41b17ce ccb8cb2 kate Mon Dec 17 12:37:37 2018 -0800 Merge branch 'master' into interact-multiregion diff --cc src/hg/hgc/interactClick.c index 9d1e538,54cd223..87afdb5 --- src/hg/hgc/interactClick.c +++ src/hg/hgc/interactClick.c @@@ -222,63 -221,43 +222,63 @@@ sprintLongWithCommas(sizeBuf, region2End - region2Start); printf("<b>%s region:</b> %s " "<a href='hgTracks?position=%s:%d-%d' target='_blank'>%s:%s-%s</a> %s", region2Label, region2Name, region2Chrom, region2Start+1, region2End, region2Chrom, startBuf, endBuf, inter->targetStrand[0] == '.' ? "" : inter->targetStrand); printf(" %s bp<br>\n", sizeBuf); int distance = interactRegionDistance(inter); if (distance > 0) { // same chrom sprintLongWithCommas(sizeBuf, distance); printf("<b>Distance between midpoints:</b> %s bp<br>\n", sizeBuf); } +// print link to multi-region view of ends + +// create bed file in trash directory with end coordinates +struct tempName mrTn; +trashDirFile(&mrTn, "hgt", "custRgn_interact", ".bed"); +FILE *f = fopen(mrTn.forCgi, "w"); +if (f == NULL) + errAbort("can't create temp file %s", mrTn.forCgi); +fprintf(f, "%s\t%d\t%d\n" + "%s\t%d\t%d\n", + region1Chrom, region1Start, region1End, + region2Chrom, region2Start, region2End); +fclose(f); +printf("<br><a target='_blank' href='hgTracks?" + "virtMode=1" + "&virtModeType=customUrl" + "&multiRegionsBedUrl=%s'" + ">Show both ends of interaction in multi-region browser view</a>", + mrTn.forCgi); + #ifdef TODO /* TODO: get count and score stats of all interactions in window ?*/ double *scores; AllocArray(scores, count); #endif } void doInteractItemDetails(struct trackDb *tdb, struct interactPlusRow *ipr, char *item, boolean isMultiple) /* Details of interaction item */ { struct interact *inter = ipr->interact; struct slPair *fields = getFields(tdb, ipr->row); - printCustomUrlWithFields(tdb, item, item, TRUE, fields); + printCustomUrlWithFields(tdb, inter->name, inter->name, TRUE, fields); if (!isEmptyTextField(inter->name)) printf("<b>Interaction:</b> %s<br>\n", inter->name); printf("<b>Score:</b> %d<br>\n", inter->score); printf("<b>Value:</b> %0.3f<br>\n", inter->value); if (!isEmptyTextField(inter->exp)) printf("<b>Experiment:</b> %s<br>\n", inter->exp); puts("<p>"); if (!isMultiple) doInteractRegionDetails(tdb, inter); } void doInteractDetails(struct trackDb *tdb, char *item) /* Details of interaction items */ { char *chrom = cartString(cart, "c");