Question: DESeq2 error with lfcshrink for interaction term
gravatar for Cece
8 weeks ago by
Cece0 wrote:

Hi All,

1.   I'm trying to use the code below to shrink the LFCs in my model but I keep generating an error.

resLFCint <- lfcShrink(dds, res = res, name="Cov1.Conditioncase", type="apeglm"))
using 'apeglm' for LFC shrinkage
Error: !missing(coef) is not TRUE

design ~ Age + Gender + Cov3 + Cov2 + Cov1 + Condition + Cov1:Condition

where Cov1, Cov2 and Cov3 are all continuous variables and levels of Condition are treated and untreated. As this is the final coefficient in resultNames(dds), res generates the same results whether or not I actually name the interaction, and gives me around 50 significant genes but this becomes a problem when I try to shrink the LFCs. I'd like to look see if these genes are significant with LFC 1 and -1 and from reading the userguide, it appears that using lfcshrink is recommended over filtering results from res by whatever LFC I set as my cutoff of interest. My aim is to determine whether there is any effect of Cov1 ( and similarly Cov2 and Cov3 - when I get the command to work) that differs between treated and untreated whilst controlling for Age and Gender. I have 24 samples in each set. Please let me know if I'm forming my model correctly given the question I want to answer. 

2.   I'd like to also analyze the situation where I'm adding the effects of Cov1, Cov2 and Cov3 and looking at their additive effects between treated and untreated. I'm not sure if that's the right approach. I can prove that CovX individually have (or do not have) an effect in treated vs untreated if I look at each interaction separately, as above, but is there a way to look at all 3 in one contrast, or naming all in the coefficients?

Thanks in advance,



ADD COMMENTlink modified 8 weeks ago by Michael Love20k • written 8 weeks ago by Cece0
gravatar for Michael Love
8 weeks ago by
Michael Love20k
United States
Michael Love20k wrote:

The error is saying that the 'coef' term wasn't specified. lfcShrink() uses an argument 'coef' instead of 'name' which is used by results().

If you want to test multiple coefficients at once, you should use the LRT. You remove the terms from the reduced design that you want to test. See the vignette section on LRT.

ADD COMMENTlink written 8 weeks ago by Michael Love20k

So if I understand correctly, if my full design looks like this:

ds <- DESeqDataSetFromMatrix(countData = mycounts, colData=merge2, design= ~ Age + Gender + 
                                Cov3 + Cov2 + Cov1 + Condition + Cov1:Condition + Cov2:Condition + Cov3:Condition)

then I can test the effect of the interaction between  Cov1 and Condition by:

dds <- DESeq(dds, test="LRT", reduced=~Cov1:Condition)

and test the additive effect of the three interactions by doing

dds <- DESeq(dds, test="LRT", reduced=~Cov1:Condition Cov3:Condition + Cov2:Condition)

Is that correct? 

Many thanks

ADD REPLYlink written 8 weeks ago by Cece0

The reduced design should be the null model. You remove only the coefficients of interest. Above it looks like you are including only the coefficients of interest. Read over the LRT section again maybe?

ADD REPLYlink written 8 weeks ago by Michael Love20k
Please log in to add an answer.


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