我正在使用R中的NMF包对RNAseq / microRNAseq数据进行非负矩阵分解。
我的第一次尝试是使用已记录的RNAseq数据(FPKM数据矩阵),删除空行并转换为符合非负性要求。这非常有效。 extractFeatures()函数返回了一个索引列表,然后我可以使用它来列出每个特征中的基因并执行功能(基于GO)分析。耶!
然后,我决定尝试使用microRNA数据(再次FPKM数据矩阵)处理与RNAseq数据完全相同的方法。
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个功能!
非常感谢您的时间!
答案 0 :(得分:0)
尝试extractFeatures(res.mir, 30)
,这意味着每个组件中的前30个功能。但是我不知道为什么它会返回NAs默认值。