This function takes a matrix of taxon names,
indicating a set of hierarchical taxonomic relationships
conveyed as nested placements for a set of tip-taxa (listed in
the last column of the matrix) and returns
a 'taxonomy-tree' phylogeny object of class
A matrix of type character and multiple rows and columns, containing the tip taxa in the last column, one per row, with progressively larger taxa listed in prior columns (reading left-to-right). Invariant columns (i.e. taxa that all tip taxa are in) are allowed, but all but the most 'shallow' of such invariant taxa are dropped prior to transformation to a taxon-tree phylogeny object.
If the lowest constant/shared level in the taxonomic hierarchy
isn't labeled, what label should be given to this level? The default is
This function can deal with empty entries in cells of
taxonTable by assuming these
are lower-level taxa which are 'floating' freely somewhere in
taxa several levels higher.
A phylogeny of class
phylo, where each tip is a taxon listed in the last column of the
taxonTable. Edges are scaled so that
the distance from one taxon rank to another rank is one unit,
then merged to remove singleton nodes.
As not all taxa have parents at the immediate taxon level above, this leads to some odd cases.
For example, two genera emanating from a node representing a class
but with a very short (length = 1) branch
and a long branch (length = 3) means one genus is simply placed in the class,
with no family or order listed while the one on the long branch
is within an order and family that is otherwise monogeneric.
The names of higher taxa than the tips should be appended as the element $node.label for the internal nodes.
David W. Bapst
1 2 3 4 5 6 7 8 9 10 11 12 13
# let's create a small, really cheesy example pokeTable <- rbind(cbind("Pokezooa","Shelloidea","Squirtadae", c("Squirtle","Blastoise","Wartortle")), c("Pokezooa","Shelloidea","","Lapras"), c("Pokezooa","","","Parasect"), cbind("Pokezooa","Hirsutamona","Rodentapokemorpha", c("Linoone","Sandshrew","Pikachu")), c("Pokezooa","Hirsutamona",NA,"Ursaring")) pokeTree <- taxonTable2taxonTree(pokeTable) plot(pokeTree) nodelabels(pokeTree$node.label)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.