I have a function to create a consensus tree with branch lengths. You feed it a given topology (often a consensus topology, made with ape), then a list of trees, and tell it what you want the branch lengths to represent. It could be the proportion of input trees with that edge (good for summarizing bootstrap or Bayes proportions) or the mean, median, or sd of branch lengths for those trees that have that edge. Consensus branch lengths in units of proportion of matching trees has obvious utility. As Daniel says, the average branch lengths across a set of trees is more difficult to see a use case for, but you could imagine doing something like taking the ratogram output from r8s on a set of trees and summarizing the rate average and rate sd on a given, "best", tree as two sets of branch lengths on that tree.
I've put the function source at https://r-forge.r-project.org/scm/viewvc.php/*checkout*/pkg/R/consensusBrlen.R?revision=110&root=omearalab. You can source the file for the function (consensusBrlen() ) and other functions it needs. It also uses phylobase. Note that this is alpha-quality code -- it's been checked a bit, but verify it's doing what you want. Here's an example of how to use it library(ape) library(phylobase) phy.a<-rcoal(15) phy.b<-phy.a phy.b$edge.length<-phy.b$edge.length+runif(length(phy.b$edge.length), 0, 0.1) phy.c<-rcoal(15) phy.list<-list(phy.a, phy.b, phy.c) phy.consensus<-consensusBrlen(phy.a, list(phy.a, phy.b, phy.c), type="mean_brlen") Best, Brian PS: Note that I am actively looking for grad students: info at http://www.brianomeara.info/lab . Guaranteed five years support, subject to decent performance. _______________________________________ Brian O'Meara Assistant Professor Dept. of Ecology & Evolutionary Biology U. of Tennessee, Knoxville http://www.brianomeara.info Students wanted: Applications due Dec. 15, annually Postdoc collaborators wanted: Check NIMBioS' website Calendar: http://www.brianomeara.info/calendars/omeara On Wed, Nov 21, 2012 at 11:09 AM, Daniel Barker <d...@st-andrews.ac.uk>wrote: > Dear Scott, > > What should branch lengths on a consensus tree represent? > > They cannot be expected substitutions per residue. This would imply no > evolution at points where uncertain branching patterns have been reduced > to a multi-furcation - which is not what the multi-furcation is meant to > imply. (Rather: there was evolution, but we aren't very certain about the > branching pattern.) > > But, MrBayes does provide average lengths of some kind. > > Best wishes, > > Daniel > > On 21/11/2012 15:13, "Scott Chamberlain" <myrmecocys...@gmail.com> wrote: > > >When making a consensus tree using ape::consensus the branch lengths are > >lost. Is there a way to not lose the branch lengths? Or to add them > >somehow > >to the consensus tree after making it. > > > >library(ape) > >> > >>cat("owls(((Strix_aluco:4.2,Asio_otus:4.1):4.1,Athene_noctua:7.3):6.3,Tyt > >>o_alba:13.5);", file = "ex1.tre", sep = "\n")> > >>cat("owls(((Strix_aluco:1.2,Asio_otus:4.5):3.1,Athene_noctua:7.3):6.3,Tyt > >>o_alba:13.5);", file = "ex2.tre", sep = "\n")> > >>cat("owls(((Strix_aluco:3.2,Asio_otus:4.7):8.1,Athene_noctua:7.3):6.3,Tyt > >>o_alba:13.5);", file = "ex3.tre", sep = "\n")> tree1 <- > >>read.tree("ex1.tre")> tree2 <- read.tree("ex2.tre")> tree3 <- > >>read.tree("ex3.tre")> trees <- c(tree1, tree2, tree3)> trees_con <- > >>consensus(trees)> trees_con > >Phylogenetic tree with 4 tips and 3 internal nodes. > >Tip labels:[1] "Strix_aluco" "Asio_otus" "Athene_noctua" "Tyto_alba" > >Rooted; no branch lengths. > > > > > >Thanks, Scott Chamberlain > > > > [[alternative HTML version deleted]] > > > >_______________________________________________ > >R-sig-phylo mailing list > >R-sig-phylo@r-project.org > >https://stat.ethz.ch/mailman/listinfo/r-sig-phylo > > > > > -- > Daniel Barker > http://bio.st-andrews.ac.uk/staff/db60.htm > The University of St Andrews is a charity registered in Scotland : No > SC013532 > > _______________________________________________ > R-sig-phylo mailing list > R-sig-phylo@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-sig-phylo > [[alternative HTML version deleted]] _______________________________________________ R-sig-phylo mailing list R-sig-phylo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-phylo