2017-02-09 46 views
2

makeContrasts我想通過線性迴歸建模做一些對比在R.我有以下數據,mat1model.matrix和R中

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) 

是正確的方式?也許有人可以幫助我。謝謝。

+0

試着給我們舉個例子。 – SmallChess

+0

通常情況下,您將條件而不是基因進行對比。 '表達< - 因子(mat1)'不正確,它應該是因子(rownames(mat1)'或'因子(colnames(mat1)',具體取決於你正在進行的對比。 – emilliman5

回答

1

使用線性模型分析基因表達的一般語法看起來是正確的,包括contrast.matrix。但是,它令我感到擔憂的是,您的代碼不提供有關樣本功能(即患者研究中的臨牀協變量)的信息。我不確定您正在測試的是問題/假設。例如,如果正在比較處理(通常與1編碼的)與不治療(0),則可以運行:

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

其中feature是一個矩陣或data.frame與臨牀信息。

沒有看過您的實際數據和樣品/臨牀特徵,我最好的猜測是,東西的這兩行代碼出了問題:

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

也就是說,設計矩陣的建立。

如果需要,您可能需要重新訪問R/Bioconductor套件limma並通過示例進行工作。