b2acdf83569bcb30013ed09d885d3f48b19c1d4e jcasper Wed Sep 11 16:03:26 2019 -0700 Better support for hic composite tracks, and hic trackUi pages now include metadata from the file, refs #22316 diff --git src/hg/hgTables/hic.c src/hg/hgTables/hic.c index 6cd092e..2bc9253 100644 --- src/hg/hgTables/hic.c +++ src/hg/hgTables/hic.c @@ -171,37 +171,37 @@ { fprintf(f, "# Filtering on %d columns\n", slCount(filter->columnList)); } } /* Loop through outputting each region */ struct region *region, *regionList = getRegions(); int maxOut = bigFileMaxOutput(); char *fileName = hicFileName(table, conn); struct hicMeta *fileInfo; char *errMsg = hicLoadHeader(fileName, &fileInfo, database); if (errMsg != NULL) errAbort("%s", errMsg); - -char *norm = hicUiFetchNormalization(cart, table, fileInfo); +struct trackDb *tdb = hashFindVal(fullTableToTdbHash, table); +char *norm = hicUiFetchNormalization(cart, tdb, fileInfo); for (region = regionList; region != NULL && (maxOut > 0); region = region->next) { struct interact *results = NULL, *result = NULL; - int res = hicUiFetchResolutionAsInt(cart, table, fileInfo, region->end-region->start); + int res = hicUiFetchResolutionAsInt(cart, tdb, fileInfo, region->end-region->start); char *errMsg = hicLoadData(fileInfo, res, norm, region->chrom, region->start, region->end, region->chrom, region->start, region->end, &results); if (errMsg != NULL) warn("%s", errMsg); slSort(&results, &hicCompare); char *row[INTERACT_NUM_COLS]; char numBuf[HIC_NUM_BUF_SIZE]; for (result = results; result != NULL && (maxOut > 0); result = result->next) { hicRecordToRow(result, numBuf, row); if (asFilterOnRow(filter, row)) { int i; fprintf(f, "%s", row[columnArray[0]]); for (i=1; iend-region->start); - char *norm = hicUiFetchNormalization(cart, table, fileInfo); + struct trackDb *tdb = hashFindVal(fullTableToTdbHash, table); + int res = hicUiFetchResolutionAsInt(cart, tdb, fileInfo, region->end-region->start); + char *norm = hicUiFetchNormalization(cart, tdb, fileInfo); struct interact *results = NULL, *result = NULL; errMsg = hicLoadData(fileInfo, res, norm, region->chrom, region->start, region->end, region->chrom, region->start, region->end, &results); if (errMsg != NULL) warn("%s", errMsg); slSort(&results, &hicCompare); char *row[INTERACT_NUM_COLS]; char numBuf[HIC_NUM_BUF_SIZE]; for (result=results; result != NULL; result = result->next) { hicRecordToRow(result, numBuf, row); if (asFilterOnRow(filter, row)) { struct bed *bed;