src/utils/bigWigSummary/bigWigSummary.c 1.10
1.10 2009/06/09 17:42:33 markd
fixed non-portable code
Index: src/utils/bigWigSummary/bigWigSummary.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/utils/bigWigSummary/bigWigSummary.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -b -B -U 1000000 -r1.9 -r1.10
--- src/utils/bigWigSummary/bigWigSummary.c 2 Feb 2009 06:05:52 -0000 1.9
+++ src/utils/bigWigSummary/bigWigSummary.c 9 Jun 2009 17:42:33 -0000 1.10
@@ -1,77 +1,77 @@
/* bigWigSummary - Extract summary information from a bigWig file.. */
#include "common.h"
#include "linefile.h"
#include "hash.h"
#include "options.h"
#include "sqlNum.h"
#include "bigWig.h"
static char const rcsid[] = "$Id$";
char *summaryType = "mean";
void usage()
/* Explain usage and exit. */
{
errAbort(
"bigWigSummary - Extract summary information from a bigWig file.\n"
"usage:\n"
" bigWigSummary file.bigWig chrom start end dataPoints\n"
"Get summary data from bigWig for indicated region, broken into\n"
"dataPoints equal parts. (Use dataPoints=1 for simple summary.)\n"
"options:\n"
" -type=X where X is one of:\n"
" mean - average value in region (default)\n"
" min - minimum value in region\n"
" max - maximum value in region\n"
" coverage - %% of region that is covered\n"
);
}
static struct optionSpec options[] = {
{"type", OPTION_STRING},
{NULL, 0},
};
void bigWigSummary(char *bigWigFile, char *chrom, int start, int end, int dataPoints)
/* bigWigSummary - Extract summary information from a bigWig file.. */
{
/* Make up values array initialized to not-a-number. */
-double nan0 = nan("");
+double nan0 = strtod("NaN", NULL);
double summaryValues[dataPoints];
int i;
for (i=0; i<dataPoints; ++i)
summaryValues[i] = nan0;
if (bigWigSummaryArray(bigWigFile, chrom, start, end, bbiSummaryTypeFromString(summaryType),
dataPoints, summaryValues))
{
for (i=0; i<dataPoints; ++i)
{
double val = summaryValues[i];
if (i != 0)
printf("\t");
if (isnan(val))
printf("n/a");
else
printf("%g", val);
}
printf("\n");
}
else
{
errAbort("no data in region %s:%d-%d in %s\n", chrom, start, end, bigWigFile);
}
}
int main(int argc, char *argv[])
/* Process command line. */
{
optionInit(&argc, argv, options);
if (argc != 6)
usage();
summaryType = optionVal("type", summaryType);
bigWigSummary(argv[1], argv[2], sqlUnsigned(argv[3]), sqlUnsigned(argv[4]), sqlUnsigned(argv[5]));
return 0;
}