Subsetting is commonly used in ggtree as we would like to for example separating internal nodes from tips. We may also want to display annotation to specific node(s)/tip(s).
Some software may stored clade information (e.g. bootstrap value) as internal node labels. Indeed we want to manipulate such information and taxa labels separately.
In current ggplot2 (version=1.0.1, access date:2015-09-23), it support subset. For instance:
1 2 3 4
library(ggplot2) library(ggtree) tree=read.tree(text="((A:2,B:2)95:2,(C:2,D:2)100:2);") ggtree(tree) + geom_text(aes(label=label), subset=.(!isTip), hjust=-.2)
But this feature was removed in github version of ggplot2 and will not be available in next release.
In github version of ggtree, we implemented geom_text2, geom_point2, and geom_segment2, that works exactly like geom_text, geom_point and geom_segment respectively with subset supported. The syntax is slightly different.
ggtree(tree) + geom_text2(aes(label=label, subset=!isTip), hjust=-.2) + geom_point2(aes(subset=!isTip), color="red", size=3)
Note: The example was from the discussion of github issue.