src/inc/bigBed.h 1.8
1.8 2009/02/10 22:07:49 kent
Adding fieldCount and definedFieldCount to bbiFile header for bigBeds.
Index: src/inc/bigBed.h
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/inc/bigBed.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -b -B -U 1000000 -r1.7 -r1.8
--- src/inc/bigBed.h 3 Feb 2009 08:18:24 -0000 1.7
+++ src/inc/bigBed.h 10 Feb 2009 22:07:49 -0000 1.8
@@ -1,57 +1,59 @@
/* bigBed - interface to binary file with bed-style values (that is a bunch of
* possibly overlapping regions.
*
* This shares a lot with the bigWig module. */
#ifndef BIGBED_H
#define BIGBED_H
#ifndef BBIFILE
#include "bbiFile.h"
#endif
struct bigBedInterval
/* A partially parsed out bed record plus some extra fields. */
{
struct bigBedInterval *next; /* Next in list. */
bits32 start, end; /* Range inside chromosome - half open zero based. */
char *rest; /* Rest of line. May be NULL*/
};
struct bbiFile *bigBedFileOpen(char *fileName);
/* Open up big bed file. Free this up with bbiFileFree */
struct bigBedInterval *bigBedIntervalQuery(struct bbiFile *bwf,
char *chrom, bits32 start, bits32 end, struct lm *lm);
/* Get data for interval. Return list allocated out of lm. */
int bigBedIntervalToRow(struct bigBedInterval *interval, char *chrom, char *startBuf, char *endBuf,
char **row, int rowSize);
/* Convert bigBedInterval into an array of chars equivalent to what you'd get by
* parsing the bed file. The startBuf and endBuf are used to hold the ascii representation of
* start and end. Note that the interval->rest string will have zeroes inserted as a side effect.
* Returns number of fields in row. */
boolean bigBedSummaryArray(char *fileName, char *chrom, bits32 start, bits32 end,
enum bbiSummaryType summaryType, int summarySize, double *summaryValues);
/* Fill in summaryValues with data from indicated chromosome range in bigBed file.
* Be sure to initialize summaryValues to a default value, which will not be touched
* for regions without data in file. (Generally you want the default value to either
* be 0.0 or nan("") depending on the application.) Returns FALSE if no data
* at that position. */
boolean bigBedSummaryArrayExtended(char *fileName, char *chrom, bits32 start, bits32 end,
int summarySize, struct bbiSummaryElement *summary);
/* Get extended summary information for summarySize evenely spaced elements into
* the summary array. */
void bigBedFileCreate(
char *inName, /* Input file in a tabular bed format <chrom><start><end> + whatever. */
char *chromSizes, /* Two column tab-separated file: <chromosome> <size>. */
int blockSize, /* Number of items to bundle in r-tree. 1024 is good. */
int itemsPerSlot, /* Number of items in lowest level of tree. 64 is good. */
+ bits16 definedFieldCount, /* Number of defined bed fields - 3-16 or so. 0 means all fields
+ * are the defined bed ones. */
char *outName); /* BigBed output file name. */
/* Convert tab-separated bed file to binary indexed, zoomed bigBed version. */
#endif /* BIGBED_H */