Etiquetar y colorear el dendrograma de la hoja (filogenia) en R usando el paquete simio
Siguiendo un post anterior (Etiqueta y color dendrograma en r) Tengo una pregunta de seguimiento.
Mis preguntas son similares a las de la publicación mencionada, pero me pregunto si se puede hacer usando simio (por ejemplo,plot(as.phylo(fit), type="fan", labelCol)
Como tiene más tipo de filogenia.
Las preguntas post mencionadas fueron:
¿Cómo puedo mostrar los códigos de grupo en la etiqueta de la hoja (en lugar del número de muestra)?
Deseo asignar un color a cada grupo de códigos y colorear la etiqueta de la hoja de acuerdo a esto (puede suceder que no estén en el mismo clado y, de este modo, puedo encontrar más información).
Y el ejemplo del código es:
sample = data.frame(matrix(floor(abs(rnorm(20000)*100)),ncol=200))
groupCodes <- c(rep("A",25), rep("B",25), rep("C",25), rep("D",25))
## make unique rownames (equal rownames are not allowed)
rownames(sample) <- make.unique(groupCodes)
colorCodes <- c(A="red", B="green", C="blue", D="yellow")
## perform clustering
distSamples <- dist(sample)
hc <- hclust(distSamples)
## function to set label color
labelCol <- function(x) {
if (is.leaf(x)) {
## fetch label
label <- attr(x, "label")
code <- substr(label, 1, 1)
## use the following line to reset the label to one letter code
# attr(x, "label") <- code
attr(x, "nodePar") <- list(lab.col=colorCodes[code])
}
return(x)
}
## apply labelCol on all nodes of the dendrogram
d <- dendrapply(as.dendrogram(hc), labelCol)
plot(d)