我正在使用R 包 NMF对微阵列表达数据执行非负矩阵分解。我nmf
很好地完成了程序,但想从基础矩阵中提取基因名称(特征)。基矩阵是生成的矩阵之一,nmf
行是基因名称,列是元基因数(分解等级)。
该包有一个用于执行此操作的函数,该函数extractFeatures()
将对矩阵进行评分并返回符合我的评分标准的特征(基因名称)。假设在运行 NMF(最终的 NMF 对象x
称为 当我运行时,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
)中分离基因名称。例如,我想获取第一个元基因的唯一基因名称(575 个特征),然后只获取第二个元基因的基因名称(243 个特征),等等。
任何想法,将不胜感激。谢谢!