View source: R/expandTaxonTree.R
expandTaxonTree | R Documentation |
This function takes a tree composed of higher-level taxa and a vector of lower-level taxa belonging to the set of higher-level taxa included in the input tree and produces a tree composed of the lower-level taxa, by treating the higher-level taxa as unresolved monophyletic polytomies. A user can also mark higher taxa as paraphyletic such that these are secondarily collapsed and do not form monophyletic clades in the output tree.
expandTaxonTree( taxonTree, taxaData, collapse = NULL, keepBrLen = FALSE, plot = FALSE )
taxonTree |
A phylogeny as an object of class |
taxaData |
Character vector of higher taxa, with elements names equal to the lower taxa. See below. |
collapse |
Character vector containing names of non-monophyletic higher taxa to be collapsed. |
keepBrLen |
Logical, decides if branch lengths should be kept or
discarded. |
plot |
If |
The output tree will probably be a rough unresolved view of the
relationships among the taxa, due to the treatment of higher-level taxa as
polytomies. This is similar to the methods used in Webb and Donoghue (2005)
and Friedman (2009). Any analyses should be done by resolving this tree with
multi2di
in the ape
package or via the various time-scaling
functions found in this package (paleotree).
The taxaData
vector should have one element per lower-level taxon that is to
be added to the tree. The name of each element in the vector should be the
names of the lower-level taxa, which will be used as new tip labels of the
output lower-taxon tree. There should be no empty elements!
Otherwise, expandTaxonTree
won't know what to do with taxa that aren't being expanded.
By default, all higher-level taxa are treated as monophyletic clades if not otherwise specified. The collapse vector can (and probably should) be used if there is doubt about the monophyly of any higher-level taxa included in the input taxon-tree, so that such a group would be treated as a paraphyletic group in the output tree.
Also by default, the output tree will lack branch lengths and thus will not be
dated, even if the input phylogeny is dated.
If keepBrLen = TRUE
, then the tree's edge lengths are kept and
new taxa are added as zero length branches attaching to a node that
represents the previous higher-taxon. This tree is probably not useful for
most applications, and may even strongly bias some analyses. USE WITH
CAUTION! The collapse
argument, given as a vector,
will cause such edges to be replaced by
zero-length branches rather than fully collapsing them, which could have odd
effects. If collapse
is not NULL
and keepBrLen = TRUE
,
a warning is issued that the output probably won't make much sense at all.
Outputs the modified tree as an object of class phylo
, with the
higher-level taxa expanded into polytomies and the lower-level taxa as the
tip labels.
David W. Bapst
Friedman, M. 2009 Ecomorphological selectivity among marine teleost fishes during the end-Cretaceous extinction. Proceedings of the National Academy of Sciences 106(13):5218–5223.
Webb, C. O., and M. J. Donoghue. 2005 Phylomatic: tree assembly for applied phylogenetics. Molecular Ecology Notes 5(1):181–183.
multi2di
, bind.tree
set.seed(444) # lets make our hypothetical simulated tree of higher taxa taxtr <- rtree(10) # taxa to place within higher taxa taxd <- sample(taxtr$tip.label, 30, replace = TRUE) names(taxd) <- paste(taxd,"_x", 1:30, sep = "") coll <- sample(taxtr$tip.label,3) #what to collapse? expandTaxonTree(taxonTree = taxtr, taxaData = taxd, collapse = coll, plot = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.