R: Extract tree constraints in FastTree alignment format.

extract_fasttree_constraints {castor} | R Documentation

## Extract tree constraints in FastTree alignment format.

### Description

Given a rooted phylogenetic tree, extract binary constraints in FastTree alignment format. Every internal bifurcating node with more than 2 descending tips will constitute an separate constraint.

### Usage

    extract_fasttree_constraints(tree)

### Arguments

`tree` | A rooted tree of class "phylo".

### Details

This function can be used to define constraints based on a backbone subtree, to be used to generate a larger tree using FastTree (as of v2.1.11). Only bifurcating nodes with at least 3 descending tips are used as constraints.

The constraints are returned as a 2D matrix; the actual fasta file with the constraint alignments can be written easily from this matrix. For more details on FastTree constraints see the original FastTree documentation.

### Value

A list with the following elements:

`Nconstraints` | Integer, specifying the number of constraints extracted.
`constraints` | 2D character matrix of size Ntips x Nconstraints, with values '0', '1' or '-', specifying which side ("left" or "right") of a constraint (node) each tip is found on.
`constraint2node` | Integer vector of size Nconstraints, with values in 1,..,Nnodes, specifying the original node index used to define each constraint.

### Author(s)

Stilianos Louca

### Examples

    # generate a simple rooted tree, with tip names tip.1, tip.2, ...
    Ntips = 10
    tree  = generate_random_tree(list(birth_rate_intercept=1),
                                 max_tips=Ntips,
                                 tip_basename="tip.")$tree

    # extract constraints
    constraints = castor::extract_fasttree_constraints(tree)$constraints

    # print constraints to screen in fasta format
    cat(paste(sapply(1:Ntips,
        FUN=function(tip) sprintf(">%s\n%s\n",tree$tip.label[tip],
        paste(as.character(constraints[tip,]),collapse=""))),collapse=""))

[Package castor version 1.6.8 Index]