使用R中的库(NMF)在热图中重新排序树形图

时间:2017-02-09 22:21:35

标签: r heatmap dendrogram nmf

我有一个像这样的数据框:

set.seed(123)    
test_df<-data.frame(Sample=c(LETTERS),var1=rnorm(26),var2=rnorm(26),color=rep(sample(c("High","low"),26,replace=TRUE)))

我可以使用library(dendextend)生成树形图:

d<-dist(scale(test_df[,2:3]))
clust<-hclust(d)%>%as.dendrogram()

我想使用此树形图clust在另一个数据帧中对样本进行排序。此数据框具有相同的样本,如下所示:

test_df_extend<-data.frame(Sample=c(LETTERS),var1=rnorm(26),var2=rnorm(26),var3=rnorm(26),var4=rnorm(26),var5=rnorm(26),var6=rnorm(26),color=rep(c("High","low"),13)) 

我可以使用以下代码生成test_df_extend的热图:

row.names(test_df_extend)<-test_df_extend$Sample
aheatmap(as.matrix(test_df_extend[,2:7]), color = "-RdBu:50", scale = "col", breaks = 0,Colv = NA,annColors = c("rainbow"),annRow=test_df_extend[,8])

然而,当我试图将树形图clust传递到aheatmap时,我遇到了理解输出的问题。我可以得到一个重新排序的树形图,但不确定1)和2)之间的差异意味着什么。一个指定了Rowv,另一个指定reorderfun随机w !?。我想我不完全理解reorderfun参数特别是权重(w)参数及其与Rowv的关系。任何人都可以帮我解释一下吗?谢谢!

1)

aheatmap(as.matrix(test_df_extend[,2:7]), color = "-RdBu:50", scale = "col", breaks = 0,Colv = NA,annColors = c("rainbow"),annRow=test_df_extend[,8],Rowv=clust)

2)

aheatmap(as.matrix(test_df_extend[,2:7]), color = "-RdBu:50", scale = "col", breaks = 0,Colv = NA,annColors = c("rainbow"),annRow=test_df_extend[,8], reorderfun=function(d,w) reorder(clust,1))

0 个答案:

没有答案