"The voom transformation is applied to the read counts. This converts the counts to log-counts per million with associated precision weights. After this, the RNA-seq data can be analyzed as if it was microarray data."

But because I don't have replicates I cannot use voom. Is it OK to use the log2(cpm) I obtained from EdgeR instead of those obtained by voom?

There's no reason that voom should not work with the design described in section 9.6.2. As long as you use natural splines with fewer degrees of freedom than the number of time points you have, you will have residual degress of freedom left over for model fitting, and everything should work fine.

Secondly, if you want to use edgeR, provide it with the raw counts, not log2(cpm). Other than that, using edgeR is very similar to using limma. You can use the same design matrix for both methods.

Note that the calculation of log2(cpm) by voom uses almost exactly the same formula as edgeR, and this calculation does not require either replicates or a design matrix. The important and unique part of voom, and the part which requires the design matrix, is the estimation of the precision weights.

You actually can use voom, as Ryan has said. However you also can use edgeR's cpm(y, log=TRUE) and analyse the resulting values using limma. See section 15.4 on page 70 of the latest limma User's Guide:

I am a bit confused with what design matrix to use to test for differential expression. I've seen two examples of design matrix for time course analyzis with many (15) time points of two conditions, and I get different results:

y <- DGEList(counts=counts)
A <- aveLogCPM(y)
y2 <- y[A>1,]
y2 <- calcNormFactors(y2)

X <- ns(targets$Time, df=5)
Group <- factor(targets$Group)

design1 <- model.matrix(~Group+Group:X)

v <- voom(y2, design1, plot=TRUE)

fit <- lmFit(v, design1)

fit <- eBayes(fit)

OR

design2 <- model.matrix(~Group*X)

v <- voom(y2, design2, plot=TRUE)

fit <- lmFit(v, design2)

fit <- eBayes(fit)

Is the result in voom showing different trends in time between group1 and group 2?

Which design is more suitable to find the different trends in time?

This is a new question rather than a continuation of your old question, so please post it as a new question.

When you do that, please show us what you mean by "get different results". At the moment you don't show any results, let alone different results. The two design matrices are equivalent, so it's not the design matrices that are at fault.

Hi Gordon,

I am a bit confused with what design matrix to use to test for differential expression. I've seen two examples of design matrix for time course analyzis with many (15) time points of two conditions, and I get different results:

y <- DGEList(counts=counts)

A <- aveLogCPM(y)

y2 <- y[A>1,]

y2 <- calcNormFactors(y2)

X <- ns(targets$Time, df=5)

Group <- factor(targets$Group)

design1 <- model.matrix(~Group+Group:X)

v <- voom(y2, design1, plot=TRUE)

fit <- lmFit(v, design1)

fit <- eBayes(fit)

OR

design2 <- model.matrix(~Group*X)

v <- voom(y2, design2, plot=TRUE)

fit <- lmFit(v, design2)

fit <- eBayes(fit)

Is the result in voom showing different trends in time between group1 and group 2?

Which design is more suitable to find the different trends in time?

Thank you,

Camila

This is a new question rather than a continuation of your old question, so please post it as a new question.

When you do that, please show us what you mean by "get different results". At the moment you don't show any results, let alone different results. The two design matrices are equivalent, so it's not the design matrices that are at fault.