tidytree icon indicating copy to clipboard operation
tidytree copied to clipboard

groupClade does not function correctly on single branches

Open jasonbosch opened this issue 8 months ago • 0 comments

I am trying to colour branches on a tree based on their phylogenetic classification. I want to colour all branches from the same level, e.g. Class. I figured I should be able to do that with groupClade but I realised it does not function correctly. For single branches it only labels the last two nodes regardless of the node that is given to the command. I can't imagine this is the intended behaviour.

library(tidytree)
library(ggtree)
nwk <- "(((((((Terriglobusroseus)Terriglobus)Acidobacteriaceae)Acidobacteriales)Acidobacteriae)Acidobacteriota,(((((Corynebacteriumglutamicum)Corynebacterium)Mycobacteriaceae)Mycobacteriales,(((Nocardiopsisdassonvillei)Nocardiopsis)Streptosporangiaceae)Streptosporangiales)Actinomycetia)Actinobacteriota,(((((Echinicolavietnamensis)Echinicola)Cyclobacteriaceae)Cytophagales)Bacteroidia)Bacteroidota,(((((Meiothermus_Bsilvanus)Meiothermus_B)Thermaceae)Deinococcales)Deinococci)Deinococcota,(((((Hungateiclostridiumthermocellum)Hungateiclostridium)Acetivibrionaceae)Acetivibrionales,(((Clostridium_Pperfringens)Clostridium_P)Clostridiaceae)Clostridiales)Clostridia)Firmicutes_A,(((((Desulfosporosinusacidiphilus)Desulfosporosinus)Desulfitobacteriaceae)Desulfitobacteriales)Desulfitobacteriia)Firmicutes_B)Bacteria);"
tree <- read.tree(text=nwk)
tree_grouped <- groupClade(tree, c(35,30))
ggtree(tree_grouped, aes(colour = group)) +
  geom_text(aes(label=node))

As you can see in the example code, labelling is correct for node 35 onwards (two branches) but node 30 is not labelled and labelling starts later at node 33.

Image

jasonbosch avatar Mar 14 '25 14:03 jasonbosch