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=""))