I'm working on ChIP and ATAC data sets analyses, however, I need help at this point. My goal is to use pre-normalised data (e.g. using MAnorm) as DiffBind input so that later I can create contrast list (dba.contrast), reports (dba.report) and plot (dba.plotXYZ).
Question: Is there a way by which I could use the output (MAnorm_result_commonPeak_merged.xls) obtained after MAnorm normalization as an input for DiffBind?
I'm looking now adding features to DiffBind to give much more fine-grained control over the normalization, including adding pre-normalized data.
In the meantime, there is a feature that can be used for this. See the man page for dba.peakset(), specifically the Counts parameter. You can input count values explicitly using this parameter, or by writing them to files and using a Counts column in your samplesheet; see man page for dba(). Note that you should not call dba.count() if you are using the Counts parameter.
If you do not want these counts to be further normalized, you should execute the following line of code on your DBA object (myDBA):
myDBA$class[8,] <- 1e+06
This will set all the library sizes to be the same and prevent additional normalization, provided you use the DBA_DESEQ2 method with bFullLibrarySize=TRUE in your call to dba.analyze().
The latest version of DiffBind has a new interface function, dba.normalize(), that allows vectors of normalization factors and library sizes (or a matrix of normalization offsets) to be specified instead of using the internal normalization calculations. Examples in the help page and vignette.