I just pushed an update to phytools on GitHub that contains the functions to resolve one or all multifurcating nodes in all possible ways that I described here late last night.
Note that, as stated in the function documentation:
resolveNode applied to a multifurcation with n
descendants, the number of resolved trees will be equal to the number of
possible rooted trees of n taxa. (For instance, three for a trifurcation,
15 for a quadrifurcation, and so on.)
resolveAllNodes the number of fully resolved trees will
be equal to the product of numbers for
resolveNode applied to
each multifurcation separately. (For instance, 45 for a tree containing one
trifurcation and one quadrifurcation.)“
Let's try it to see what I mean.
Here is a tree with three multifurcations - two are trifurcations, and the third is a quadrifurcation:
library(phytools) ## GitHub version 0.5.45 tree<-read.tree(text="(((A1,A2),(B1,B2,B3),C,D),E,F);") plot(tree,type="cladogram",edge.width=1,no.margin=TRUE)
The number of possible fully resolved trees should thus be:
##  135
## 135 phylogenetic trees
Cool. Note that the number of possible trees increases rapidly with the number of multifurcations and, especially, with the degree of the multifurcations. For instance, adding one quadrifurcation is much worse than adding two trifurcations, and so on.