2014-08-30 19 views
1

我正在用R分析一些基因表達數據。我想用limma的eBayes(limme是BioConductor的一部分)做差異基因表達分析,但要做到這一點,我需要將我的表達數據作爲eset對象。事情是,我只有預處理的數據,沒有CEL文件,我可以直接轉換成eset對象。我試圖從互聯網上搜索,但找不到解決方案。我發現的唯一的事情是它是可能的。從預處理的表達矩陣創建eset對象?

爲什麼eBayes: 它應該有,即使只有兩三中的一些羣體的樣本穩定的結果,我確實確實有3組是2〜3個樣品的尺寸。

詳細我有什麼想要做的: 我有表達數據,已經作爲對數,標準化的intesity值。數據在表達式矩陣中。大約有20 000行,每行是一個基因,rownames是官方的基因名稱。有22列,每列對應一個癌症樣本。我在那裏有不同種類的癌症亞型,並想比較例如亞型1樣本的基因表達與第2組的樣本的基因表達。下面是我的矩陣看起來像兩行,5列的例子。

示例矩陣:

 SAMP1 SAMP2 SAMP3 SAMP4 SAMP5 
GENE1 123.764 122.476 23.4764 2.24343 123.3124 
GENE2 224.233 455.111 124.122 112.155 800.4516 

問題: 評價與eBayes基因差異表達,我需要的ESET對象進行這種表達數據的,我必須誠實地不知道如何去關於那一步。 :(

我對信息的每一位,可以幫助我出去!如果有人可以建議小樣本比較的另一個可靠的方法,有可能解決我的問題也很感激。

謝謝!

+2

這個小插曲應該幫助你 - http://bioconductor.org/packages/release/bio c/vignettes/Biobase/inst/doc/ExpressionSetIntroduction.R – jalapic 2014-08-30 12:43:17

+0

ExpressionSet()似乎工作!謝謝!我之前嘗試過,但沒有足夠的例子來弄清爲什麼它不喜歡我的數據。事實證明,它被存儲爲數據幀... – scinaya 2014-08-30 12:51:51

+1

分析通常以'lmFit'開始,而不是'eBayes',並且'lmFit'採用矩陣; from'?lmFit':「object:類'numeric','matrix','MAList','EList'的對象, 'marrayNorm','ExpressionSet'或'PLMset'包含 的對數比或對數值表達一系列 微陣列「。此外,有關Bioconductor問題的問題在Bioconductor [郵件列表]上更好地提出( http://bioconductor.org/help/mailing-list/) – 2014-08-30 13:23:19

回答

0

使用ExpressionSet似乎與在Bioconductor軟件包中普遍存在的SummarizedExperiment非常相似。據我所知,在軟件包中使用一種或另一種沒什麼特別之處 - 根據我的經驗,它被認爲是數據的通用容器,以便在Bioconductor軟件包中實現數據集格式的標準化。

從上Bioconductor的暈影:

Affymetrix公司的數據將通常使用 AFFY 包被歸一化。我們將在這裏假設 數據可作爲 表達式集 對象稱爲 eset。這樣的對象將具有包含對於每個陣列上的每個基因的對數表達值的插槽,其可以使用 exprs(eset)來提取。

換句話說,ExpressionSet的數據沒有什麼特別之處。一個ExpressionSet簡直就是一堆串成到一個相關的實驗數據,但現在看來,我只能從常規對象創建新的對象:

library(limma) 

# counts is the assay data I already have. 
dim(counts) 
# [1] 64102  8 

# Creates a new ExpressionSet object (quite bare, only the assay data) 
asdf <- ExpressionSet(assayData = counts) 

# Returns the data you put in. 
exprs(asdf) 

這適用於我的設置。

,你需要考慮的第二部分是差異表達分析對比模型矩陣的設計。您需要預定義的因素與樣品一起去(可能內phenoData參數ExpressionSet然後,使用R的特殊formula語法創建一個model.matrix它們看起來類似:。dependent ~ factor1 + factor2 + co:related注意,factor1是一個因素類別或維度,而不是一個級別。

一旦你的,你應該能夠運行lmFit。其實我已經不習慣limma之前很多,但它似乎是類似edgeR的方案。

+0

是的,最終工作正常,就像你的例子。我的數據只是錯誤的對象格式。謝謝你的回覆和明確的例子。 :) – scinaya 2016-02-21 15:19:14

0

就決定把它回答,以幫助其他一些可憐的傢伙,誰擁有相同的事故。通過評論親切給出的鏈接去後想通問題出來了我自己。

ExpressionSet()不採取矩陣,並把它們以eSet對象爲好,只需確保數據爲矩陣而不是數據框對象噸。