DiffBind edgeR normalization --- why are the normalization factors all equal to 1?
1
0
Entering edit mode
tifaGis • 0
@00200f63
Last seen 50 minutes ago
United States

Hi,

I hope to try a full library size normalization but with edgeR.

So I performed the following:


data(tamoxifen_analysis)
tamoxifen = dba.normalize(tamoxifen, method = DBA_EDGER)
dba.normalize(tamoxifen, method = DBA_EDGER, bRetrieve = T)

Interestingly the normalization factors are all 1

$norm.method
[1] "lib"

$norm.factors
 [1] 1 1 1 1 1 1 1 1 1 1 1

$lib.method
[1] "full"

$lib.sizes
 [1]  652697  663370  346429  368052  466273  399879 1475415  616630  593224  706836 2575408

But apparently some normalization has happened as the ma plot is different from the one using raw data:

tamoxifen = dba.analyze(tamoxifen, method = DBA_EDGER)
dba.plotMA(tamoxifen, method = DBA_EDGER)

enter image description here

Could you please explain why is that? Thanks!

edgeR DiffBind • 88 views
ADD COMMENT
0
Entering edit mode
ATpoint ★ 4.7k
@atpoint-13662
Last seen 8 hours ago
Germany

You perform library normalization which is expected to return normalization factors being all 1. If you want to use the more elaborate edgeR normalization then you have to tell that to the function, see ?dba.normalize. Looking at the MA-plot and the discrepancy between the loess (red) and neutral line (blue) indeed suggests that normalization is not optimal here. You're probably overestimating differences that are higher in the responsive group.

ADD COMMENT
0
Entering edit mode

Hi, thanks for your response.

I'd like to know why

You perform library normalization which is expected to return normalization factors being all 1.

Shouldn't they be proportional to the actual library sizes?

I didn't want to do the more elaborate edgeR normalization, I just want to try the option of full library size + egdeR. In the tutorial, the author showed full library size + Deseq2 as the first and simplest normalization, where the norm factors are as expected (proportional to library sizes).


data(tamoxifen_analysis)
tamoxifen = dba.normalize(tamoxifen, method = DBA_DESEQ2)
dba.normalize(tamoxifen, method = DBA_DESEQ2, bRetrieve = T)

$norm.method
[1] "lib"

$norm.factors
 [1] 0.8099610 0.8232056 0.4298993 0.4567323 0.5786191 0.4962278 1.8309087 0.7652039 0.7361583
[10] 0.8771445 3.1959394

$lib.method
[1] "full"

$lib.sizes
 [1]  652697  663370  346429  368052  466273  399879 1475415  616630  593224  706836 2575408
ADD REPLY

Login before adding your answer.

Traffic: 714 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