Conversion Between Phylo and Matching Objects
These functions convert objects between the classes
as.matching(x, ...) ## S3 method for class 'phylo': as.matching(x, labels = TRUE, ...) ## S3 method for class 'matching': as.phylo(x, ...)
A matching is a representation where each tip and each node are given a number, and sibling groups are grouped in a ``matching pair'' (see Diaconis and Holmes 1998, for details). This coding system can be used only for binary (fully dichotomous) trees.
Diaconis and Holmes (1998) gave some conventions to insure that a given tree has a unique representation as a matching. I have tried to follow them in the present functions.
as.matching returns an object of class
the following component:
matching (i.e. the ith
element is the label of the node numbered i + n in
with n the number of tips).
as.phylo.matching returns an object of class
Branch lengths are not supported in the present version.
Diaconis, P. W. and Holmes, S. P. (1998) Matchings and phylogenetic trees. Proceedings of the National Academy of Sciences USA, 95, 14600--14602.
data(bird.orders) m <- as.matching(bird.orders) str(m) m tr <- as.phylo(m) all.equal(tr, bird.orders, use.edge.length = FALSE)