Ich versuche, eine Heatmap mit heatmap.2-Funktion aus einer binären Matrix zu erstellen, das Dendrogramm aus der Heatmap zu extrahieren und das Dendrogramm in ein neues Dateiformat zu speichern. Die Matrix hat Genome auf der Reihe und Gene auf der Säule.Fehler beim Extrahieren von Dendrogramm aus einer Heatmap
Dazu verwende ich folgenden Code.
library(ggdendro)
library(ape)
library(gplots)
library(vegan)
profile <-as.data.frame(read.delim("profile_file.txt",row.names=1,sep="\t", as.is=T))
dist_func<-function(x) vegdist(x,"jaccard",binary=TRUE)
hclust_func<-function(x) hclust(x,method="ward.D2")
heat<-heatmap.2(as.matrix(profile),Rowv=TRUE,Colv=TRUE,distfun=dist_func,hclustfun=hclust_func,trace="none")
row.dendro<-heat$rowDendrogram
row.hcclust<-as.hclust(row.dendro)
row.phylo<-as.phylo(row.hcclust)
write.tree(phy=row.phylo, file="tree_file.nwk")
Dieser Code funktioniert gut, wenn ich versuche, es wird volle Profil ausführen. Aber wenn ich die Anzahl der Genspalten reduziere, bekomme ich einen Fehler bei dem Schritt, wo ich versuche, das Dendrogramm in das hclust-Objekt zu konvertieren.
row.hcclust<-as.hclust(row.dendro)
Error: all(vapply(s, is.integer, NA)) is not TRUE
Ich habe versucht, für alle „NA“ Werte in meinem Dataset suchen, aber es gab keine oder sonst sollte es nicht so gut für vollständigen Datensatz gearbeitet hat.
Kann mir bitte jemand helfen, diesen Fehler zu beheben? oder schlagen Sie vor, was der Grund für diesen Fehler sein könnte?
Related post: http://stackoverflow.com/questions/30354287 – zx8754