在WGCNA eigengene树状图中交换分支

时间:2015-11-13 12:33:03

标签: r hierarchical-clustering bioconductor dendrogram dendextend

我正在绘制WGCNA包中的moduleeigengenes的树形图,我想订购/交换分支。我使用plotEigengeneNetworks函数绘制它,但无法定义分支的顺序。我知道有用于修改树形图的dendextend包,但这对plotEigengeneNetworks函数产生的输出不起作用。对于如何实现这一点,我会提出任何建议。

示例:

library(WGCNA)
set.seed(123)

ME <- data.frame(replicate(15, sample(1:10, 11, rep=TRUE)))
ME[,c(1:11)] <- sapply(ME[, c(1:11)], as.numeric)    

plotEigengeneNetworks(ME, plotAdjacency = TRUE, setLabels = colnames(ME), plotDendrograms = TRUE, plotHeatmaps = FALSE)

1 个答案:

答案 0 :(得分:0)

查看plotEigengeneNetworks的代码,您将无法使用它来执行您想要的操作。但是,您可以做的是重现它创建集群的方式,然后使用the dendextend package直接更新树形图(从hclust生成),使用以下内容:

# we need to run all of this to get the relevant packages...
source("http://bioconductor.org/biocLite.R")
biocLite("S4Vectors")
biocLite("IRanges")
biocLite("GenomeInfoDb")
biocLite("AnnotationDbi")
biocLite("GO.db")

biocLite("WGCNA")

# what the author wanted:
library(WGCNA)
set.seed(123)

ME <- data.frame(replicate(15, sample(1:10, 11, rep=TRUE)))
ME[,c(1:11)] <- sapply(ME[, c(1:11)], as.numeric)    

plotEigengeneNetworks(ME, plotAdjacency = TRUE, setLabels = colnames(ME), plotDendrograms = TRUE, plotHeatmaps = FALSE)

# =================================
# Reproduce the above plot:
corME = cor(ME)
disME = as.dist(1 - corME)
clust = fastcluster::hclust(disME, method = "average") # you could also use stats::hclust just as well...
plot(clust)


# Now that we got what we wanted, let's move to dendrogram land
dend <- as.dendrogram(clust)

# get dendextend
if(!require(dendextend)) install.packages("dendextend")
library(dendextend)
dend <- hang.dendrogram(dend)
# plot(dend) # it now looks similar to the hclust plot
# we can now rotate the labels:
dend <- color_labels(dend)
dend2 <- rotate(dend, order = sort(labels(dend)))
par(mfrow = c(1,2))
plot(dend, main = "Original dend plot")
plot(dend2, main = "Dend plot after rotating the labels")
#

结果:

enter image description here