【问题标题】:Consensus clustering (diceR package) in RR 中的共识聚类(diceR 包)
【发布时间】:2022-12-17 16:49:13
【问题描述】:

我应该执行组合的 K 均值 + 高斯混合模型来确定一组固定数量的集群 (k = 4) 的共识集群。我的数据由来自 4 种不同类型肿瘤的 231 个细胞组成,总共有 19'177 个变量(在本例中为基因)。

我从未尝试过执行此操作,我尝试按照此 R 包中的说明进行操作:https://search.r-project.org/CRAN/refmans/diceR/html/consensus_cluster.html

但是,我一定是做错了什么,因为当我尝试运行代码时,它花费了太多时间并最终说出了这个错误:

> cc <- consensus_cluster(data, nk = 4, algorithms =c("gmm", "km"), progress = F )

Error: cannot allocate vector of size 11.0 Gb

很明显,我生成的矢量太重了,我一定是理解了教程中的错误。 有人熟悉 diceR 包并且可以向我解释是否有办法让它工作吗?

感谢您的时间!

【问题讨论】:

  • 我不认为这个错误是diceR 特有的,这个错误信息可以是caused by a number of things。您是否尝试过在您的数据集的一部分上运行此代码(例如,使用 head(data, n = 1000) 而不是 data),只是为了确保它有效?如果它确实有效,那么您可能需要更多 RAM 才能在整个数据集上运行此代码。

标签: r cluster-computing


【解决方案1】:

consensus_cluster 在执行期间“吃掉”R 会话的内存。您有太多变量,无法在内存中分配它们的处理。

所以你有两个选择:增加物理内存或者不使用完整数据,而是使用它的部分样本。让我们假设增加物理内存是不可行的。那么你应该使用prep.data = "sample"选项。但是你需要等待。我对数据进行建模,对于 GMM,等待时间为 8 小时。

请看下面:

library(diceR)
observ = 23
variables = 19177 
dat <- matrix(rnorm(observ * variables), ncol = variables)
cc <- consensus_cluster(dat, nk = 4, algorithms =c("gmm", "km"), progress = TRUE, 
                        prep.data = "sample")

输出(没那么耐心等待):

Clustering Algorithm 1 of 2: GMM (k = 4) [---------------------------------]   1% eta:  8h

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-18
    • 2021-06-05
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    • 2018-08-13
    • 2016-12-09
    • 2018-07-06
    相关资源
    最近更新 更多