所以我正在使用r,并带有Bioconductor(oligo),(limma)软件包来分析一些微阵列数据。
配对分析时遇到问题。
这是我的表型数据
ph @ data
ph@data
index filename group
WT1 WT WT1 WT
WT2 WT WT2 WT
WT3 WT WT3 WT
WT4 WT WT4 WT
LT1 LT LT1 LT
LT2 LT LT2 LT
LT3 LT LT3 LT
LT4 LT LT4 LT
TG1 TG TG1 TG
TG2 TG TG2 TG
TG3 TG TG3 TG
TG4 TG TG4 TG
为了分析,我编写了这段代码:
colnames(ph@data)[2]="source"
ph@data
groups = ph@data$source
f = factor(groups,levels = c("WT","LT","TG"))
design = model.matrix(~ 0 + f)
colnames(design)=c("WT","TG")
design
data.fit = lmFit(normData,design)
> design
WT LT TG
1 1 0 0
2 1 0 0
3 1 0 0
4 1 0 0
5 0 1 0
6 0 1 0
7 0 1 0
8 0 1 0
9 0 0 1
10 0 0 1
11 0 0 1
12 0 0 1
attr(,"assign")
[1] 1 1 1
attr(,"contrasts")
attr(,"contrasts")$f
[1] "contr.treatment"
然后我起诉这以便在我的小组之间进行比较:
contrast.matrix = makeContrasts(LT-WT,TG-WT,LT-TG,levels=design)
data.fit.con = contrasts.fit(data.fit,contrast.matrix)
data.fit.eb = eBayes(data.fit.con)
所以毕竟,我想比较我的组:
ph@data[,2] = c("control","control","littermate","transgenic","transgenic")
colnames(ph@data)[2]="Treatment"
ph@data[,3] = c("B1","B2","B3","B4","B1","B4")
colnames(ph@data)[3]="BioRep"
ph@data```
groupsB = ph@data$BioRep
groupsT = ph@data$Treatment
fb = factor(groupsB,levels=c("B1","B4"))
ft = factor(groupsT,levels=c("control","transgenic"))```
paired.design = (~ fb + ft)
所以现在我的phenoData看起来像这样:
index Treatment BioRep
WT1 WT control B1
WT2 WT control B2
WT3 WT control B3
WT4 WT control B4
LT1 LT littermate B1
LT2 LT littermate B2
LT3 LT littermate B3
LT4 LT littermate B4
TG1 TG transgenic B1
TG2 TG transgenic B2
TG3 TG transgenic B3
TG4 TG transgenic B4```
B1是生物复制品,那么我是野生型,同窝和转基因的组
为了比较我的样品,我正在尝试
colnames(paired.design)=c("Intercept","B4vsB1","B3vsB1","B2vsB1","B4vsB2","B3vsB2","B4vsB3","littermatevscontrol","transgenicvscontrol")
但是后来我得到了这个错误:
Error in `colnames<-`(`*tmp*`,value = c("Intercept","WTvsLT","WTvsTG",:
attempt to set 'colnames' on an object with less than two dimensions
我做错了什么,这是比较我的数据的正确方法吗?
data.fit = lmFit(data.rma,paired.design)
data.fit$coefficients