无法使用 R 的 kohonen 包引用在 som 分析中聚集的基因

Not able to refer back to genes clustered in som analysis using R's kohonen package

我遇到了一个问题,我正在尝试使用 R 中的 kohonen 包应用 SOM 分析。我使用的数据集是一个基因表达数据框。我正在使用下面给出的代码,

dim(bink)
[1]  401 1198

其中 bink 是一个具有 1198 个基因表达值的数据框,其中基因名称位于如下所示的列中,

剩下的代码如下,

grid <- somgrid(xdim = 5, ydim = 5, topo = "hexagonal")

som.wines <- som(scale(bink), grid = somgrid(xdim = 5, ydim = 5, "hexagonal"))
str(som.wines)
plot(som.wines, type = "mapping")

应用上面的代码后,我得到如下图,

但是我无法获得聚集在每个圆圈中的基因的名称,我尝试使用给定的答案,下面给出了代码,

x= attr(som.wines$data,"scaled:center")

y= attr(som.mines$data,"scaled:scale")

for (i in 1:ncol(som.wines$data)){
z[,i] = som.wines$data[,i][som.wines$unit.classif==1] * y[i]+x[i]
}

然后我收到下面给出的错误,

# Error in 1:ncol(som.wines$data) : argument of length 0

我也尝试过使用 som.wines$data[[1]] 更改访问数据的方式,但它不起作用。

有什么办法可以解决这个问题吗?

谢谢

data(wines)为例。

som.wines <- som(scale(wines), grid = somgrid(5, 5, "hexagonal"))

图中的每个大圆圈都是在数据中按行找到的一组样本。 集群的配置文件存储在 som.wines$codes 中。这里的每一行都是一个簇,V1 - Vx。显然,这对应于大圆圈的数量。您在 som.wines$unit.classif.

中找到关联的行,即原始数据

将集群与您的原始数据相关联

cbind(wines, cluster=som.wines$unit.classif)

图中大圆圈的排列与som.wines$codes中的数字相对应,左下角的大圆圈为V1,右上角的大圆圈为Vx,即最后一个群集。