【发布时间】:2015-07-10 01:20:32
【问题描述】:
我正在使用 R 中的 NMF 包对 RNAseq/microRNAseq 数据执行非负矩阵分解。
我的第一次尝试是使用已记录的 RNAseq 数据(FPKM 数据矩阵),删除空行并转换以适应非负性要求。这很好用。 extractFeatures() 函数返回一个索引列表,然后我可以使用它来列出每个特征中的基因并执行功能(基于 GO)分析。耶!
然后,我决定尝试使用与 RNAseq 数据完全相同的方式处理的 microRNA 数据(同样是 FPKM 数据矩阵)。
数据看起来像这样
SampleA SampleB SampleC SampleD SampleE
hsa-let-7a-2-3p 0.000000 0.000000 0.000000 0.8858701 0.000000
hsa-let-7a-3p 8.723701 10.169876 8.041837 8.3992046 8.109053
hsa-let-7a-5p 14.996682 12.861308 13.739875 14.0245517 13.901233
hsa-let-7b-3p 4.911069 0.000000 5.399995 5.7433124 5.553784
hsa-let-7b-5p 11.758403 10.788349 11.648344 12.0864421 11.909324
hsa-let-7c 10.480125 6.378711 11.214152 10.2060951 10.852412
我已经完成了排名优化步骤并找到了最佳排名(此处为 4)。在此之后,我像这样运行 nmf 函数(可能是最简单的版本)。
res.mir <- nmf(data,4)
然后,我尝试从这个对象中提取特征,我得到了这个....
> s<-extractFeatures(res.mir)
> s
[[1]]
<NA>
NA
[[2]]
<NA>
NA
[[3]]
<NA>
NA
[[4]]
<NA>
NA
attr(,"method")
[1] "kim"
我唯一能获得特征索引的时间是在我使用的时候
s1<-extractFeatures(res.mir,method="max")
> s1
[[1]]
<NA>
NA
[[2]]
[1] 923
[[3]]
[2] 258 20 308 561 591
[[4]]
<NA>
NA
attr(,"method")
[1] "max"
但是,在这种情况下,我只获得了一些特征的索引,而不是全部 4 个。奇怪的是我可以看到 4 个特征!
问题
- 对于如何从 NMFfitX1 对象中获取功能有任何建议吗?
- 或者,有谁知道为什么我返回一个空列表?
非常感谢您的宝贵时间!
【问题讨论】:
-
使用另一种方法提取特征,即,如果您以前使用“kim”,请尝试“max”。空列表意味着没有使用预先指定的方法根据计算的分数选择特征。
标签: r feature-extraction