R: Generate Random Trees

rtree {ape} | R Documentation

## Generate Random Trees

### Description

These functions generate trees by splitting randomly the edges (`rtree` and `rtopology`) or randomly clustering the tips (`rcoal`). `rtree` and `rtopology` generate general trees, and `rcoal` generates coalescent trees. The algorithms are described in Paradis (2012) and in a vignette in this package.

### Usage

    rtree(n, rooted = TRUE, tip.label = NULL, br = runif, equiprob = FALSE, ...)
    rtopology(n, rooted = FALSE, tip.label = NULL, br = runif, ...)
    rcoal(n, tip.label = NULL, br = "coalescent", ...)
    rmtree(N, n, rooted = TRUE, tip.label = NULL, br = runif,
           equiprob = FALSE, ...)
    rmtopology(N, n, rooted = FALSE, tip.label = NULL, br = runif, ...)

### Arguments

`n` | an integer giving the number of tips in the tree.
`rooted` | a logical indicating whether the tree should be rooted (the default).
`tip.label` | a character vector giving the tip labels; if not specified, the tips "t1", "t2", ..., are given.
`br` | one of the following: (i) an R function used to generate the branch lengths (`rtree`; use `NULL` to simulate only a topology), or the coalescence times (`rcoal`); (ii) a character to simulate a genuine coalescent tree for `rcoal` (the default); or (iii) a numeric vector for the branch lengths or the coalescence times.
`equiprob` | (new since ape 5.4-1) a logical specifying whether topologies are generated in equal frequencies. If, `FALSE`, the unbalanced topologies are generated in higher proportions than the balanced ones.
`...` | further argument(s) to be passed to `br`.
`N` | an integer giving the number of trees to generate.

### Details

The trees generated are bifurcating. If `rooted = FALSE` in (`rtree`), the tree is trifurcating at its root.

The option `equiprob = TRUE` generates unlabelled topologies in equal frequencies. This is more complicated for the labelled topologies (see the vignette “RandomTopologies”).

The default function to generate branch lengths in `rtree` is `runif`. If further arguments are passed to `br`, they need to be tagged (e.g., `min = 0, max = 10`).

`rmtree` calls successively `rtree` and set the class of the returned object appropriately.

### Value

An object of class `"phylo"` or of class `"multiPhylo"` in the case of `rmtree` or `rmtopology`.

### Author(s)

Emmanuel Paradis

### References

Paradis, E. (2012) Analysis of Phylogenetics and Evolution with R (Second Edition). New York: Springer.

### See Also

`stree`, `rlineage`, vignette “RandomTopologies”.

### Examples

    layout(matrix(1:9, 3, 3))
    ### Nine random trees:
    for (i in 1:9) plot(rtree(20))
    ### Nine random cladograms:
    for (i in 1:9) plot(rtree(20, FALSE), type = "c")
    ### generate 4 random trees of bird orders:
    data(bird.orders)
    layout(matrix(1:4, 2, 2))
    for (i in 1:4)
      plot(rcoal(23, tip.label = bird.orders$tip.label), no.margin = TRUE)
    layout(1)
    par(mar = c(5, 4, 4, 2))

[Package ape version 5.6-2 Index]