I'm entirely new to limma/voom and the wider differential gene expression analysis field.
I have an experiment consisting of 20 patients, 7 time-points for each patient, and all 20 patients are undergoing the same biological process i.e. there is only 1 condition. There are no replicates for each time point.
I'm interested in determining which genes are differentially expressed as a function of time. For example, the contrast could be TimePoint 7 vs. TimePoint 1.
A high degree of inter-individual variability is expected, including different baselines (defined by the first time-point).
My design so far is:
mm <- model.matrix(~0 + timepoint)
But it's not clear to me from the limma manual how to use duplicateCorrelation()
or exactly what it is doing. I assume it's needed in order to account for the variability among patients.
How should I use it? What is the best possible design for my experiment?
Many thanks.
Awesome, thank you. I'm used to using makeContrasts in order to specify 'time2-time1' etc. but if everything in this model is already relative to baseline, how do I access the data? Simply time2-(Intercept)? What would be the change necessary to make everything not relative to baseline? i.e. to obtain time2-time, time3-time2, time4-time3 and so forth?
No, time2 is already time2 - Intercept. You just use
topTable
to extract data for each comparison to baseline. And any other comparison you usemakeContrasts
. So time3 - time2 is still what you think it is (it's actually EDIT (time3 - time1) - (time2 - time1), which collapses to the comparison you want).