R ComplexUpset 包中的内存管理
Memory management in R ComplexUpset Package
我正在尝试使用 ComplexUpset 包在扰乱图中绘制堆叠条形图。我想要得到的情节看起来像这样(在我的例子中 mpaa 将是组件):
我有一个大小为 57244 x 21 的数据框,其中一列是 ID,另一列是记录类型,其他 19 列是从 1 到 19 的组件:
ID component1 component2 ... component19 type
1 1 0 1 a
2 0 0 1 b
3 1 1 0 b
1 和 0 表示与某个组件的隶属关系。如文档中的 example 所示,我首先将这些 1 和 0 转换为逻辑,然后尝试绘制基本的翻转图。这是代码:
df <- df %>% mutate(across(where(is.numeric), as.logical))
components <- colnames(df)[2:20]
upset(df, components, name='protein', width_ratio = 0.1)
但不幸的是,在处理最后一行时思考了一会儿,它吐出这样的错误消息:
Error: cannot allocate vector of size 176.2 Mb
虽然我知道我使用的是 32Gb RAM 体系结构,但我确定我不能将内存淹没到无法分配 167 Mb 的程度,所以我猜我是在 R 中管理内存不知何故错误。如果可能的话,你能解释一下我的代码有什么问题吗?
我也知道 UpsetR 包绘制相同的数据,但据我所知它没有提供堆叠条形图的方法。
不知何故,如果你:
- 调整
min_size
参数,使情节不会过载并给人留下更好的印象
- 将
ComplexUpset
的第一个参数设为包含一些数据的样本也有帮助,即使您的样本是整个数据集。
我正在尝试使用 ComplexUpset 包在扰乱图中绘制堆叠条形图。我想要得到的情节看起来像这样(在我的例子中 mpaa 将是组件):
我有一个大小为 57244 x 21 的数据框,其中一列是 ID,另一列是记录类型,其他 19 列是从 1 到 19 的组件:
ID component1 component2 ... component19 type
1 1 0 1 a
2 0 0 1 b
3 1 1 0 b
1 和 0 表示与某个组件的隶属关系。如文档中的 example 所示,我首先将这些 1 和 0 转换为逻辑,然后尝试绘制基本的翻转图。这是代码:
df <- df %>% mutate(across(where(is.numeric), as.logical))
components <- colnames(df)[2:20]
upset(df, components, name='protein', width_ratio = 0.1)
但不幸的是,在处理最后一行时思考了一会儿,它吐出这样的错误消息:
Error: cannot allocate vector of size 176.2 Mb
虽然我知道我使用的是 32Gb RAM 体系结构,但我确定我不能将内存淹没到无法分配 167 Mb 的程度,所以我猜我是在 R 中管理内存不知何故错误。如果可能的话,你能解释一下我的代码有什么问题吗?
我也知道 UpsetR 包绘制相同的数据,但据我所知它没有提供堆叠条形图的方法。
不知何故,如果你:
- 调整
min_size
参数,使情节不会过载并给人留下更好的印象 - 将
ComplexUpset
的第一个参数设为包含一些数据的样本也有帮助,即使您的样本是整个数据集。