[英]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.