使用基于欧氏距离和完整链接度量的R聚类,向量过多?

使用基于欧氏距离和完整链接度量的R聚类,向量过多?,r,hierarchical-clustering,dendrogram,R,Hierarchical Clustering,Dendrogram,我试图找出如何将计数矩阵读入R,然后基于欧几里德距离和完整的链接度量进行聚类。原始矩阵有56000行(基因)和7列(处理)。我想看看治疗之间是否存在聚类关系。然而,每次我尝试这样做时,我首先会得到一个错误,说明,error:cannotallocate vector of size 544.4 Gb,因为我试图复制其他人发布的作品,我想知道我的初始数据输入是否出错 第二,如果我尝试用56000个基因中的20个进行聚类,我可以绘制聚类树状图,但分支不是实验样本。我正在尝试复制的论文使用显示聚类样本

我试图找出如何将计数矩阵读入R,然后基于欧几里德距离和完整的链接度量进行聚类。原始矩阵有56000行(基因)和7列(处理)。我想看看治疗之间是否存在聚类关系。然而,每次我尝试这样做时,我首先会得到一个错误,说明,
error:cannotallocate vector of size 544.4 Gb
,因为我试图复制其他人发布的作品,我想知道我的初始数据输入是否出错

第二,如果我尝试用56000个基因中的20个进行聚类,我可以绘制聚类树状图,但分支不是实验样本。我正在尝试复制的论文使用显示聚类样本的树状图进行聚类

以下是我尝试运行的代码:

exprs <- as.matrix(read.table("small_RMA_table.txt", header=TRUE, sep = "\t", row.names = 1, as.is=TRUE))
eucl_dist=dist(matrix(exprs),method = 'euclidean')
hie_clust=hclust(eucl_dist,method = 'complete')
plot(hie_clust)
行描述基因(例如,1_DDR1,2_RFC2等),列是实验样本(例如AGS,KATOIII)。我希望看到集群中样本的相关性

这是我的代码生成的示例树状图。我想它只会显示7个分支,反映我的7个样本:

论文的树状图(包括这8个样本以及更多样本)如下所示:


谢谢你能提供的任何帮助

内存快用完了。就这样。无法分配超出内存空间的向量。移动到内存更多的计算机,或者尝试使用
bigmemory
(我从未尝试过)


如果有人想知道,我的第二个问题的答案如下。我在一个矩阵上调用
作为.matrix
,结果它把数据搞砸了。下面的代码现在可以工作了

exprs <- as.matrix(read.table("small_RMA_table.txt", header=TRUE, sep = "\t", row.names = 1, as.is=TRUE))
eucl_dist=dist(exprs,method = 'euclidean')
hie_clust=hclust(eucl_dist,method = 'complete')
plot(hie_clust)
exprs您想在列上聚类(检测治疗之间的相似性)还是在行上聚类(检测基因之间的相似性)?这听起来像是你想要前者,因为你期望7个处理的7个树状图分支

如果是这样,那么您需要转置数据集
dist
为行而不是列计算距离矩阵,这不是您想要的


一旦你完成了转置,你的集群应该不会花费任何时间,也不会占用太多内存。

谢谢,我会这么做的。只要我在初始数据输入方面没有做错任何事情,那么我根本不介意寻找更大的资源。你对问题的后半部分有什么见解吗?如何获得代表样本的树状图分支?@jake9115哦,在对矩阵进行聚类之前,您可能想用
t(您的_数据)
对矩阵进行转置。我认为这将把聚类从基因转移到样本。我认为这也会起作用!我假设dist()比较行,所以我制作了样本行,但是我的聚类图仍然比样本有更多的终端分支,所以我不知道发生了什么!说清楚,我尝试了这段代码,但没有解决问题:
exprs谢谢Hong。我的方法实际上有两个问题,需要转置解决了第一个问题。我还意外地在矩阵上调用了
as.matrix()
,这是另一个大问题!
exprs <- as.matrix(read.table("small_RMA_table.txt", header=TRUE, sep = "\t", row.names = 1, as.is=TRUE))
eucl_dist=dist(exprs,method = 'euclidean')
hie_clust=hclust(eucl_dist,method = 'complete')
plot(hie_clust)