Entering edit mode
Linus Schumacher
▴
20
@linus-schumacher-6695
Last seen 10.3 years ago
Dear list,
Im trying to find differential expression between two conditions, as
well as within a condition over time. The data are RTqPCR, log10
relative expression of 96 genes (by 55), under 2 conditions, at 8
unevenly spaced timepoints with some missing data (NA) and variable
number of replicates (2-3):
nReplicates <- c(3,3,3,3,3,3,2,3, 2,3,2,3,2,2,3,3)
replicates <- rep(c(1:16), nReplicates)
timePoints <- rep(rep(c(2,4,8,16,30,45,60,90),2), nReplicates)
cond <- factor(rep(rep(0:1, each=8), nReplicates))
Ive managed to run the analysis, but Im unfamiliar with the syntax
for specifying the design matrix and would greatly appreciate if
someone could confirm the design matrix is set up correctly. I
couldnt find an intuitive explanation, so I have been working of
examples from related cases.
design <- model.matrix(~cond+timePoints:cond)
(Intercept) cond1 cond0:timePoints cond1:timePoints
1 1 0 2 0
2 1 0 2 0
...
23 1 0 90 0
24 1 1 0 2
...
43 1 1 0 90
attr(,"assign")
[1] 0 1 2 2
attr(,"contrasts")
attr(,"contrasts")$cond
[1] "contr.treatment"
Now to determine which gene are differentially expressed between the
two conditions,
dupfit <- duplicateCorrelation(data,design,block=replicates)
fit <-
lmFit(data,design,block=replicates,correlation=dupfit$consensus)
fit <- eBayes(fit)
topTable(fit,coef="cond1)
(I have checked dupfit$consensus and is positive, if small (0.11))
And to determine difference in slope of genes under two conditions, I
tried
cont.VEGF <- makeContrasts(contrasts="cond0:timePoints-
cond1:timePoints",levels=design)
fit2 <- contrasts.fit(fit, cont.VEGF)
fit2 <- ebayes(fit2)
topTable(fit2)
but I seem to have the wrong contrast specification, as I got the
following error:
Error in makeContrasts(contrasts = "cond0:timePoints-
cond1:timePoints", :
The levels must by syntactically valid names in R, see
help(make.names). Non-valid names: cond0:timePoints,cond1:timePoints
Is it the semi-colon? If so, how do I change this in the design matrix
specification (where the semicolon comes from), while still getting
the same model fitting?
Apologies if this question is already answered elsewhere, I could only
find parts of it in the list archives and the documentation.
With kind regards,
Linus Schumacher
[[alternative HTML version deleted]]