[BioC] EdgeR norm.factors input

Yanzhu [guest] guest at bioconductor.org
Tue Feb 11 15:38:03 CET 2014


Dear Gordon,

Thank you so much for your comments. This is exactly what I did for total read count normalization, I used norm.factors = 1
for total count (TC) normalization. 

Then here comes the question. As I mentioned in my previous post, I would like to compare the performance of different normalization methods. Besides that, I also would like to compare the results of normalized data with the results of raw count (RC) data (without taking care of any normalization). According to our previous discussion, I skiped the normalization step for RC, but the results were the same for TC and RC. Should I use

norm.factors = 1/lib.size

for RC?

One more question, I have also considered the normalization method provided in DESeq package. For this normalization method, what should be my input of correct factor (norm.factors)? I have figured out the relation between the scaling factor (sizeFactors
) of DESeq package and the correct factor (norm.factors) of edgeR which is given as below:

lib.size*norm.factors/mean(lib.size*norm.factors)=sizeFactors

Now I know the lib.size and sizeFactors, I try to figure out what the norm.factors is for DESeq normalization method. This equation system involves n unknown variables with n-1 independent equations. Let X=norm.factors=(X1,X2,...,Xn)^T, lib.size=N=(N1,N2,...,Nn) and sizeFactors
= S=(S1,S2,...,Sn), then

X2=X1*(S2/S1)*(N1/N2)
.
.
.
Xn=X1*(Sn/S1)*(N1/Nn)

Here * means the regular product. I need one more condition to find these unknown variables (X1,X2,...,Xn). Do you happenly know whether there is extra requirement that norm.factors needs to satisfy? 

Thank you!


Yanzhu

----------------------------------------------------------

edgeR always takes the total read count into account, so

   norm.factors = 1

is equivalent to total read count normalization.

Please read the section on normalization in the edgeR User's Guide.

Best wishes
Gordon


> Date: Mon, 10 Feb 2014 11:06:31 -0800 (PST)
> From: "Yanzhu [guest]" <guest at bioconductor.org>
> To: bioconductor at r-project.org, mlinyzh at gmail.com
> Subject: [BioC] EdgeR norm.factor input
>
>
> Dear Gordon,
>
> Thank you so much for your comments.
>
> One more question about the first question asked in my previous post 
> where I asked about how to supply the correct factor in the 
> normalization step.
>
> I would like use the total read count normalization method to normalize 
> the data then use the edgeR to test my multi-factor models as in my 
> previous post. The total read count normalization is given as
>
> X_ij/(N_j/mean(N))=X_ij*mean(N)/N_j,
>
> where X_ij is the read count of gene i sample j, N_j is the library size 
> of sample j, and mean(N) is the mean of library sizes over all samples. 
> My question is what is the input for y$samples$norm.factors? Can I do as 
> the following: y$samples$norm.factors = N/mean(N)? Where N is the vector 
> of library size of all samples, and mean(N) is the mean of library sizes 
> over all sample. Or could you please give me some suggestion? Thank you!
>
>
>
> Yanzhu
>
> ---------------------------------------------------
>
> Date: Fri,  7 Feb 2014 07:25:17 -0800 (PST)
>> From: "Yanzhu [guest]" <guest at bioconductor.org>
>> To: bioconductor at r-project.org, mlinyzh at gmail.com
>> Subject: [BioC] EdgeR multi-factor testing questions
>>
>>
>> Dear Gordon,
>>
>> Thank you so much for your comments. I have updated my code and get the
>> different results for TMM and Upper quartile normalization methods.
>>
>> I have two more question regarding the normalization issue. I have tried
>> different normalization methods and would like to compare their
>> performance. My questions are:
>>
>> 1. In the users' guide 2.5.6, it mentions that normalization takes the
>> form of correction factors that enter into the statistical model. Such
>> correction factors are usually computed internally by edgeR functions,
>> but it is also possible for a user to supply them.I would like to supply
>> the correct factor to edgeR, how could I do this?
>
> Just enter in your own values:
>
>  y$samples$norm.factors <- yourvalues
>
>> 2. I also would like to compare the testing results of normalized data
>> with the results of raw data (without normalizing the data)? Could I
>> just skip the the normalization step as below?
>
> Yes.
>
> Gordon
>
>> group<-paste(L,S,R,sep=".")
>> design<-model.matrix(~L+R+S+L:R+L:S+R:S+L:R:S)
>> y<-DGEList(counts=counts,group=group)
>> #y<-calcNormFactors(y,method="upperquartile",p=0.75) ##skip this step
>>
>> y<-estimateGLMCommonDisp(y,design)
>> y<-estimateGLMTagwiseDisp(y,design)
>>
>> fiteUQ_LRS<-glmFit(y,design,offset=offset  )
>>
>> Thanks.
>>
>>
>> Yanzhu
>>
>>


 -- output of sessionInfo(): 

> sessionInfo() 
R version 3.0.1 (2013-05-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     
> 


--
Sent via the guest posting facility at bioconductor.org.



More information about the Bioconductor mailing list