繁体   English   中英

R中的model.matrix和makeContrasts

[英]model.matrix and makeContrasts in R

我想通过 R 中的线性回归建模做一些对比。我有以下数据mat1

   Gene1    Gene2   Gene3
1  5.89     7.45    2.66
2  8.99     5.39    1.58
3  3.67     6.88    4.82
4  8.25     8.76    3.58

我使用以下代码创建设计矩阵:

library(limma)
expression <- factor(mat1)
design <- model.matrix(~0 + expression)
colnames(design) <- levels(expression)

设计矩阵现在看起来很奇怪。 并且行数和列数发生了变化。 错误在哪里?

这是我想继续使用的下一段代码:

fit <- lmFit(mat1, design)
contrast.matrix <- makeContrasts(Gen1 - Gen2, levels = design)
fit2 <- contrasts.fit(fit, contrast.matrix)
fit2 <- eBayes(fit2)

这是正确的方法吗? 也许有人可以帮助我。 谢谢。

您使用线性模型分析基因表达的一般语法看起来是正确的,包括contrast.matrix 但是,我担心您的代码没有提供有关样本特征(又名患者研究中的临床协变量)的信息。 我不确定您正在测试的问题/假设是什么。 例如,如果您要比较处理(通常用1编码)与不处理( 0 ),您将运行:

design <- model.matrix( ~ feature$treatment)

其中feature是具有临床信息的矩阵或数据框。

在没有看到您的实际数据和样本/临床特征的情况下,我最好的猜测是这两行代码出了问题:

design <- model.matrix(~0 + expression)
colnames(design) <- levels(expression)

即设计矩阵的建立。

如有必要,您可能需要重新访问limma R/Bioconductor 包并通过示例进行工作。

试试下面的代码:

fit <- lmFit(mat1, design)
contrast.matrix <- limma::makeContrasts(Gen1 - Gen2, levels = design)
fit2 <- limma::contrasts.fit(fit, contrast.matrix)
fit2 <- eBayes(fit2)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM