R/branching.times.R

## branching.times.R (2009-05-10)

##    Branching Times of a Phylogenetic Tree

## Copyright 2002-2009 Emmanuel Paradis

## This file is part of the R-package `ape'.
## See the file ../COPYING for licensing issues.

branching.times <- function(phy)
{
### the tree must be in cladewise order
    if (!inherits(phy, "phylo"))
      stop('object "phy" is not of class "phylo"')
    n <- length(phy$tip.label)
    N <- dim(phy$edge)[1]
    xx <- numeric(phy$Nnode)
    interns <- which(phy$edge[, 2] > n)
    ## we loop only on the internal edges, this assumes
    ## that `xx' is already set with 0
    for (i in interns)
      xx[phy$edge[i, 2] - n] <- xx[phy$edge[i, 1] - n] + phy$edge.length[i]
    depth <- xx[phy$edge[N, 1] - n] + phy$edge.length[N]
    xx <- depth - xx
    names(xx) <-
      if (is.null(phy$node.label)) (n + 1):(n + phy$Nnode) else phy$node.label
    xx
}
gjuggler/ape documentation built on May 17, 2019, 6:03 a.m.