DiffBind dba.report() output: Is "concentration" normalized?
1
0
Entering edit mode
@romanhillje-13023
Last seen 3.7 years ago

Hi,

I'm using DiffBind for many of my ChIPseq analyses and recently asked myself, if the "concentration" that is given as output of dba.report() is normalized or not. In the reference manual it is written that this number is the mean (log) reads across all samples of the specific group.

1) Are you referring to log2 or log10?

2) Were these values generated using the normalization method specified in dba.count()? (I'm using DBA_SCORE_TMM_READS_FULL because we have no input available)

Would be great if somebody could give me a feedback. Thanks!

DiffBind • 2.4k views
ADD COMMENT
2
Entering edit mode
Rory Stark ★ 5.1k
@rory-stark-5741
Last seen 8 weeks ago
Cambridge, UK

By default, the counts are normalized. Concentrations are reported as log2 values.

You can see the read counts by setting bCounts=TRUE in dba.report(). This will include counts normalised according to the analysis method used in dba.analyze (default is a normalisation based on library size). You should be able to tell they are normalized as they will not be integers. You can get the actual read counts by setting bNormalized=FALSE. The score you specify in dba.count() is not reflected in dba.report() -- these scores are only used for the global binding matrix, not for specific contrast results. You can get the read matrix using dba.peakset() with bRetrieve=TRUE.

Cheers-

Rory

ADD COMMENT
0
Entering edit mode

Thanks, I knew I could count on you to respond quickly :P 

ADD REPLY
0
Entering edit mode

Sorry to dredge up this post years later, but does this mean that there is no other modification to the raw read counts aside from the log2 normalization-- that is, if "conc_group1" is reported as 5 by dba.report() for a given peak, that there are 2^5 total reads mapping to this peak?

Asking because I am comparing several groups with one another and running into an issue where for a given peak, "group A vs group B: conc_group1" != "group C v group A: conc_group2". I'm trying to figure out why this might be, since I had thought "A vs B: conc_group1" should = "C vs A: conc_group2" = log2(reads mapping to peak for all samples in group A)... but maybe I'm missing something.

Hope this question makes sense!

ADD REPLY
0
Entering edit mode

As I understand it, you have two contrasts that share one group of samples. You expect the concentrations reported for the shared group to be the same in both contrasts, but they are no equal. Is that correct?

My first question is what version of DiffBind are you using? And how exactly did you set up the contrasts? In older versions [and in the current version if you set design=FALSE in dba.contrast()], each contrast uses a distinct model and is normalized separately, so any normalized results will be different (if bNormalized=TRUE, as is done by default). However non-normalized concentrations should be the same (modified only by taking log2()).

ADD REPLY
0
Entering edit mode

I am using DiffBind version 2.16.2, so not the most recent. I am setting up the contrasts and analysis using:

db_obj <- dba.contrast(db_obj, categories=DBA_CONDITION, minMembers=2)

db_obj <- dba.analyze(db_obj, method=DBA_ALL_METHODS)

and I am viewing the results of each contrast through dba.report(db_obj, method=DBA_DESEQ2, contrast=contrast, th=1, bCalled=TRUE).

I think I get it now-- since bNormalized is True by default, dba.report() is reporting the separately normalized scores for each contrast (so in my case, the RLE normalized values because DeSeq2 uses RLE normalization by default), instead of the log2 normalized raw counts, correct?

ADD REPLY
0
Entering edit mode

Yes. You can get the raw counts by setting bNormalized=FALSE when calling dba.report().

In the more recent version, by default a single model is for all the contrasts, and normalization factors are calculated using all the data, so the normalized counts should be the same when the same sample groups are used in different contrasts.

ADD REPLY

Login before adding your answer.

Traffic: 731 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6