【问题标题】:R NMF package: How to extract sample classifications?R NMF 包:如何提取样本分类?
【发布时间】:2017-04-03 21:50:05
【问题描述】:

在 NMF R 包中,可以使用consensusmap() 来可视化输出。这些图显示了哪些样本属于“共识”轨道中的哪些集群。

我想提取这个样本分类,以便得到这样的数据框:

Sample    Cluster
S1        1
S2        1
S3        2
S4        1
.         .
.         .
S100      2

在 ConsensusClusterPlus 包中,这很容易。您只需拉出 results$consensusClass。我找不到 NMF 包的类似解决方案。我试图查看原始绘图数据,但它太复杂而无法从中提取任何含义。

这里有一个问题的说明:我需要找出哪个“状态”属于哪个“共识”。

【问题讨论】:

    标签: r cluster-analysis consensus nmf


    【解决方案1】:

    走整棵树并数数?

    > v <- syntheticNMF(20, 3, 10)
    
    > xx<-consensusmap(x) 
    
    > str(xx)
    List of 4
    $ Rowv  :  ..--[dendrogram w/ 2 branches and 10 members at h = 1,  midpoint = 5.97, value = 3.4]
      ..  |--[dendrogram w/ 2 branches and 7 members at h = 1, midpoint = 3.69, value = 2.5]
      ..  |  |--[dendrogram w/ 2 branches and 4 members at h = 0, midpoint = 2.12, value = 1.6]
      ..  |  |  |--[dendrogram w/ 2 branches and 3 members at h = 0, midpoint = 1.25, value = 1.2]
      ..  |  |  |  |--[dendrogram w/ 2 branches and 2 members at h = 0, midpoint = 0.5, value = 0.8]
      ..  |  |  |  |  |--leaf "2" ( value.2 = 0.4 )
      ..  |  |  |  |  `--leaf "1" ( value.1 = 0.4 )
      ..  |  |  |  `--leaf "3" ( value.3 = 0.4 )
      ..  |  |  `--leaf "4" ( value.4 = 0.4 )
      ..  |  `--[dendrogram w/ 2 branches and 3 members at h = 0, midpoint = 1.25, value = 0.9]
      ..  |     |--[dendrogram w/ 2 branches and 2 members at h = 0, midpoint = 0.5, value = 0.6]
      ..  |     |  |--leaf "6" ( value.6 = 0.3 )
      ..  |     |  `--leaf "5" ( value.5 = 0.3 )
      ..  |     `--leaf "7" ( value.7 = 0.3 )
      ..  `--[dendrogram w/ 2 branches and 3 members at h = 0, midpoint = 1.25, value = 0.9]
      ..     |--[dendrogram w/ 2 branches and 2 members at h = 0, midpoint = 0.5, value = 0.6]
      ..     |  |--leaf "9" ( value.9 = 0.3 )
      ..     |  `--leaf "8" ( value.8 = 0.3 )
      ..     `--leaf "10" ( value.10 = 0.3 )
      $ rowInd: int [1:10] 2 1 3 4 6 5 7 9 8 10
      $ Colv  :  ..--[dendrogram w/ 2 branches and 10 members at h = 1, midpoint = 3.03, value = 3.4]
      ..  |--[dendrogram w/ 2 branches and 3 members at h = 0, midpoint = 0.75, value = 0.9]
      ..  |  |--leaf "10" ( value.10 = 0.3 )
      ..  |  `--[dendrogram w/ 2 branches and 2 members at h = 0, midpoint = 0.5, value = 0.6]
      ..  |     |--leaf "8" ( value.8 = 0.3 )
      ..  |     `--leaf "9" ( value.9 = 0.3 )
      ..  `--[dendrogram w/ 2 branches and 7 members at h = 1, midpoint = 2.31, value = 2.5]
      ..     |--[dendrogram w/ 2 branches and 3 members at h = 0, midpoint = 0.75, value = 0.9]
      ..     |  |--leaf "7" ( value.7 = 0.3 )
      ..     |  `--[dendrogram w/ 2 branches and 2 members at h = 0, midpoint = 0.5, value = 0.6]
      ..     |     |--leaf "5" ( value.5 = 0.3 )
      ..     |     `--leaf "6" ( value.6 = 0.3 )
      ..     `--[dendrogram w/ 2 branches and 4 members at h = 0, midpoint = 0.875, value = 1.6]
      ..        |--leaf "4" ( value.4 = 0.4 )
      ..        `--[dendrogram w/ 2 branches and 3 members at h = 0, midpoint = 0.75, value = 1.2]
      ..           |--leaf "3" ( value.3 = 0.4 )
      ..           `--[dendrogram w/ 2 branches and 2 members at h = 0, midpoint = 0.5, value = 0.8]
      ..              |--leaf "1" ( value.1 = 0.4 )
      ..              `--leaf "2" ( value.2 = 0.4 )
     $ colInd: int [1:10] 10 8 9 7 5 6 4 3 1 2
    
    
    > lapply(cut(xx$Rowv,0.5)$lower, function(l) rapply(l, function(i) i))
    [[1]]
    [1] 2 1 3 4
    
    [[2]]
    [1] 6 5 7
    
    [[3]]
    [1]  9  8 10
    

    【讨论】:

    • 感谢您的建议。我不太了解这种树状结构,也无法在其中找到“共识”轨迹。在我的数据中,我什至没有看到你在你的数据中看到的“$ Colv”。我有案例/对照数据,我想查看案例或对照是否有过度代表的原型。
    【解决方案2】:
    NMF::predict(NMFfitX_object, what = "consensus")
    

    如果您有一个 NMF.rank 类的对象,您可以通过以下方式访问包含的 rank = 3 的 NMFfitX 对象:

    NMF.rank_object$fit$`3`
    

    【讨论】:

      猜你喜欢
      • 2016-12-22
      • 1970-01-01
      • 1970-01-01
      • 2020-11-01
      • 2021-07-20
      • 1970-01-01
      • 2014-02-14
      • 1970-01-01
      • 2016-09-21
      相关资源
      最近更新 更多