Hi all, I have been hitting intermittent problems using trees generated by ape::rphylo. Here is a reproducible example.
############################ library(ape) sessionInfo() # Simulate a tree with e.g. 5 species nspecies = 5 set.seed(123465) tr_wFossils = rphylo(n=nspecies, birth=0.3, death=0.25, T0=50, fossils=TRUE, eps=1e-06) # Ladderize tree with fossils ltr = ladderize(tr_wFossils, right=FALSE) ltr$edge round(ltr$edge.length, 4) write.tree(phy=ltr, file="") tr_wFossils = read.tree(file="", text=write.tree(phy=ltr, file="") ) tr_wFossils$tip.label = paste0("sp", 1:length(tr_wFossils$tip.label)) plot(tr_wFossils); axisPhylo(); title("Sim Tree w Fossils") ############################ Output: ############################ > library(ape) > sessionInfo() R version 3.2.2 (2015-08-14) Platform: x86_64-apple-darwin13.4.0 (64-bit) Running under: OS X 10.10.5 (Yosemite) locale: [1] en_AU.UTF-8/en_AU.UTF-8/en_AU.UTF-8/C/en_AU.UTF-8/en_AU.UTF-8 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] ape_3.3 loaded via a namespace (and not attached): [1] nlme_3.1-121 grid_3.2.2 lattice_0.20-33 > > # Simulate a tree with e.g. 5 species > nspecies = 5 > set.seed(123465) > tr_wFossils = rphylo(n=nspecies, birth=0.3, death=0.25, T0=50, fossils=TRUE, eps=1e-06) > > # Ladderize tree with fossils > ltr = ladderize(tr_wFossils, right=FALSE) > ltr$edge [,1] [,2] [1,] 7 11 [2,] 11 2 [3,] 8 5 [4,] 8 9 [5,] 9 6 [6,] 9 10 [7,] 10 4 [8,] 10 3 > round(ltr$edge.length, 4) [1] 2.6862 0.0670 1.2078 0.1028 0.4985 0.0915 1.0135 1.0135 > write.tree(phy=ltr, file="") [1] "((t2:0.06701971429):2.686176768);" > > tr_wFossils = read.tree(file="", text=write.tree(phy=ltr, file="") ) Warning message: In FUN(X[[i]], ...) : NAs introduced by coercion > tr_wFossils$tip.label = paste0("sp", 1:length(tr_wFossils$tip.label)) > plot(tr_wFossils); axisPhylo(); title("Sim Tree w Fossils") NULL Warning message: In plot.phylo(tr_wFossils) : found less than 2 tips in the tree Error in get("last_plot.phylo", envir = .PlotPhyloEnv) : object 'last_plot.phylo' not found ############################ It looks like a problem with the edge matrix generated by rphylo - perhaps older simulation code. The workaround is Yea Olde Writeth To And Readeth >From Newick trick: ########################### # Simulate a tree with e.g. 5 species nspecies = 5 set.seed(123465) tr_wFossils = rphylo(n=nspecies, birth=0.3, death=0.25, T0=50, fossils=TRUE, eps=1e-06) tr_wFossils = read.tree(file="", text=write.tree(phy=tr_wFossils, file="") ) # Ladderize tree with fossils ltr = ladderize(tr_wFossils, right=FALSE) ltr$edge round(ltr$edge.length, 4) write.tree(phy=ltr, file="") tr_wFossils = read.tree(file="", text=write.tree(phy=ltr, file="") ) tr_wFossils$tip.label = paste0("sp", 1:length(tr_wFossils$tip.label)) plot(tr_wFossils); axisPhylo(); title("Sim Tree w Fossils") ########################### Now there are no issues: ########################### > # Simulate a tree with e.g. 5 species > nspecies = 5 > set.seed(123465) > tr_wFossils = rphylo(n=nspecies, birth=0.3, death=0.25, T0=50, fossils=TRUE, eps=1e-06) > tr_wFossils = read.tree(file="", text=write.tree(phy=tr_wFossils, file="") ) > # Ladderize tree with fossils > ltr = ladderize(tr_wFossils, right=FALSE) > ltr$edge [,1] [,2] [1,] 7 8 [2,] 8 1 [3,] 8 2 [4,] 7 9 [5,] 9 6 [6,] 9 10 [7,] 10 3 [8,] 10 11 [9,] 11 4 [10,] 11 5 > round(ltr$edge.length, 4) [1] 2.6862 0.0670 0.0670 1.5454 1.2078 0.1028 0.4985 0.0915 1.0135 1.0135 > write.tree(phy=ltr, file="") [1] "((t2:0.06701971429,t1:0.06701971429):2.686176768,(t5:1.207768321,(t6:0.4984853178,(t4:1.013489985,t3:1.013489985):0.09146602338):0.1028123128):1.545428161);" > > tr_wFossils = read.tree(file="", text=write.tree(phy=ltr, file="") ) > tr_wFossils$tip.label = paste0("sp", 1:length(tr_wFossils$tip.label)) > plot(tr_wFossils); axisPhylo(); title("Sim Tree w Fossils") ########################### Cheers, Nick [[alternative HTML version deleted]] _______________________________________________ R-sig-phylo mailing list - R-sig-phylo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-phylo Searchable archive at http://www.mail-archive.com/r-sig-phylo@r-project.org/