Go to the documentation of this file.
59 #define LIBBIGWIG_VERSION 0.4.5
65 #define LIBBIGWIG_CURL 0
66 #ifndef CURLTYPE_DEFINED
67 #define CURLTYPE_DEFINED
72 #define LIBBIGWIG_CURL 1
78 #define BIGWIG_MAGIC 0x888FFC26
82 #define BIGBED_MAGIC 0x8789F2EB
86 #define CIRTREE_MAGIC 0x78ca8c91
90 #define IDX_MAGIC 0x2468ace0
94 #define DEFAULT_nCHILDREN 64
98 #define DEFAULT_BLOCKSIZE 32768
168 typedef struct bwLL bwLL;
173 typedef struct bwZoomBuffer_t bwZoomBuffer_t;
174 struct bwZoomBuffer_t {
177 struct bwZoomBuffer_t *next;
267 int bwInit(
size_t bufSize);
282 int bwIsBigWig(
char *fname, CURLcode (*callBack)(CURL*));
291 int bbIsBigBed(
char *fname, CURLcode (*callBack)(CURL*));
606 #endif // LIBBIGWIG_H
double minVal
Definition: bigWig.h:150
A node within an R-tree holding the index for data.
Definition: bwValues.h:20
double maxVal
Definition: bigWig.h:151
@ mean
Definition: bigWig.h:105
double * bwStatsFromFull(bigWigFile_t *fp, char *chrom, uint32_t start, uint32_t end, uint32_t nBins, enum bwStatsType type)
Determines per-interval bigWig statistics Can determine mean/min/max/coverage/standard deviation of v...
Definition: bwStats.c:485
bwOverlappingIntervals_t * bwGetValues(bigWigFile_t *fp, char *chrom, uint32_t start, uint32_t end, int includeNA)
Return all per-base bigWig values in a given interval. Given an interval (e.g., chr1:0-100),...
Definition: bwValues.c:713
bwRTree_t * idx
Definition: bigWig.h:214
uint64_t summaryOffset
Definition: bigWig.h:144
int bwAppendIntervalSpanSteps(bigWigFile_t *fp, float *values, uint32_t n)
Append to a previous block of fixed-step entries. If you previously used bwAddIntervalSpanSteps(),...
Definition: bwWrite.c:552
bwRTree_t ** idx
Definition: bigWig.h:127
bwZoomBuffer_t ** lastZoomBuffer
Definition: bigWig.h:201
uint32_t tid
Definition: bigWig.h:248
@ cov
Definition: bigWig.h:111
uint32_t end
Definition: bigWig.h:192
uint64_t nBlocks
Definition: bigWig.h:186
void * blocks
Definition: bigWig.h:254
void * compressP
Definition: bigWig.h:204
bwOverlapIterator_t * bbOverlappingEntriesIterator(bigWigFile_t *fp, char *chrom, uint32_t start, uint32_t end, int withString, uint32_t blocksPerIteration)
Creates an iterator over entries in a bigBed file Iterators can be traversed with bwIteratorNext() an...
Definition: bwValues.c:615
uint16_t fieldCount
Definition: bigWig.h:141
bwLL * currentIndexNode
Definition: bigWig.h:199
char ** str
Definition: bigWig.h:239
@ max
Definition: bigWig.h:109
bwOverlappingIntervals_t * intervals
Definition: bigWig.h:255
Holds interval:str associations.
Definition: bigWig.h:234
bwZoomHdr_t * zoomHdrs
Definition: bigWig.h:147
@ doesNotExist
Definition: bigWig.h:104
bwOverlappingIntervals_t * bwGetOverlappingIntervals(bigWigFile_t *fp, char *chrom, uint32_t start, uint32_t end)
Return bigWig entries overlapping an interval. Find all bigWig entries overlapping a range and return...
Definition: bwValues.c:563
bbOverlappingEntries_t * entries
Definition: bigWig.h:256
uint32_t m
Definition: bigWig.h:236
int bwIsBigWig(char *fname, CURLcode(*callBack)(CURL *))
Determine if a file is a bigWig file. This function will quickly check either local or remote files t...
Definition: bwRead.c:302
@ min
Definition: bigWig.h:110
A structure to hold iterations One of intervals and entries should be used to access records from big...
Definition: bigWig.h:246
Definition: bwValues.h:39
bwOverlapIterator_t * bwIteratorNext(bwOverlapIterator_t *iter)
Traverses to the entries/intervals in the next group of blocks.
Definition: bwValues.c:652
uint32_t l
Definition: bigWig.h:235
@ average
Definition: bigWig.h:106
uint32_t tid
Definition: bigWig.h:190
chromList_t * bwCreateChromList(char **chroms, uint32_t *lengths, int64_t n)
Take a list of chromosome names and lengths and return a pointer to a chromList_t This MUST be run be...
Definition: bwWrite.c:22
double sumData
Definition: bigWig.h:152
uint32_t start
Definition: bigWig.h:191
uint16_t nLevels
Definition: bigWig.h:137
int bwInit(size_t bufSize)
Initializes curl and global variables. This MUST be called before other functions (at least if you wa...
Definition: bwRead.c:38
uint64_t nBasesCovered
Definition: bigWig.h:149
Holds the chromosomes and their lengths.
Definition: bigWig.h:160
uint8_t ltype
Definition: bigWig.h:195
int bwAppendIntervalSpans(bigWigFile_t *fp, uint32_t *start, float *values, uint32_t n)
Append to a previous block of variable-step entries. If you previously used bwAddIntervalSpans(),...
Definition: bwWrite.c:495
uint32_t * end
Definition: bigWig.h:238
uint32_t l
Definition: bigWig.h:196
void bbDestroyOverlappingEntries(bbOverlappingEntries_t *o)
Frees space allocated by bbGetOverlappingEntries
Definition: bwValues.c:333
void * data
Definition: bigWig.h:257
uint64_t dataOffset
Definition: bigWig.h:139
int bbIsBigBed(char *fname, CURLcode(*callBack)(CURL *))
Determine is a file is a bigBed file. This function will quickly check either local or remote files t...
Definition: bwRead.c:332
bigWigFile_t * bw
Definition: bigWig.h:247
uint32_t step
Definition: bigWig.h:194
int bwAddIntervals(bigWigFile_t *fp, char **chrom, uint32_t *start, uint32_t *end, float *values, uint32_t n)
Write a new block of bedGraph-like intervals to a bigWig file Adds entries of the form: chromosome st...
Definition: bwWrite.c:374
This is only needed for writing bigWig files (and won't be created otherwise) This should be removed ...
Definition: bigWig.h:185
@ sum
Definition: bigWig.h:113
bwZoomBuffer_t ** firstZoomBuffer
Definition: bigWig.h:200
Holds interval:value associations.
Definition: bigWig.h:223
uint32_t blockSize
Definition: bigWig.h:187
int bwAppendIntervals(bigWigFile_t *fp, uint32_t *start, uint32_t *end, float *values, uint32_t n)
Append bedGraph-like intervals to a previous block of bedGraph-like intervals in a bigWig file....
Definition: bwWrite.c:434
void * p
Definition: bigWig.h:197
uint32_t bufSize
Definition: bigWig.h:145
float * value
Definition: bigWig.h:228
uint64_t nEntries
Definition: bigWig.h:188
bigWigFile_t * bwOpen(char *fname, CURLcode(*callBack)(CURL *), const char *mode)
Opens a local or remote bigWig file. This will open a local or remote bigWig file....
Definition: bwRead.c:345
void bwCleanup(void)
The counterpart to bwInit, this cleans up curl.
Definition: bwRead.c:52
uint16_t version
Definition: bigWig.h:136
double sumSquared
Definition: bigWig.h:153
uint64_t * indexOffset
Definition: bigWig.h:126
URL_t * URL
Definition: bigWig.h:211
uint32_t * len
Definition: bigWig.h:163
chromList_t * cl
Definition: bigWig.h:213
@ stdev
Definition: bigWig.h:107
bigWigHdr_t * hdr
Definition: bigWig.h:212
uint64_t * nNodes
Definition: bigWig.h:202
uint64_t runningWidthSum
Definition: bigWig.h:189
void bwClose(bigWigFile_t *fp)
Closes a bigWigFile_t and frees up allocated memory This closes both bigWig and bigBed files.
Definition: bwRead.c:289
uint64_t ctOffset
Definition: bigWig.h:138
bigWigFile_t * bbOpen(char *fname, CURLcode(*callBack)(CURL *))
Opens a local or remote bigBed file. This will open a local or remote bigBed file....
Definition: bwRead.c:397
uint64_t sqlOffset
Definition: bigWig.h:143
int64_t nKeys
Definition: bigWig.h:161
uint32_t bwGetTid(bigWigFile_t *fp, char *chrom)
Converts between chromosome name and ID.
Definition: bwValues.c:284
BigWig files have multiple "zoom" levels, each of which has its own header. This hold those headers.
Definition: bigWig.h:122
int bwWriteHdr(bigWigFile_t *bw)
Write a the header to a bigWig file. You must have already opened the output file,...
Definition: bwWrite.c:187
uint64_t indexOffset
Definition: bigWig.h:140
bwOverlapIterator_t * bwOverlappingIntervalsIterator(bigWigFile_t *fp, char *chrom, uint32_t start, uint32_t end, uint32_t blocksPerIteration)
Creates an iterator over intervals in a bigWig file Iterators can be traversed with bwIteratorNext() ...
Definition: bwValues.c:587
uint32_t * end
Definition: bigWig.h:227
bwWriteBuffer_t * writeBuffer
Definition: bigWig.h:215
The header section of a bigWig file.
Definition: bigWig.h:135
This structure holds the file pointers and buffers needed for raw access to local and remote files.
Definition: bigWigIO.h:38
bwLL * firstIndexNode
Definition: bigWig.h:198
int withString
Definition: bigWig.h:253
uint32_t m
Definition: bigWig.h:225
uint16_t definedFieldCount
Definition: bigWig.h:142
uint32_t l
Definition: bigWig.h:224
int isWrite
Definition: bigWig.h:216
uint32_t * level
Definition: bigWig.h:123
uint32_t * start
Definition: bigWig.h:226
uint32_t end
Definition: bigWig.h:250
uint32_t blocksPerIteration
Definition: bigWig.h:252
int bwAddIntervalSpanSteps(bigWigFile_t *fp, char *chrom, uint32_t start, uint32_t span, uint32_t step, float *values, uint32_t n)
Add a new block of fixed-step entries to a bigWig file Adds entries for the form value to the file....
Definition: bwWrite.c:520
uint32_t * start
Definition: bigWig.h:237
char * bbGetSQL(bigWigFile_t *fp)
Returns a string containing the SQL entry (or NULL). The "auto SQL" field contains the names and valu...
Definition: bwRead.c:315
@ coverage
Definition: bigWig.h:112
@ dev
Definition: bigWig.h:108
int bwAddIntervalSpans(bigWigFile_t *fp, char *chrom, uint32_t *start, uint32_t span, float *values, uint32_t n)
Add a new block of variable-step entries to a bigWig file Adds entries for the form chromosome start ...
Definition: bwWrite.c:462
int bwCreateHdr(bigWigFile_t *fp, int32_t maxZooms)
Create a largely empty bigWig header Every bigWig file has a header, this creates the template for on...
Definition: bwWrite.c:56
bbOverlappingEntries_t * bbGetOverlappingEntries(bigWigFile_t *fp, char *chrom, uint32_t start, uint32_t end, int withString)
Return bigBed entries overlapping an interval. Find all bigBed entries overlapping a range and return...
Definition: bwValues.c:575
void bwIteratorDestroy(bwOverlapIterator_t *iter)
Destroys a bwOverlapIterator_t.
Definition: bwValues.c:643
uint32_t start
Definition: bigWig.h:249
int type
Definition: bigWig.h:217
A structure that holds everything needed to access a bigWig file.
Definition: bigWig.h:210
uint64_t * dataOffset
Definition: bigWig.h:125
uLongf compressPsz
Definition: bigWig.h:203
uint64_t extensionOffset
Definition: bigWig.h:146
char ** chrom
Definition: bigWig.h:162
double * bwStats(bigWigFile_t *fp, char *chrom, uint32_t start, uint32_t end, uint32_t nBins, enum bwStatsType type)
Determines per-interval bigWig statistics Can determine mean/min/max/coverage/standard deviation of v...
Definition: bwStats.c:530
uint64_t offset
Definition: bigWig.h:251
uint32_t span
Definition: bigWig.h:193
void bwDestroyOverlappingIntervals(bwOverlappingIntervals_t *o)
Frees space allocated by bwGetOverlappingIntervals
Definition: bwValues.c:325
bwStatsType
Definition: bigWig.h:103