Downsampling ChIP-seq BAM files with spike in normalization factor before feeding into Diffbind
2
0
Entering edit mode
bioinfouser2 ▴ 10
@bioinfouser2-15147
Last seen 9 months ago

I am planning to use exogenous chromatin as a spike in control with my actual sample from mouse to perform ChIP-seq for peak calling and differential binding analysis for histone modifications. this involves down-sampling the uniquely mapped read files to the calculated normalization factor from the spike in. This is generally helpful for peak calling and visualizing in IGV browser. But I have not found any reference on whether it is considered in differential binding analysis. Also, nothing is mentioned in the Diffbind vignette. Could you please explain how this strategy might affect using the diffbind package?

diffbind chipseq chipqc • 1.2k views
1
Entering edit mode
Rory Stark ★ 4.0k
@rory-stark-5741
Last seen 2 days ago
CRUK, Cambridge, UK

In you downsampled the reads for visualization and peak calling, you should use the down-sampled files for differential binding analysis. Normalization is even more important for differential analysis than for peak calling etc. Be aware that DiffBind will still normalize the reads to the relative number of reads in each library, so this may negate some of what you are trying to do. You can bypass DiffBind's normalization by setting the library sizes to appear all the same, as discussed in this thread: MAnorm output as DiffBind input..

I'm not exactly which normalization procedure you are using. We have looked at some methods where we use the control reads to calculate normalization factors rather than actually downsampling reads (hate to throw away good data!). See for example this paper:

Novel Quantitative ChIP-seq Methods Measure Absolute Fold-Change in ER Binding Upon Fulvestrant Treatment

a version of which is to be published in NAR soon.

0
Entering edit mode

Hi,

Hope you can still help me. I'm aware that is an old question, but I'm facing exactly the same issue - better explained here (https://www.biostars.org/p/302071/). I could not find a way to do it as the way you mentioned here (https://support.bioconductor.org/p/105122/) would end up changing the number of reads for each sample. At least, if I understood it right. Is there a way to normalise the data without changing the number of reads of any sample?

Many thanks

0
Entering edit mode
Rory Stark ★ 4.0k
@rory-stark-5741
Last seen 2 days ago
CRUK, Cambridge, UK

Direct support for exogenous spike-in normalization is now available in the latest release of DiffBind. The vignette has an example using Drosophila chromatin. You can supply the spike-in alignments in the sample sheet as separate bam files, or specify a specific set of chromosomes if you used a single combined reference. The reads are counted, and then you can these to calculate normalization factors (either by the total number of aligned reads, or using TMM or RLE). So long as the spike-ins were quantified correctly in the original experiment. these methods work fine. There is also a clean interface to supply externally calculated normalization factors, or a matrix of offsets, if you want to use one of the more complicated modelling methods for dealing with spike-in data.

In general, unless there are severe imbalances, downsampling and altering read counts, especially of ChIP or ATAC data, should be avoided (downsampling Input controls for peak calling may be ok; some peak callers will scale background controls for you). The normalization factors should deal with quite a bit of variation in library sizes and ChIP efficiencies.