我有以下格式的rma规范化矩阵:
ID_REF GSM362180 GSM362181 GSM362188 GSM362189 GSM362192
244901 5.094871713 4.626623079 4.554272515 4.748604391 4.759221647
244902 5.194528083 4.985930299 4.817426064 5.151654407 4.838741605
244903 5.412329253 5.352970877 5.06250609 5.305709079 8.365082403
244904 5.529220594 5.28134657 5.467445095 5.62968933 5.458388909
244905 5.024052699 4.714631878 4.792865831 4.843975286 4.657188246
244906 5.786557533 5.242403911 5.060605782 5.458148567 5.890061836
其中不同的列对应于四种不同类型的启动子,四种启动子中的每一种都具有生物学复制,因此总共有8列。
我尝试使用Limma软件包找到几个启动子(带有重复)的差异表达基因,并且我总是得到一个错误,因为我刚接触到r并且无法完全理解它。
这是我使用的代码:
Group <- factor(c("p1", "p1", "p2", "p2", "p3","p3","p3","p4","p4"), levels = c("GSM362180","GSM362181","GSM362188","GSM362189","GSM362192","GSM362193","GSM362194","GSM362197","GSM362198"))
design <- model.matrix(~0 + Group)
colnames(design) <- c("GSM362180","GSM362181","GSM362188","GSM362189","GSM362192","GSM362193","GSM362194","GSM362197","GSM362198")
fit <- lmFit(modified, design)
其中修改是以上述格式输入的rma标准化数据矩阵。 我收到以下错误:
Coefficients not estimable: GSM362180 GSM362181 GSM362188 GSM362189 GSM362192 GSM362193 GSM362194 GSM362197 GSM362198
lmfit(design,t(M))中的错误:0(非NA)情况
答案 0 :(得分:0)
应该是:
Group <- factor(c("p1", "p1", "p2", "p2", "p3", "p3", "p3", "p4", "p4"))
组类别顺序应与colnames(modified)
在原始代码中,您为levels
中的每个因素分配了不同的唯一Group
,因此基本上您没有分组类别,没有重复,也无法估算系数。
创建您的设计矩阵:
design <- model.matrix(~0 + Group)
然后,您希望将样本名称分配给设计矩阵的rownames
,而不是colnames
,因为列代表分组。
rownames(design) <- c("GSM362180","GSM362181","GSM362188","GSM362189","GSM362192","GSM362193","GSM362194","GSM362197","GSM362198")
# or simply
rownames(design) <- colnames(modified)
您的设计矩阵应该如下所示,其中1
样本属于特定的组类别。
design
Groupp1 Groupp2 Groupp3 Groupp4
GSM362180 1 0 0 0
GSM362181 1 0 0 0
GSM362188 0 1 0 0
GSM362189 0 1 0 0
GSM362192 0 0 1 0
GSM362193 0 0 1 0
GSM362194 0 0 1 0
GSM362197 0 0 0 1
GSM362198 0 0 0 1
attr(,"assign")
[1] 1 1 1 1
attr(,"contrasts")
attr(,"contrasts")$Group
[1] "contr.treatment"