# Is there a standard method to validate whether a bigWig file is correct?

I have a bigWig file of extension *.bw (which is standard), but I am suspicious that this file may be of an incorrect format.

Is there a standard method in the field to validate a *.bigWig file?

As noted in another answer, it's relatively easy to tell if a file is bigWig or not by opening it up with, say, standard UCSC Kent utilities like bigWigToBedGraph or bigWigToWig, or other bigWig readers, and seeing if you get data back.

Depending on what you're doing with the bigWig file, the trickier part can be how the original data was indexed.

If the bigWig file was originally made from a bedGraph or BAM file, its coordinates will be 0-indexed when converted to human-readable form. If the bigWig file was originally made from a wig file, its coordinates will be 1-indexed when converted to a human readable form. How the file's coordinates were originally indexed may change how you work with them downstream for set operations, for instance.

I think the only way to know about the source is to look at the header contained within the bigWig file, after extraction to human-readable form with UCSC tools. A bigWig file made from a bedGraph file will generally contain the header #bedGraph section <coords> in it somewhere (after conversion), for example.

• You can actually have multiple representations (bedGraph and wiggle) within a single bigWig file, provided they're in different blocks. If Kent's tools don't enforce 0-based coordinates then I would consider that a bug, as the bigWig structure itself is 0-based. Feb 3 '18 at 15:28

There's no standard validation method, but a simple one would be python -c "import pyBigWig; bw = pyBigWig.open('your_file.bw'); print(bw.IsBigWig());". If you get True then it's a bigWig file. If you get False or an error then it's not (False indicates a bigBed file).

Alternatively, file your_file.bw should return data.