Average bigwig files (not sum)
1
0
Entering edit mode
3.0 years ago
srhic ▴ 40

Hello,

I have bigwig (RPKM) files of a chip-seq experiment for treatment and control conditions which I am trying to compare. I have 3 replicates for control and 5 replicates for treatment condition. To show the average difference in signal, I merged the replicates for each condition using ucsc bigWigMerge command.

However, if my understanding is correct this command simply adds the signal of all replicates and so the merged treatment file is no longer comparable to the merged control file. The treatment condition has more replicates and so shows higher values than control even when the actual signal shouldn't be different. Is my understanding correct? If yes, is there a way to merge bigwig files using average instead of sum of replicates and does this make sense? (preferably without merging bam files and recreating bigwigs)

Thanks

ChIP-Seq bigwig • 5.9k views
4
Entering edit mode
3.0 years ago
ATpoint 71k

Wiggletools has a mean command that can do it. It will accept BigWig files and output Wig files. Wig can then either be formatted into bigwig or into bedGraph. Note though that the bigwig files that e.g. WigToBigWig creates from these Wig files will be very large in size, in my experience 40-50% larger than if you first transform that Wig back to bedGraph and then to BigWig with bedGraphToBigWig. I never found out why that is but I always go Bigwigs => Wiggletools Mean => bedGraph => Bigwig to avoid these very large files.

0
Entering edit mode

Thanks. That looks perfect.

0
Entering edit mode

how did you merge your replicates bigwig format file? did you use bigWigMerge from UCSC tools? Now ,I also average my bigwig files.Thank you!

0
Entering edit mode

I averaged them with the tool described in my answer.

0
Entering edit mode

Hi,

I have used wiggletools to average several bigwig files, but I get a "weird" format wig file (it looks like a mix of WIG and bedgraph) and I cannot convert it to bedGraph. You can see more info here: https://github.com/bedops/bedops/issues/273

I can convert that directly to a bigwig file, but as you said, the size is huge.

How do you convert wiggletools output to a proper bedGraph so I can convert it to Bigwig and "save" space?

Thanks!

1
Entering edit mode

wigToBedGraph from kentUtils

0
Entering edit mode

Thanks! I could not find that tool on the UCSC Utils... I will try to install it and see if it works.

1
Entering edit mode

I was wrong, sorry. wigToBedGraph does not exist. I just checked some old code of mine and what I did was to do first wigToBigWig, then bigWigToBedGraph and then finally bedGraphToBigWig -- these tools exist, e.g. https://hgdownload.soe.ucsc.edu/admin/exe/linux.x86_64/

0
Entering edit mode

Actually there is an outdated wigToBedGraph in kent utils (https://github.com/ENCODE-DCC/kentUtils/blob/master/src/utils/wigToBedGraph/wigToBedGraph.c) that does not seem to be supported by UCSC anymore.

I tried your suggested wigToBigWig -> bigWigToBedGraph -> bedGraphToBigWig and indeed the size of the averaged bigwig file was reduced by 66% !