R: Most recent common ancestor of a set of tips/nodes.

get_mrca_of_set {castor} | R Documentation

## Most recent common ancestor of a set of tips/nodes.

### Description

Given a rooted phylogenetic tree and a set of tips and/or nodes ("descendants"), calculate the most recent common ancestor (MRCA) of those descendants.

### Usage

    get_mrca_of_set(tree, descendants)

### Arguments

`tree` | A rooted tree of class "phylo". The root is assumed to be the unique node with no incoming edge.
`descendants` | An integer vector or character vector, specifying the tips/nodes for which to find the MRCA. If an integer vector, it must list indices of tips (from 1 to Ntips) and/or nodes (from Ntips+1 to Ntips+Nnodes), where Ntips and Nnodes is the number of tips and nodes in the tree, respectively. If a character vector, it must list tip and/or node names. In this case `tree` must include `tip.label`, as well as `node.label` if nodes are included in `descendants`.

### Details

The tree may include multi-furcations (i.e. nodes with more than 2 children) as well as mono-furcations (i.e. nodes with only one child). Duplicate entries in `descendants` are ignored.

### Value

An integer in 1,..,(Ntips+Nnodes), representing the MRCA using the same index as in `tree$edge`. If the MRCA is a tip, then this index will be in 1,..,Ntips. If the MRCA is a node, then this index will be in (Ntips+1),..,(Ntips+Nnodes).

### Author(s)

Stilianos Louca

### See Also

`get_pairwise_mrcas`, `get_tips_for_mrcas`

### Examples

    # generate a random tree
    Ntips = 1000
    tree = generate_random_tree(list(birth_rate_intercept=1),Ntips)$tree

    # pick 3 random tips or nodes
    descendants = sample.int(n=(Ntips+tree$Nnode), size=3, replace=FALSE)

    # calculate MRCA of picked descendants
    mrca = get_mrca_of_set(tree, descendants)

[Package castor version 1.7.0 Index]