Question: Blocking factor in limma/voom vs. variancePartition/dream analysis.
0
gravatar for Ben
4 months ago by
Ben0
United States
Ben0 wrote:

This is a question which came up recently regarding the RNA-Seq in limma/voom, and limma/voom using the variancePartition function dream().

When following the workflow outlined in this document (dream: Differential expression testing with linear mixed models for repeated measures) we can see at the beginning a limma/voom analysis resulting in an object called vobj. This object was created by passing the DGEList object twice through the voom function, once before and once after the execution of duplicateCorrelation. The blocking factor is not provided within the design formula in both cases.

This is different to the later described dream workflow. Here, blocking (duplicateCorrelation) is performed as it is in the limma workflow (blocking variable not part of design formula), but when the dream function is executed, the blocking variable is part of the design formula. Can someone briefly explain why?

A factor defining individual patient/subject effects, which are "blocked" first, seem to be provided again as random effects in the dream function...

Thanks much!

ADD COMMENTlink modified 6 weeks ago by gabriel.hoffman80 • written 4 months ago by Ben0
Answer: Blocking factor in limma/voom vs. variancePartition/dream analysis.
2
gravatar for gabriel.hoffman
4 months ago by
United States
gabriel.hoffman80 wrote:

Hi Ben, Thanks for your comment. Both limma and dream analysis include two steps: 1) estimate weights, 2) fit regression model using these weights. The limma/voom workflow uses voom() and then lmFit(). The dream package focuses on replacing lmFit() with dream() in order to model random effects, also knowing as blocking. So the current version of the package leaves the first step exactly as it is for the limma/voom workflow. I have found this to be a good enough approximation.

But I agree it is not ideal, and can be a little confusing.

I am currently developing a new first step function: voomWithDreamWeights() that I think will behave liked you expected here. I will get back to you in about a week about testing this new function out.

Cheers, - Gabriel

ADD COMMENTlink written 4 months ago by gabriel.hoffman80

Thanks for the clarification! That's very helpful. So I will continue using the workflow as described in the vignette by using voom > duplicateCorreltion > voom > dream, and providing the blocking factor as a random effect within dream.

Thanks much!

ADD REPLYlink written 4 months ago by Ben0
Answer: Blocking factor in limma/voom vs. variancePartition/dream analysis.
0
gravatar for gabriel.hoffman
6 weeks ago by
United States
gabriel.hoffman80 wrote:

Hi Ben, I wanted to get back to you about your earlier questions. The new version 1.14.1 implements voomWithDreamWeights() so you can specify random effects in the calculation of the precision weights

  • Gabriel
ADD COMMENTlink written 6 weeks ago by gabriel.hoffman80
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 16.09
Traffic: 437 users visited in the last hour