我正在使用R package NMF對微陣列表達式數據執行非負矩陣分解。我完成了nmf
程序,但想從基礎矩陣中提取基因名稱(特徵)。基礎矩陣是nmf
之後的結果矩陣之一,其中包含行的基因名稱,列的元序列數(分解等級)。說明來自NMF包中的extractFeatures()R
該軟件包有一個功能可以完成這項操作,稱爲extractFeatures()
,它將對矩陣進行評分並返回符合我評分標準的特徵(基因名稱)。假設在運行NMF(最終NMF對象稱爲x
)之後,我有4個metagene列(rank = 4)作爲基礎矩陣。當我運行s <- extractFeatures(x)
我得到一個R「列表」與含有整數4個載體:
> class(s)
[1] "list"
> str(s)
List of 4
$ : int [1:575] 569 4857 4 51 91 9627 6359 2522 118 163 ...
$ : int [1:243] 3 1 11834 106 2 52 3855 1103 6 1510 ...
$ : int [1:37] 11922 11890 11521 11888 11648 11388 9340 11520 9854 11670 ...
$ : int [1:808] 6123 9125 11918 10432 9674 2109 11802 8372 11746 6996 ...
- attr(*, "method")= chr "kim"
(對於下面的代碼,一些結果的是爲簡潔起見移除)
> s
[[1]]
[1] 569 4857 4 51
[[2]]
[1] 3 1 11834 106 2 52 3855 1103 6 1510 14 49
[[3]]
[1] 11922 11890 11521
[[4]]
[1] 6123 9125 11918 10432 9674 2109
問題1: 什麼這些是整數嗎?它們應該是我矩陣中的「特徵」(即基因名稱)。他們爲什麼是整數而不是基因名?那些整數是否以某種方式與我的基因名稱相對應?
問題2: 如何從每個單獨的載體中分離基因名稱(在列表s
內)。例如,我想獲得第一個metagene(575個功能)的唯一基因名稱,然後只有第二個metagene(243個功能)的基因名稱等,等等。
任何想法將不勝感激。謝謝!