54406b80d5d435970989acff7b22dd6146c6b411
braney
Sat Jan 22 15:24:59 2022 -0800
adding chrom alias support to big files
diff --git src/hg/hgc/wiggleClick.c src/hg/hgc/wiggleClick.c
index 1a39081..9230376 100644
--- src/hg/hgc/wiggleClick.c
+++ src/hg/hgc/wiggleClick.c
@@ -2,30 +2,31 @@
/* Copyright (C) 2014 The Regents of the University of California
* See kent/LICENSE or http://genome.ucsc.edu/license/ for licensing information. */
#include "common.h"
#include "wiggle.h"
#include "cart.h"
#include "hgc.h"
#include "hCommon.h"
#include "hgColors.h"
#include "obscure.h"
#include "hmmstats.h"
#include "customTrack.h"
#include "bigWig.h"
#include "hdb.h"
+#include "chromAlias.h"
void genericWiggleClick(struct sqlConnection *conn, struct trackDb *tdb,
char *item, int start)
/* Display details for Wiggle data tracks.
* conn may be NULL for custom tracks when from file */
{
char *chrom = cartString(cart, "c");
char table[HDB_MAX_TABLE_STRING];
unsigned span = 0;
struct wiggleDataStream *wds = wiggleDataStreamNew();
unsigned long long valuesMatched = 0;
struct histoResult *histoGramResult;
float *valuesArray = NULL;
size_t valueCount = 0;
@@ -262,31 +263,31 @@
{
char *chrom = cartString(cart, "c");
/* Open BigWig file and get interval list. */
struct bbiFile *bbi = NULL;
struct lm *lm = lmInit(0);
struct bbiInterval *bbList = NULL;
char *maxWinToQuery = trackDbSettingClosestToHome(tdb, "maxWindowToQuery");
unsigned maxWTQ = 0;
if (isNotEmpty(maxWinToQuery))
maxWTQ = sqlUnsigned(maxWinToQuery);
if ((maxWinToQuery == NULL) || (maxWTQ > winEnd-winStart))
{
- bbi = bigWigFileOpen(fileName);
+ bbi = bigWigFileOpenAlias(fileName, chromAliasGetHash(database));
bbList = bigWigIntervalQuery(bbi, chrom, winStart, winEnd, lm);
}
char num1Buf[64], num2Buf[64]; /* big enough for 2^64 (and then some) */
sprintLongWithCommas(num1Buf, BASE_1(winStart));
sprintLongWithCommas(num2Buf, winEnd);
printf("Position: %s:%s-%s
\n", chrom, num1Buf, num2Buf );
sprintLongWithCommas(num1Buf, winEnd-winStart);
printf("Total Bases in view: %s
\n", num1Buf);
if (bbList != NULL)
{
bbiIntervalStatsReport(bbList, tdb->table, chrom, winStart, winEnd);
}
else if ((bbi == NULL) && (maxWTQ <= winEnd-winStart))