Bind a tip to a phylogeny (data frame version)
bind_tip_df.RdGraft a tip to a phylogeny at location specified.
Usage
bind_tip_df(
tree = NULL,
where,
tip_label,
frac = 0.5,
new_node_above = FALSE,
node_label = NULL,
return_tree = TRUE,
tree_tbl = NULL,
node_heights = NULL,
use_castor = FALSE
)Arguments
- tree
A phylogeny, with class of "phylo".
- where
Location where to insert the tip. It can be either tip label or node label, but must be characters. If the location does not have a name, assign it first.
- tip_label
Name of the new tip inserted.
- frac
The fraction of branch length, must be between 0 and 1. This only applies when location is a tip or
new_node_above = TRUE. The distance from the new inserted node to the location (a node or a tip) is the branch length of the location * (1 - frac).- new_node_above
Whether to insert the new node above when the location is a node? Default is
FALSE, which will attach the new tip to the location node.- node_label
Name of the new node created. This only applies when location is a tip or
new_node_above = TRUE.- return_tree
Whether to return a phylogeny with class "phylo?" Default is
TRUE. Otherwise, it will return a data frame.- tree_tbl
A tibble version of the tree, optional.
- node_heights
A named numeric vector of node hieghts of the tree, generated by
ape::branching.times(). It is also optional iftreeis specified; but required iftree_tblis specified.- use_castor
Whether to use package
castorto get the phylogeny at a node; it is faster thantidytree::offspringto figure out what are the tip offsprings at a node.
Examples
tr <- ape::read.tree(text = "((A:1,B:1):1,C:2);")
tr$node.label <- c("root", "N1")
bind_tip_df(tr, where = "N1", tip_label = "D")
#>
#> Phylogenetic tree with 4 tips and 2 internal nodes.
#>
#> Tip labels:
#> A, B, D, C
#> Node labels:
#> root, N1
#>
#> Rooted; includes branch length(s).
tr_tbl <- tidytree::as_tibble(tr)
node_hts <- ape::branching.times(tr)
bind_tip_df(tree_tbl = tr_tbl, where = "N1",
tip_label = "D", node_heights = node_hts)
#>
#> Phylogenetic tree with 4 tips and 2 internal nodes.
#>
#> Tip labels:
#> A, B, D, C
#> Node labels:
#> root, N1
#>
#> Rooted; includes branch length(s).