This function allows for a tree object to be subset by specifying a node and returns all related nodes within a selected number of levels

tree_subset(
  tree,
  node,
  levels_back = 5,
  group_node = TRUE,
  group_name = "group",
  root_edge = TRUE
)

# S3 method for phylo
tree_subset(
  tree,
  node,
  levels_back = 5,
  group_node = TRUE,
  group_name = "group",
  root_edge = TRUE
)

# S3 method for treedata
tree_subset(
  tree,
  node,
  levels_back = 5,
  group_node = TRUE,
  group_name = "group",
  root_edge = TRUE
)

Arguments

tree

a tree object of class phylo

node

either a tip label or a node number for the given tree that will be the focus of the subsetted tree

levels_back

a number specifying how many nodes back from the selected node the subsetted tree should include

group_node

whether add grouping information of selected node

group_name

group name (default 'group') for storing grouping information if group_node = TRUE

root_edge

If TRUE (by default), set root.edge to path length of orginal root to the root of subset tree

Details

This function will take a tree and a specified node from that tree and subset the tree showing all relatives back to a specified number of nodes. This function allows for a combination of ancestor and offspring to return a subsetted tree that is of class phylo. This allows for easy graphing of the tree with ggtree

Examples

if (FALSE) { nwk <- system.file("extdata", "sample.nwk", package="treeio") tree <- read.tree(nwk) sub_tree <- tree_subset(tree, node = "A", levels_back = 3) ggtree(sub_tree) + geom_tiplab() + geom_nodelab() } if (FALSE) { nwk <- system.file("extdata", "sample.nwk", package="treeio") tree <- read.tree(nwk) sub_tree <- tree_subset(tree, node = "A", levels_back = 3) ggtree(sub_tree) + geom_tiplab() + geom_nodelab() }