Label and color leaf dendrogram (phylogeny) in R using ape package

后端 未结 2 918
误落风尘
误落风尘 2021-02-11 03:09

Following a previous post (Label and color leaf dendrogram in r) I have a follow-up question.

My questions are similar to the post mentioned but I wonder can it be done

相关标签:
2条回答
  • 2021-02-11 03:27

    Have a look at ?"plot.phylo":

    library("ape")
    plot(as.phylo(hc), tip.color=colorCodes[substr(rownames(sample), 1, 1)], type="fan")
    

    enter image description here

    0 讨论(0)
  • 2021-02-11 03:42

    One more solution to the question is to use the new circlize_dendrogram function which combined the two packages: circlize and dendextend. You will first need to install them:

    install.packages("circlize")
    devtools::install_github('talgalili/dendextend')
    

    Here is the code to run:

    # YOUR CODE
    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)
    
    #--------------
    # NEW CODE
    
    dend <- as.dendrogram(hc )
    library(dendextend)
    labels_colors(dend) <- colorCodes 
    # plot(dend)
    dend <- color_branches(dend, k=4)
    
    # plot the radial plot
    par(mar = rep(0,4))
    # circlize_dendrogram(dend, dend_track_height = 0.8) 
    circlize_dendrogram(dend) 
    

    And here is the resulting plot:

    enter image description here

    0 讨论(0)
提交回复
热议问题