コード例 #1
0
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 preDrawContainer *preDrawList = NULL;

	/* Get summary info from bigWig */
	int summarySize = width;
	struct bbiSummaryElement *summary;
	AllocArray(summary, summarySize);

	struct bbiFile *bbiFile ;
	for(bbiFile = tg->bbiFile; bbiFile ; bbiFile = bbiFile->next)
	{
		struct preDrawContainer *preDrawContainer;
		struct preDrawElement *preDraw = initPreDraw(width, &preDrawSize, &preDrawZero);
		AllocVar(preDrawContainer);
		preDrawContainer->preDraw = preDraw;
		slAddHead(&preDrawList, preDrawContainer);

		if (bigWigSummaryArrayExtended(bbiFile, 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. */
	// maybe putting something about the upper/lower limit here
	// also the transformFunc is not there, maybe not completely functional?



	wigDrawPredraw(tg, seqStart, seqEnd, hvg, xOff, yOff, width, font, color, vis,
		preDrawList, preDrawZero, preDrawSize, &tg->graphUpperLimit, &tg->graphLowerLimit);

	struct preDrawContainer *nextContain;
	for(; preDrawList ; preDrawList = nextContain)
	{
		nextContain = preDrawList->next;
		freeMem(preDrawList->preDraw);
		freeMem(preDrawList);
	}
	freeMem(summary);
}
コード例 #2
0
ファイル: bamTrack.c プロジェクト: maximilianh/kent
static void bamWigDrawItems(struct track *tg, int seqStart, int seqEnd,
	struct hvGfx *hvg, int xOff, int yOff, int width,
	MgFont *font, Color color, enum trackVisibility vis)
{
/* Call actual graphing routine. */
wigDrawPredraw(tg, seqStart, seqEnd, hvg, xOff, yOff, width, font, color, vis,
	       tg->preDrawContainer, tg->preDrawContainer->preDrawZero, tg->preDrawContainer->preDrawSize, &tg->graphUpperLimit, &tg->graphLowerLimit);

}
コード例 #3
0
ファイル: bedGraph.c プロジェクト: maximilianh/kent
static void bedGraphDrawItems(struct track *tg, int seqStart, int seqEnd,
	struct hvGfx *hvg, int xOff, int yOff, int width,
	MgFont *font, Color color, enum trackVisibility vis)
{
struct preDrawContainer *pre = bedGraphLoadPreDraw(tg, seqStart, seqEnd, width);
if (pre != NULL)
    {
    wigDrawPredraw(tg, seqStart, seqEnd, hvg, xOff, yOff, width, font, color, vis,
		   pre, pre->preDrawZero, pre->preDrawSize, 
		   &tg->graphUpperLimit, &tg->graphLowerLimit);
    }
}