src/hg/hgTracks/bigWigTrack.c 1.6
1.6 2009/06/24 18:48:00 angie
Share bbiNameFromTable() between bedTrack.c and bigWigTrack.c.
Index: src/hg/hgTracks/bigWigTrack.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgTracks/bigWigTrack.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -b -B -U 1000000 -r1.5 -r1.6
--- src/hg/hgTracks/bigWigTrack.c 9 Feb 2009 19:11:52 -0000 1.5
+++ src/hg/hgTracks/bigWigTrack.c 24 Jun 2009 18:48:00 -0000 1.6
@@ -1,80 +1,75 @@
/* bigWigTrack - stuff to handle loading and display of bigWig type tracks in browser. */
#include "common.h"
#include "hash.h"
#include "linefile.h"
#include "jksql.h"
#include "hdb.h"
#include "hgTracks.h"
// #include "wiggle.h"
// #include "scoredRef.h"
// #include "customTrack.h"
#include "localmem.h"
#include "wigCommon.h"
#include "bbiFile.h"
#include "bigWig.h"
static char const rcsid[] = "$Id$";
static void bigWigDrawItems(struct track *tg, int seqStart, int seqEnd,
struct hvGfx *hvg, int xOff, int yOff, int width,
MgFont *font, Color color, enum trackVisibility vis)
{
/* Allocate predraw area. */
int preDrawZero, preDrawSize;
struct preDrawElement *preDraw = initPreDraw(width, &preDrawSize, &preDrawZero);
/* Get summary info from bigWig */
int summarySize = width;
struct bbiSummaryElement *summary;
AllocArray(summary, summarySize);
char *wigFileName = tg->bbiFileName;
if (bigWigSummaryArrayExtended(wigFileName, chromName, winStart, winEnd, summarySize, summary))
{
/* Convert format to predraw */
int i;
for (i=0; i<summarySize; ++i)
{
struct preDrawElement *pe = &preDraw[i + preDrawZero];
struct bbiSummaryElement *be = &summary[i];
pe->count = be->validCount;
pe->min = be->minVal;
pe->max = be->maxVal;
pe->sumData = be->sumData;
pe->sumSquares = be->sumSquares;
}
/* Call actual graphing routine. */
wigDrawPredraw(tg, seqStart, seqEnd, hvg, xOff, yOff, width, font, color, vis,
preDraw, preDrawZero, preDrawSize, &tg->graphUpperLimit, &tg->graphLowerLimit);
}
freeMem(preDraw);
freeMem(summary);
}
static void bigWigLoadItems(struct track *tg)
/* Fill up tg->items with bedGraphItems derived from a bigWig file */
{
if (tg->bbiFileName == NULL)
{
/* Figure out bigWig file name. */
struct sqlConnection *conn = hAllocConn(database);
- char query[256];
- safef(query, sizeof(query), "select fileName from %s", tg->mapName);
- char *wigFileName = sqlQuickString(conn, query);
- if (wigFileName == NULL)
- errAbort("Missing fileName in %s table", tg->mapName);
- tg->bbiFileName = wigFileName;
+ tg->bbiFileName = bbiNameFromTable(conn, tg->mapName);
hFreeConn(&conn);
}
}
void bigWigMethods(struct track *track, struct trackDb *tdb,
int wordCount, char *words[])
/* Set up bigWig methods. */
{
bedGraphMethods(track, tdb, wordCount, words);
track->loadItems = bigWigLoadItems;
track->drawItems = bigWigDrawItems;
}