簡體   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